【问题标题】:center unordered list navbar - bootstrap 3中心无序列表导航栏 - 引导 3
【发布时间】:2013-08-30 17:51:22
【问题描述】:

所以,我试图将我的导航栏列表项居中。由于此任务没有实用函数,因此我设计了以下代码,将无序列表放置在一行中的列中。但是即使我尝试使用旧的'text-align:center'居中,列表仍然向左对齐

<div class="navbar navbar-fixed-top ">
    <!--<a class="navbar-brand" href="#">Title</a> -->
    <div class= "row">
        <div style="border:1px solid black;text-align:center;" class="col-4 col-offset-4">
            <ul class="nav navbar-nav">
                <li class="active"><a href="/">Home</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Projects</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </div>
    </div>
</div>

【问题讨论】:

    标签: twitter-bootstrap twitter-bootstrap-3


    【解决方案1】:

    我采取的步骤:

    • 从列表和列表元素中删除 float: left
    • 使用display: inline 代替列表元素
    • 将链接设置为display: inline-block,以便它们保持其块尺寸
    • 只需将text-align: center 添加到导航栏即可使所有内容居中
    • 包装在媒体查询中,因此移动设备上的垂直列表不受影响

    生成的 CSS 添加 .navbar-centered 样式:

    @media (min-width: 768px) {
        .navbar-centered .navbar-nav {
            float: none;
            text-align: center;
        }
        .navbar-centered .navbar-nav > li {
            float: none;
        }
        .navbar-centered .nav > li {
            display: inline;
        }
        .navbar-centered .nav > li > a {
            display: inline-block;
        }
    }
    

    通过将.navbar-centered 样式应用于导航栏来使用:

    <div class="navbar navbar-default navbar-centered" role="navigation">
        ...
    </div>
    

    【讨论】:

    • 从小到中时中断。否则效果很好。
    • 这可能与我也在导航栏中使用图像有关。当我找到修复程序时,我会把它放上去。感谢您验证@deizel
    【解决方案2】:

    我能够自己解决这个问题。不确定这是否是最佳解决方案:

            <div class="navbar navbar-fixed-top">                
                        <div style="border:1px solid black" class="container">
                <div class="inner-nav">
                    <!--<a href="#" class="navbar-brand">Title</a> -->
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="/" >Home</a></li>
                        <li><a href="#" >About</a></li>
                        <li><a href="#" >Projects</a></li>
                        <li><a href="#" >contact</a></li>
                    </ul>
                </div>
                        </div>                
                </div>   
    

    然后我在 bootstrap.css 中添加了以下样式:

    /* ADDED for centering navbar items */
    .navbar .inner-nav ul {
    position:relative;left:50%;float:left;margin-right:0;margin-left:0;
    }
    
    /* ADDED for centering navbar items */
    .navbar .inner-nav li {
    position:relative;right:50%;float:left;margin:0;list-style:none
    }
    

    【讨论】:

    • Firefox 似乎在这个解决方案中添加了一个水平滚动条(由于right: 50% 规则)。
    【解决方案3】:

    这是我昨天做的代码,在 Bootstrap 3 RC1 上运行良好。希望这会对你有所帮助。

                    <nav class="navbar navbar-fixed-top">                
                            <div class="container">                          
                                <a href="#" class="navbar-brand">Title</a>
                                <ul class="nav navbar-nav">
                                    <li class="active"><a href="#" >Home</a></li>
                                    <li><a href="#" >Services</a></li>
                                </ul>                                                                          
                            </div>                
                    </nav>             
    

    如果问题仍然存在,请告诉我。

    编辑:删除了不必要的标记

    【讨论】:

    • 这样比较干净,但同样的问题依然存在。列表项在容器内左对齐。我希望他们居中
    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多