【问题标题】:List items of dropdown have transparent background after navbar collapsed导航栏折叠后下拉列表项具有透明背景
【发布时间】:2016-01-27 03:55:26
【问题描述】:

所以我一直在处理自定义菜单,但在折叠菜单以及其中包含的下拉菜单列表项方面遇到了问题。当您在导航栏折叠后查看视口并单击下拉菜单“下拉”时,四个列表元素在您将鼠标悬停在它们上方时具有透明背景,如果您在视口为移动设备大小时向下滚动页面,则下拉元素也不要滚动。

我的 overflow-y 是可见的,因为我希望用户能够向下滚动页面,最好是折叠下拉列表项的手风琴样式(我想不出out),并且没有单独的滚动条仅用于下拉菜单。有没有办法让折叠的下拉列表项没有透明背景,并且可以使用常规页面滚动器滚动已下拉的菜单?我希望这足够连贯,哈哈,如果这应该是两个问题,请告诉我。我已经包含了我的 HTML 和完整的 CSS

<nav class="navbar navbar-default navbar-fixed-top">
<div class="container-fluid">
  <!-- Brand and toggle get grouped for better mobile display -->
  <div class="navbar-header">
    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-parent="#accordion" data-target="#topFixedNavbar1"  aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button>
    <a class="navbar-brand" href="#"><h2>LOGO</h2></a></div>
  <!-- Collect the nav links, forms, and other content for toggling -->
  <div class="collapse navbar-collapse" id="topFixedNavbar1">



    <ul class="nav navbar-nav navbar-right links">
      <li><a href="#"><h5>Link 1</h5></a></li>
      <li><a href="#"><h5>Link 2</h5></a></li>

      <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" data-parent="#accordion" role="button" aria-haspopup="true" aria-expanded="false"><h5>Dropdown</h5></a>
        <ul class="dropdown-menu">
          <li><a href="#">Action</a></li>
          <li><a href="#">Another action</a></li>
          <li><a href="#">Something else here</a></li>

          <li><a href="#">Separated link</a></li>
        </ul>
      </li>
      <li><a><span class="label label-danger  home-label" >Give us a call! &nbsp;</span></a></li>
    </ul>
  </div>
  <!-- /.navbar-collapse -->
</div>
<!-- /.container-fluid -->

CSS 文件

@media (min-width: 991px) {
.dropdown:hover .dropdown-menu {
display: block;
}
}
body{
padding-top: 120px; 
background-color:#34A0CD;
}


.navbar-default{
height:120px;
}
.navbar-header, .navbar-brand{
height:120px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;   
}
home-label{
font-size:17px;
margin-right:35px;

}
.navbar-nav li span{
font-size:17px;
margin-right:35px;
line-height:130px;
}

#topFixedNavbar1{
height:120px;
}
.links{
height:120px;

}
.navbar-nav li a h5{
line-height:80px;
}
.dropdown li a {
line-height:30px;
}
@media (max-width: 991px) {
.dropdown li a{
    line-height:30px;
}

.collapse.navbar-collapse{
    width:100%;

}
.links li a{

    width:100%;
}

.navbar-collapse .navbar-nav>li>a:hover,
.navbar-collapse .navbar-nav>li>a:focus,
.navbar-collapse .navbar-nav .dropdown .dropdown-menu>li>a:hover
.navbar-collapse .navbar-nav .dropdown .dropdown-menu>li>a:focus
{
background-color: gray;
}
.navbar-header {
    float: none;
}
.navbar-toggle {
    display: block;
}
.navbar-collapse {
    border-top: 1px solid transparent ;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);

}

.navbar-collapse.in {
overflow-y: visible;
}

.navbar-collapse.collapse {
    display: none!important;

}
.navbar-nav {
    float: none!important;

}
.navbar-nav>li {
    float: none;
}
.navbar-nav li a h5{
line-height: 15px;
background-color: gray;
color: #F1E9E9;     
}
.navbar-nav li a span{
    line-height:15px;
    background-color:gray;
}
.navbar-nav li a{
    background-color:gray;
    width:100%;
}


.navbar-text {
    float: none;
    margin: 15px 0;
}
/* since 3.1.0 */
.navbar-collapse.collapse.in { 
    display: block!important;
}
.collapsing {
    overflow: hidden!important;
}

【问题讨论】:

    标签: html css twitter-bootstrap


    【解决方案1】:

    navbar-fixed-top 类使nav 成为固定元素,如果不向其声明特定的宽度/高度,则无法使固定元素可滚动。所以,我

    • navbar 中删除了navbar-fixed-top
    • 删除了 body 上的 padding-top: 120px; 以将 navbar 与顶部对齐
    • 对透明背景问题的下拉菜单进行了一些更改。

      @media (max-width: 991px) {
          .navbar-nav li.open a h5 {
              color: black;
              background: 0 0;
          }
          .navbar-default .navbar-nav .open .dropdown-menu>li>a {
              color: white;
          }
          .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,
          .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus {
              background-color: white;
              color: black;
          }
      }
      

      您可以随意更改“主题”。

    查看action

    【讨论】:

    • 很棒的透明背景,虽然如果你通过折叠的下拉菜单列表项点击箭头按钮,它仍然是透明的,但我稍后会担心。唯一的问题是,如果屏幕大小与手机大小有关,则下拉项目在打开时离开屏幕的位置,您无法向下滚动以查看屏幕外的内容。您可以在调整屏幕大小时使用 jsfiddle 演示,但当我通过 Chrome、Firefox 等进行调整时则不行。您认为它可能只是我的计算机,因为它在您的 jsfiddle 演示中非常完美。
    • hover 一起,我添加了focus 来修复透明背景问题,但在chrome 和firefox 上作为单独文件检查时没有发现任何问题。
    • 是的,我想当折叠的下拉列表项出现在屏幕外时无法滚动,在通过实际手机查看时看起来会有所不同。无论如何,这真的是一个次要问题,我的主要问题是崩溃时透明下拉的问题很高兴感谢你,我很感激!
    猜你喜欢
    • 1970-01-01
    • 2015-11-15
    • 2021-05-23
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    相关资源
    最近更新 更多