首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中心菜单在div内

中心菜单在div内
EN

Stack Overflow用户
提问于 2014-06-30 14:24:43
回答 4查看 1.3K关注 0票数 1

我不能在我的div内水平地调整我的菜单。它已经垂直地居中了,但是我如何用CSS水平地居中呢?谢谢你的建议。

代码:

代码语言:javascript
复制
<div class="container-2">
            <div class="menu">
                <ul class="navbar-header nav menu-nav">
                    <li><a href="1.html">1</a></li>
                    <li><a href="2.html">2</a></li>
                    <li>logo</li>
                    <li><a href="3.html">3</a></li>
                    <li><a href="4.html">4</a></li>
                </ul>
                </div>
            </div>

CSS:

代码语言:javascript
复制
.menu{
display: inline-block;
margin: auto auto;
position: relative;
display: table-cell;
vertical-align: middle;
height: 100px;
text-align: center;}


.container-2{
    width: 100%;
    display: table;
    background:rgba(255,255,255,0.755);
    position: absolute;
    height: auto;   
}


.menu-nav{
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-06-30 14:43:03

如果您想遵循display:table方法,则必须清理CSS,使用display:table; + margin:auto,然后使用 display:table-cell;vertical-align:middle;使其正常工作:演示

代码语言:javascript
复制
.menu{
margin: auto auto;
display: table;
height: 100px;
text-align: center;
}
.menu-nav{
    background:rgba(255,255,255,0.755);
    padding:0;
    display:table-cell;
    vertical-align: middle;
}
.menu-nav li{
display:inline-block;/* whatever you wanna do with your li */
}
票数 1
EN

Stack Overflow用户

发布于 2014-06-30 14:30:57

编辑CSS代码如下:

JSFiddle (来源)

代码语言:javascript
复制
.menu{
    display: inline-block;
    margin: auto auto;
    position: relative;
    vertical-align: middle;
    height: 100px;
    text-align: center;
}


.container-2{
    width: 100%;
    display: table;
    background:rgba(255,255,255,0.755);
    position: absolute;
    height: auto;
    text-align: center;
}


.menu-nav{
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

因此,您需要将text-align: center;添加到.container-2并从.menu中删除display: table-cell;

更新:垂直中心

您可以简单地尝试一下:

JSFiddle (来源)

代码语言:javascript
复制
.menu{
    height: 100px;
    text-align: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%); /* IE 9 */
    -webkit-transform: translate(-50%, -50%); /* Opera, Chrome, and Safari */
}

.container-2{
    width: 100%;
    background:rgba(255,255,255,0.755);
    position: relative;
    height: auto;   
    text-align: center;
    height: 400px;
}

第三解

JSFiddle (来源)

HTML

代码语言:javascript
复制
<div class="container-2">
    <div class="menu">
        <div class="menu_inside">
            <ul class="navbar-header nav menu-nav">
                <li><a href="1.html">1</a></li>
                <li><a href="2.html">2</a></li>
                <li>logo</li>
                <li><a href="3.html">3</a></li>
                <li><a href="4.html">4</a></li>
            </ul>
        </div>
    </div>
</div>

CSS

代码语言:javascript
复制
.menu{
    margin: auto auto;
    position: relative;
    display: table-cell;
    vertical-align: middle;
    height: 100px;
    text-align: center;
}

.menu_inside{
    display: inline-block;
}

.container-2{
    width: 100%;
    display: table;
    background:rgba(255,255,255,0.755);
    position: absolute;
    height: 300px;
}

.menu-nav{
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
票数 0
EN

Stack Overflow用户

发布于 2014-06-30 14:36:16

这里有一个JSFiddle:http://jsfiddle.net/5V6gK/

CSS代码:

代码语言:javascript
复制
.menu {width:100%; text-align:center;}
.menu li {float:left; margin:0 10px;}
.menu ul {float:none; clear:both; width:auto; margin:0 auto; list-style-type:none; display:inline-block;}

您需要为.menu类提供一个完整的宽度。内部元素(<ul>)应该有width:auto; display:inline-block; margin-right:auto; margin-left:auto;

列表项应在彼此之间浮动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24492388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档