我有一个来自数据库的项目列表:
<ul>
<li>Jon Skeet</li>
<li>Darin Dimitrov</li>
<li>Marc Gravell</li>
<li>BalusC</li>
<li>Hans Passant</li>
<li>SLaks</li>
<li>VonC</li>
<li>Greg Hewgill</li>
<li>JaredPar</li>
</ul>
列表将在必要时换行,每行应该有水平线,看起来有点像这样:
____________________________________________________
Jon Skeet Darin Dimitrov Marc Gravell BalusC
____________________________________________________
Hans Passant SLaks VonC Greg Hewgill
____________________________________________________
JaredPar
____________________________________________________
但是,我无法弄清楚如何让行具有全长行,所以它看起来像:
____________________________________________________
Jon Skeet Darin Dimitrov Marc Gravell BalusC
____________________________________________
Hans Passant SLaks VonC Greg Hewgill
__________
JaredPar
__________
我已经尝试过使用display:table-cell
了,但除非我知道应该连续多少(我不知道),否则我无法解决如何让它们换行的问题。 )。
我prepared a jsfiddle来说明我已经走了多远,看起来应该是什么样子。有什么建议吗?
答案 0 :(得分:2)
你可以玩重复的线性渐变 - DEMO
ul, section {
margin: 40px;
max-width: 350px;
border-bottom: 1px solid #000;
background: -moz-repeating-linear-gradient(to bottom, black, black 1px, white 1px, white 36px);
background: -webkit-repeating-linear-gradient(black 0, white 1px, white 36px);
}
li {
display: inline-block;
padding: 0.5em;
}
答案 1 :(得分:0)
如果inline-block不起作用,您可以尝试display: block
而不是table-cell
并添加一些float: left
属性以保持所有内容在同一行。
您也可以使用clear: both
。实际上有很多方法可以做到,这取决于你喜欢什么,如果你想让它在IE6或任何旧手机上工作......
答案 2 :(得分:0)
这个可以使用不同的字体大小,甚至可以使用不同高度的元素:
ul {
overflow: hidden;
width: 300px;
border: solid #000;
border-width: 1px 0;
padding: 0;
}
li {
padding: 5px 20px;
display: inline-block;
vertical-align: top;
position: relative;
}
li:before {
content: '';
display: block;
position: absolute;
top: -1px;
left: 0;
background: #000;
height: 1px;
width: 300px;
}
这会在每个元素的顶部添加一个绝对定位的全宽线,然后隐藏多余的部分。