我有一个li's
列表,其display:table-cell
属性为vertically center
内部文本。我不能为此使用额外的标记。我无法使用line-height
,因为可能有多行文字。
当我将li's
提供给display:table-cell
属性时,他们float
彼此相邻。
我怎样才能强迫他们低于对方,就像他们display:block?
那样或者我不能呢?
http://jsbin.com/orijam/1/edit
li {
height:50px;
border:solid black;
vertical-align:middle;
min-width:100px;
display:table-cell;
}
ul {
border:solid red;
width:100px;
display:inline-block;
}
答案 0 :(得分:2)
将li
:s设置为table-row
并将table-cell
样式移动到a
元素(假设您有ul li a
个设置)
(写在手机上)
Edit2:如果您错过了a
:s,您可以使用JS添加它们(或span
):
$(function () {
$('#menu li').wrapInner('<span></span>');
});
答案 1 :(得分:1)
使用display:table
代替display:table-cell
。它会起作用。
答案 2 :(得分:-1)
改为使用span
标记。
<li><span>li</span></li>
<li><span>li</span></li>
这是solution。
HTML:
<ul>
<li><span>li</span></li>
<li><span>li</span></li>
<li><span>li</span></li>
<li><span>li</span></li>
<li><span>li</span></li>
<li><span>li</span></li>
</ul>
CSS:
span {
height:50px;
border:solid black;
min-width:100px;
vertical-align:middle;
display:table-cell;
}
ul {
border:solid red;
width:100px;
display:inline-block;
}
ul li {display:block;}
通过在li内部插入span标签,可以确保可以保持li的垂直对齐位置,并使它们看起来像块一样。
希望现在有所帮助。