我有一个简单的清单:
<ul>
<li>Element 1</li>
<li>Element 2</li>
<li>Element 3</li>
</ul>
如何让每个<li>
元素显示在它自己的行上,但同时只有它的内容宽,所以当我在它们上设置背景或边框时,它将只是广泛的内容?
答案 0 :(得分:3)
您可以使用Flexbox并设置:
flex-direction: column
所以每个li
都显示在单独的行align-items: flex-start
因为默认值为stretch
,这将使每个li
占据父元素的全宽,并且您希望每个li
的宽度等于内容的宽度
ul {
display: flex;
flex-direction: column;
align-items: flex-start;
}
li {
border: 1px solid black;
}
<ul>
<li>Element 1 some more text</li>
<li>Element 2 text</li>
<li>Element 3</li>
</ul>
答案 1 :(得分:1)
您可以对其使用float
和clear
:
li {
float: left;
clear: left;
background: #fb4;
}
<ul>
<li>Element 1</li>
<li>Element 2</li>
<li>Element 3</li>
</ul>