我想有一个表可以在列中伸展但我在css中的最小和最大宽度有点麻烦。
似乎还有一些相互矛盾的答案:
我想要以下
table{
width:100%;
}
.a, .b, .c
{
background-color: red;
}
.a
{
min-width: 10px;
max-width: 20px;
}
.b
{
min-width: 40px;
max-width: 45px;
}
.c
{
}
<table>
<tr>
<td class="a">A</td>
<td class="b">B</td>
<td class="c">C</td>
</tr>
</table>
有没有办法在没有javascript的情况下实现这个目标(即用表格约束拉伸列)?
答案 0 :(得分:87)
表的工作方式不同;有时候反直觉。
解决方案是在表格单元格上使用width
而不是max-width
。
虽然在这种情况下可能听起来细胞不会收缩到给定宽度以下,但实际上它们会
对c没有限制,如果你给表格宽度为70px,a,b和c的宽度分别为16,42和12像素。
如果表格宽度为400像素,它们的行为就像您在网格中所说的那样
只有当你试图给表太小时(小于a.min + b.min + C的内容)它才会失败:那么表本身将比指定的更宽。
我根据你的小提琴制作了一个片段,我删除了所有的边框和填充以及边框间距,这样你就可以更准确地测量宽度。
table {
width: 70px;
}
table, tbody, tr, td {
margin: 0;
padding: 0;
border: 0;
border-spacing: 0;
}
.a, .c {
background-color: red;
}
.b {
background-color: #F77;
}
.a {
min-width: 10px;
width: 20px;
max-width: 20px;
}
.b {
min-width: 40px;
width: 45px;
max-width: 45px;
}
.c {}
<table>
<tr>
<td class="a">A</td>
<td class="b">B</td>
<td class="c">C</td>
</tr>
</table>