我不能在我的div中水平放置我的菜单。它已经垂直居中,但我如何使用CSS水平居中?谢谢你的任何建议。
代码:
<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:
.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;
}
答案 0 :(得分:1)
如果您想遵循display:table
方法,则必须清理CSS并使用display:table;
+ margin:auto
和然后 display:table-cell;
并vertical-align:middle;
使其正常运行: DEMO
.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 :(得分:0)
编辑 CSS 代码,如下所示:
.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
并从display: table-cell;
.menu
你可以试试这个:
.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;
}
<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>
.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;
}
答案 2 :(得分:0)
这是一个JSFiddle:http://jsfiddle.net/5V6gK/
CSS代码:
.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;
。
列表项应该相互浮动。
答案 3 :(得分:0)
margin: 0 auto;
这将使您的内容从中间位置对齐向下和向左&amp;对。将其替换为.menu类。
或者
如果此操作无效,请尝试:
margin-left: 50%;
margin-right: 50%;