我尝试使用带有ul
子项的li
元素制作栏,显示为table-cell
。
有些li
应该在左侧,另一些{ - 1}应该在右侧。
但问题是:“正确的”走出ul
直线。
HTML:
<ul style="height:50px;background:green;">
<li>li-1</li>
<li>li-2</li>
<li style="float: right">li-3</li>
</ul>
CSS:
li {
display: table-cell;
vertical-align: middle;
height: 50px;
}
JSFiddle:http://jsfiddle.net/Yamaha/n4jrhx46/你会看到li-3
离开了我的酒吧。我想让它回来(使用table-cell进行垂直对齐。在我的情况下,line-height不适合这里),但不知道如何。
如何解决这个问题?
答案 0 :(得分:1)
具有指定显示值table-cell
的任何浮动元素都具有显示block
的计算值。见the CSS 2.1 spec, Section 9.7
所以你在那里失败了。相反,删除float:right
并使用表格布局模型和文本对齐方式将内容移动到位。像
li {
display: table-cell;
vertical-align: middle;
height: 50px;
}
li:nth-child(3) {
width:100%;
text-align:right;
}
答案 1 :(得分:0)
@Yamaha我建议你不要使用display:table-cell
使用display:inline
。
根据您建议的代码,您只需添加line-height
即可垂直对齐。查看 DEMO 。
ul {
vertical-align: middle;
display: table;
width: 500px;
}
li {
display: inline;
height: 50px;
line-height: 50px;/* This property have been added*/
}
li.right{ float:right; padding-right:12px;}