我有一个清单:
<ul>
<li>
<span class="first">the dog jumped over the fox</span>
<span class="second">1</span>
<span class="third">Edit</span>
</li>
<li>
<span class="first">cat and mouse</span>
<span class="second">1</span>
<span class="third">Edit</span>
</li>
<li>
<span class="first">doggie</span>
<span class="second">1</span>
<span class="third">View report</span>
</li>
</ul>
我希望将每个<span>
中第一个<li>
的宽度设置为等于文本最长的一个<span class="first">
。在这种情况下,最长的文字是#34;狗跳过狐狸&#34;所以我希望所有其他<span>
匹配它。我还想对<li>
中的任何其他<span class="first">
应用相同的逻辑。基本上,所有<span class="second">
具有相同的长度,所有<span class="third">
具有相同的长度,并且所有{{1}}具有相同的长度。这就是我想要实现的目标:
------------------------------------------- the dog jumped over the fox |1|Edit | ------------------------------------------- cat and mouse |1|Edit | ------------------------------------------- doggie |1|View report| -------------------------------------------
谢谢!
答案 0 :(得分:4)
如下所示应用CSS。
ul{display:table; width:100%; padding:0;}
li{display:table-row;}
li span{display:table-cell; text-align:left;}
答案 1 :(得分:1)
如何使用<table>
?
HTML
<table>
<tr>
<td>the dog jumped over the fox</td>
<td>1</td>
<td>Edit</td>
</tr>
<tr>
<td>cat and mouse</td>
<td>1</td>
<td>Edit</td>
</tr>
<tr>
<td>doggie</td>
<td>1</td>
<td>View report</td>
</tr>
</table>
答案 2 :(得分:0)
您必须将li设置为display:block;并至少浮动第一个跨度,然后给它一定的宽度。 Haven没有对crossbrowser兼容性进行测试,但它应该可行。演示:http://jsfiddle.net/fdhu0w07/
`
ul {
display: block;
}
ul li {
display: block;
}
ul li span {
display: inline-block;
}
ul > li > span:first-of-type{
float: left;
width: 220px;
}`
答案 3 :(得分:0)
将您的列表放在html中的表格中。
<table>
<ul>
<li>
<span class="first">the dog jumped over the fox</span>
<span class="second">1</span>
<span class="third">Edit</span>
</li>
<li>
<span class="first">cat and mouse</span>
<span class="second">1</span>
<span class="third">Edit</span>
</li>
<li>
<span class="first">doggie</span>
<span class="second">1</span>
<span class="third">View report</span>
</li>
</ul>
</table>
然后在你的CSS中
table{
table-layout: fixed;
width: 300px;
}
像素宽度可以由你决定!
祝你好运!