【问题标题】:Material Design: Bootstrap 3 Responsive Navbar材料设计:Bootstrap 3 响应式导航栏
【发布时间】:2015-05-25 11:55:22
【问题描述】:

当前代码:http://www.bootply.com/NuuxNSnmrf

我在本次修订中遇到了一些问题:

  • 折叠时汉堡图标不在左侧
  • 左侧和右侧文本之间的垂直间隙
  • 品牌不居中

我的目标:

建议赞赏!

【问题讨论】:

    标签: css twitter-bootstrap user-interface twitter-bootstrap-3 material-design


    【解决方案1】:

    像这样与您的代码一起更新:Demo

    .navbar-toggle {
        float: left;      
    }        
    .navbar-brand {
        display: block;
        float: none;        
        text-align: center;
    }    
    .navbar-nav > li > a {       
        padding-bottom: 3px;
        padding-top: 3px;
    }
    

    【讨论】:

    【解决方案2】:

    我编写了自己的最小引导导航栏样式表,它建立在引导变量之上。 /* 材质导航栏 */

    .material-navbar {
    
      /*
    
      Hides normally visible elements
    
      important notes:
      @grid-float-breakpoint - point at which navbar becomes uncollapsed
      @grid-float-breakpoint-max - point at which the navbar begins collapsing
    
      */
    
      > * {
        width: 100%;
        flex: 1;
        list-style-type: none;
      }
    
      > .left {
        text-align: left;
      }
    
      > .center {
        text-align: center;
      }
    
      > .right {
        text-align: right;
      }
    
      padding: @navbar-padding-vertical @navbar-padding-horizontal;
      margin: 0;
    
      /* collapsed */
      @media (max-width: @screen-sm-max) {
        display: none;
      }
    
      /* not collapsed */
      @media (min-width: (@screen-sm-max - 1px)) {
        display: flex;
        flex-direction: row;
        align-items: baseline;
        align-content: center;
        flex-wrap: nowrap;
        justify-content: space-between;
      }
    
    }
    
    .material-navbar-collapsed {
    
      /*
    
      Shows normally visible elements
    
      important notes:
      @grid-float-breakpoint - point at which navbar becomes uncollapsed
      @grid-float-breakpoint-max - point at which the navbar begins collapsing
    
      */
    
      > * {
        width: 100%;
        flex: 1;
        list-style-type: none;
      }
    
      > .left {
        text-align: left;
      }
    
      > .center {
        text-align: center;
      }
    
      > .right {
        text-align: right;
      }
    
      padding: @navbar-padding-vertical @navbar-padding-horizontal;
      margin: 0;
    
      /* collapsed */
      @media (max-width: @screen-sm-max) {
        display: flex;
        flex-direction: row;
        align-items: baseline;
        align-content: center;
        flex-wrap: nowrap;
        justify-content: space-between;
      }
    
      /* not collapsed */
      @media (min-width: (@screen-sm-max - 1px)) {
        display: none;
      }
    
    }
    

    示例: https://jsfiddle.net/eo2gsxcm/

    更新 1:https://jsfiddle.net/eo2gsxcm/1/

    更新 2: 将视口断点设置为 screen-sm-max https://jsfiddle.net/eo2gsxcm/2/

    【讨论】:

      【解决方案3】:

      我改变了什么:

      • navbar-header div 中包含扩展的左和右导航栏切换按钮,并摆脱了left-navbar-menuright-navbar-menu 无序列表元素上的容器div。
      • 在汉堡菜单上应用float:left
      • 左导航栏和右导航栏列表项文本分别左对齐和右对齐。
      • 包含在第三个虚拟搜索按钮中。

      .navbar-brand {
        position: absolute;
        width: 100%;
        left: 0;
        top: 0;
        text-align: center;
        color: #FFFFFF;
        margin: auto;
      }
      .navbar {
        background-color: #3F50B5;
        color: #FFFFFF;
      }
      a {
        color: #FFFFFF !important;
      }
      a:hover {
        color: #000000 !important;
      }
      .custom-navbar .hamburger-on-left {
        float: left;
      }
      .navbar-left li {
        text-align: left;
      }
      .navbar-right li {
        text-align: right;
      }
      <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" />
      
      <nav class="navbar navbar-fixed-top custom-navbar" role="navigation">
        <div class="container-fluid">
          <!-- expanded behavior -->
          <div class="navbar-header">
            <a class="navbar-brand" href="#">Brand</a>
            <!-- expanded left navbar-->
            <div class="navbar-left">
              <button type="button" class="navbar-toggle hamburger-on-left" data-toggle="collapse" data-target="#left-navbar-menu">
                <span class="glyphicon glyphicon-menu-hamburger" aria-hidden="false"></span>
              </button>
            </div>
      
            <!-- expanded right navbar -->
            <div class="navbar-right">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#right-navbar-menu">
                <span class="glyphicon glyphicon-option-vertical" aria-hidden="false"></span>
              </button>
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#">
                <span class="glyphicon glyphicon-search" aria-hidden="false"></span>
              </button>
            </div>
          </div>
      
      
      
          <!-- collapsed behavior -->
          <ul id="left-navbar-menu" class="nav navbar-nav navbar-left navbar-collapse collapse">
            <li><a href="#">Left</a>
            </li>
            <li><a href="#about">Left</a>
            </li>
          </ul>
      
          <ul id="right-navbar-menu" class="nav navbar-nav navbar-right navbar-collapse collapse">
            <li><a href="#about">Right</a>
            </li>
            <li><a href="#contact">Right</a>
            </li>
          </ul>
      
        </div>
      </nav>
      
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>

      【讨论】:

      • 我知道这个材料设计灵感的主题。不幸的是,它对回答问题一点帮助都没有。
      • 在您链接的页面上,驻留窗口时绝对看不到任何东西,您可能还有其他sn-ps吗?
      • 你必须“切换到渲染视图”
      • 抱歉,我没有看到您有任何尝试;您尝试解决其他两个问题的方法是什么?
      • 我已将品牌名称重新定位到中心
      猜你喜欢
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 2015-07-03
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      相关资源
      最近更新 更多