![](/img/trans.png)
[英]CSS: how to align text content horizontally-centered and vertically-centered?
[英]CSS Menu: Fill Total Area Equally, Vertically-Centered text
我正在嘗試創建一個簡單的CSS菜單。 這里是約束:
這是html:
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
</ul>
這是我的嘗試,每一次都有自己的失敗。
http://jsfiddle.net/QzYAr/266/ (寬度未表示為%)
ul { width: 600px; display: table; table-layout: fixed; background: #EEE; } li { float: left; border: 1px dotted red; } a { display: table-cell; height: 50px; vertical-align: middle; text-align: center; width: 150px; border: 1px dotted green; }
http://jsfiddle.net/RzeK2/ (錨標記未填充高度)
ul { width: 80%; display: table; table-layout: fixed; background: #EEE; } li { float: left; border: 1px dotted red; } a { display: table-cell; height: 50px; vertical-align: middle; text-align: center; width: 150px; /*this is the part that needs work?*/ border: 1px dotted green; }
http://jsfiddle.net/XsLHY/ (錨標記文本未垂直居中)
ul { width: 80%; display: table; table-layout: fixed; background: #EEE; } li { display: table-cell; width: 33%; height: 50px; vertical-align: middle; text-align: center; border: 1px dotted red; } a { display: block; border: 1px dotted green; height: 50px; }
http://jsfiddle.net/w55Lg/ [由以下兩個答案建議](如果文本自動換行,則創建難看的按鈕,並且其他按鈕現在還沒有全高)
same as three, plus: a { line-height: 50px; }
嘗試這個:
ul {
width: 80%;
background: #EEE;
}
li {
width:33.33333333%;
float:left;
}
a{
display:block;
text-align:center;
height:50px;
line-height:50px;
}
a:hover {
background:red;
}
演示: http : //jsfiddle.net/QzYAr/267/
編輯:如果您有更長的文本,您可以將其包裝在<span>
標記內並添加以下CSS:
ul span{
display:inline-block; vertical-align:middle;
line-height:14px;
}
使用小提琴#2,更新版本: http : //jsfiddle.net/XsLHY/1/
你只需要一個匹配的line-height添加到li
的高度a
。
CSS
ul {
width: 80%;
display: table;
table-layout: fixed;
background: #EEE;
}
li {
display: table-cell;
width: 33%;
height: 50px;
vertical-align: middle;
text-align: center;
border: 1px dotted red;
line-height: 50px;
}
a {
display: block;
border: 1px dotted green;
height: 50px;
}
要解決定位問題,可以切換順序,因此<a>
包裝<li>
而不是采用其他方式:
<ul>
<a href="#"><li>Item 1</li></a>
<a href="#"><li>Item 2</li></a>
<a href="#"><li>Item 3</li></a>
</ul>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.