问题描述
我有这张桌子的感觉,使用无序列表。但我不知道如何让 table-cells 有 50%的宽度 (我希望每一行都是 100%的宽度) 。我使用 display: table-row;
和 display: table-cell;
的原因是,如果参数文本多于一行,我可以 vertical-align 的数据。我不想使用一个实际的像素或 em 值的宽度,因为,好的,我只是想要它的百分比如果它的可能。我宁愿放弃 vertical-align 。请不要 javascript 。谢谢!
HTML:
<div class="group group2">
<h2>Health Indicies</h2>
<ul>
<li><p class="parameter">GGP</p><p class="data">265</p></li>
<li><p class="parameter">Comfort</p><p class="data">blah</p></li>
<li><p class="parameter">Energy</p><p class="data">gooo</p></li>
</ul>
</div>
CSS:
ul {
margin: 0;
padding: 0;
list-style: none;
}
.group {
width: 50%;
margin-bottom: 20px;
outline: 1px solid black;
background: white;
box-shadow: 1px 1px 5px 0px gray;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.group h2 {
display: block;
font-size: 14px;
background: gray;
text-align: center;
padding: 5px;
}
.group li {
clear: both;
}
.group p {
padding: 3%;
text-align: center;
font-size: 14px;
}
.group2 li {
display: table-row;
}
.group2 p {
display: table-cell;
vertical-align: middle;
width: 46%;
border-bottom: 2px solid gray;
}
.group li:last-child p {
border-bottom: 0;
}
最佳解决方案
你几乎在那里您只需要将 display: table
和 width: 100%
添加到您的 ul.group2
。您也可能不要在.group2 p
元素上提供 width
。
这应该工作:http://jsfiddle.net/6Kn88/2/
次佳解决方案
根据 CSS 的其余部分,将 ul
设置为 display: table
,并将其宽度设置为 100%以填充父 div 。现在您的宽度应该适用于您的”rows” 和”cells” 。
编辑:按照上面的 kpeatt,谁是更快的标记!
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。