[英]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.