所以我需要制作一个水平列表,其中第一个列表元素有固定的宽度,最后一个列表元素应该填充可用的宽度。问题是,即使我为第一个元素设置了width
,最后一个元素也会填充整行。为什么第二个元素忽略第一个元素的宽度?
html
<div id="wrapper">
<ul>
<li />
<li />
</ul>
</div>
css
#wrapper {
width: 200px;
height: 20px;
}
ul {
display:table;
width: 100%;
height: 100%;
}
li:first-child {
background:red;
width: 30px;
}
li:last-child {
background:blue;
width: 100%;
}
li {
display:table-cell;
}
在JSFiddle中,您告诉最后一个li
元素应该使用全宽
li:last-child {
width: 100%;
}
您可以省略width属性,因为它无论如何都会使用剩余的宽度。参见修改后的JSFiddle
将其添加到您的css中:
li:first-child{
display: inline-block;
}
此致:)
不要为最后一个元素设置width
。
如果未设置CSS width
属性,则会将其设置为默认值auto
。这样你就得到了预期的结果,看看奥拉夫·迪舍的小提琴。
感谢所有的答案!后来我注意到,如果我将min-width
添加到第一个li
中,我就会得到我想要的。