【发布时间】:2013-10-15 18:31:44
【问题描述】:
在<ul> 元素中,显然可以使用 line-height 属性来格式化行之间的垂直间距。
我的问题是,在<ul> 元素中,如何设置列表项之间的垂直间距?
【问题讨论】:
-
ul li { margin: ???; padding: ???; line-height: ???; }全部或部分 CSS 属性。
标签: html css html-lists
在<ul> 元素中,显然可以使用 line-height 属性来格式化行之间的垂直间距。
我的问题是,在<ul> 元素中,如何设置列表项之间的垂直间距?
【问题讨论】:
ul li { margin: ???; padding: ???; line-height: ???; } 全部或部分 CSS 属性。
标签: html css html-lists
将margin 添加到您的li 标签。这将在li 之间创建空间,您可以使用line-height 将间距设置为li 标记内的文本。
【讨论】:
【讨论】:
li 元素而不是 ul 元素上使用边距。
HTML
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>
CSS
li:not(:last-child) {
margin-bottom: 5px;
}
编辑: 如果你不使用最后一个 li 元素的特殊情况,你的列表之后会有一个小间距,你可以在这里看到:http://jsfiddle.net/wQYw7/
现在将其与我的解决方案进行比较:http://jsfiddle.net/wQYw7/1/
当然,这在旧版浏览器中不起作用,但您可以轻松使用 js 扩展,这将为旧版浏览器启用此功能。
【讨论】:
:first-child,它适用于所有 IE7+
我会倾向于这个有 IE8 支持的优点。
li{
margin-top: 10px;
border:1px solid grey;
}
li:first-child {
margin-top:0;
}
【讨论】:
<br>between <li></li> 行条目似乎在我尝试过的所有网络浏览器中都运行良好,但它未能通过在线 W3C CSS3 检查器。它准确地为我提供了我所追求的行距。就我而言,因为它无疑是有效的,所以无论 W3C 怎么说,我都会坚持使用它,直到有人能提出一个好的合法替代方案。
【讨论】:
很多时候,在生成 HTML 电子邮件爆炸时,您不能使用样式表或样式 /style 块。所有 CSS 都需要内联。如果您想调整项目符号之间的间距,我使用 li style="margin-bottom:8px;"在每个项目符号中。根据自己的喜好自定义像素值。
【讨论】:
使用伪类为每个列表设置 padding-bottom 是一种可行的方法。也可以使用行高。请记住,字体属性(例如 font-family、Font-weight 等)在高度不均匀时会起作用。
【讨论】:
要应用于整个列表,请使用
ul.space_list li { margin-bottom: 1em; }
然后,在html中:
<ul class=space_list>
<li>A</li>
<li>B</li>
</ul>
【讨论】:
老问题,但我认为它缺乏答案。我会使用相邻的兄弟姐妹选择器。这样我们只写“一行”CSS,并考虑到结尾或开头的空格,这是大多数答案所缺乏的。
li + li {
margin-top: 10px;
}
【讨论】:
margin-top 而不是line-height。我有多行列表项——即每个列表项占用几行 - 我不希望列表项中的行之间有额外的间距;我只想要列表项之间的额外间距。这是这样做的。 (我也在一个不能使用 CSS 代码的上下文中编写 HTML;我必须将 CSS 内联。)
你也可以在 ul 上使用 line-height 属性
ul {
line-height: 45px;
}
<ul>
<li>line one</li>
<li>line two</li>
<li>line three</li>
</ul>
【讨论】:
在父 ul 元素上使用 CSS 网格,如下所示:
ul {
display: grid;
gap: 10px;
}
【讨论】: