[英]Vertical alignment of text in li
我最近一直在用HTML / CSS鬼混,并且试图在li
垂直对齐文本,以便使其居中。 我已经看过这个问题(或它的某种变体)很多次了,所以我提前为这个问题道歉,我确信您已经厌倦了,但是我无法获得任何建议的解决方案上班。 我还试图避免为li
设置特定的height
/ line-height
,因为我希望这可以调整为屏幕尺寸。
这是HTML:
<ul id="nav">
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Experience</a></li>
<li><a href="">Contact</a></li>
</ul>
这是CSS:
#nav {
position: absolute;
width: 100%;
height: 100vh;
top: 0;
left: 0;
list-style: none;
padding: 0;
margin: 0;
}
#nav li {
text-align: center;
height: 25%;
width: 100%;
margin: 0 auto;
}
#nav li a {
display: block;
height: 100%;
}
#nav li a:hover {
background: #ccc;
}
我还设置了这个小提琴 ,以防您想弄乱它,看看是否可以使其正常工作。 谢谢!
设置display: table;
在你的li
和
display: table-cell;
vertical-align: middle;
在你a
最终样式:
#nav li {
display: table;
text-align: center;
height: 25%;
width: 100%;
margin: 0 auto;
}
#nav li a {
display: table-cell;
height: 100%;
vertical-align: middle;
}
在CSS中尝试这些更改
#nav li {
text-align: center;
height: 25%;
width: 100%;
margin: 0 auto;
display: table; /* added */
}
#nav li a {
display: table-cell; /* changes from block to table-cell */
vertical-align: middle; /* added */
height: 100%;
}
在这里查看工作示例http://jsfiddle.net/t6ryfqzk/7/
如果要让li
彼此相邻,请尝试使其成为inline-block
块;如果希望它们在彼此之下,请尝试将其成块。 确保为li
元素提供固定的宽度,并将它们的text-align设置为centered
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.