twitter-bootstrap 隐藏引导程序的 .dropdown-backdrop,仅限 CSS

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30925699/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-21 22:50:41  来源:igfitidea点击:

Hide bootstrap's .dropdown-backdrop, CSS only

javascriptcsstwitter-bootstraptwitter-bootstrap-3

提问by sqsinger

Is it possible to hide Bootstrap's .dropdown-backdrop element for a certain dropdown (not all on the page) by using CSS only?

是否可以仅使用 CSS 为某个下拉列表(并非全部在页面上)隐藏 Bootstrap 的 .dropdown-backdrop 元素?

I've determined that this is possible using Javascript, with JSFiddle here. However, I would like to accomplish this without using additional JS if possible.

我已经确定这可以使用 Javascript,在这里使用JSFiddle。但是,如果可能,我想在不使用其他 JS 的情况下完成此操作。

<!-- First dropdown: no backdrop -->
<div id="firstDropdown" class="dropdown">
    <button class="btn-dropdown-add btn btn-blue" data-toggle="dropdown">
        First Dropdown &#x25BC;
    </button>
    <ul class="dropdown-menu" role="menu">
        <li><a class="a_dropdown_item" href="#business">Business</a></li>
        <li><a class="a_dropdown_item" href="#my-events">Event</a></li>
    </ul>
</div>

<!-- Second dropdown: yes backdrop -->
<div id="secondDropdown" class="dropdown">
    <button class="btn-dropdown-add btn btn-blue" data-toggle="dropdown">
        Second Dropdown &#x25BC;
    </button>
    <ul class="dropdown-menu" role="menu">
        <li><a class="a_dropdown_item" href="#business">Business</a></li>
        <li><a class="a_dropdown_item" href="#my-events">Event</a></li>
    </ul>
</div>

<script type="text/javascript">
    // Hide backdrop from #firstDropdown.
    // This can be done with JS as below. Can it be done with only CSS?
    $('#firstDropdown').on('show.bs.dropdown', function () {
      $(".dropdown-backdrop").hide();
    });
</script>

回答by sqsinger

Found solution: .dropdown-backdrop is a descendant of its .dropdown, which can have a unique ID, so simply using display:none;in CSS works fine, as in:

找到解决方案:.dropdown-backdrop 是其 .dropdown 的后代,它可以有一个唯一的 ID,所以简单地display:none;在 CSS 中使用就可以了,如下所示:

#firstDropdown .dropdown-backdrop {
    display:none;
}

And then all other dropdowns (except #firstDropdown) will still have a backdrop as normal.

然后所有其他下拉菜单(#firstDropdown 除外)仍将具有正常的背景。

See JSFiddleupdated.

请参阅更新的JSFiddle