<table>
<tr>
<td>Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
<style>
td {
max-width: 67%;
}
</style>
上述方法不起作用。我如何使用百分比设置表格单元格的最大宽度?
<table>
<tr>
<td>Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
<style>
td {
max-width: 67%;
}
</style>
我知道这是一个老问题,但现在可以通过在表格标签上使用css属性table-layout: fixed
来实现。下面的答案来自于这个问题:CSS percentage width and text-overflow in a table cell
使用table-layout: fixed
很容易实现,但有点棘手,因为不多人知道这个CSS属性。
table {
width: 100%;
table-layout: fixed;
}
查看更新的示例,请访问此处的http://jsfiddle.net/Fm5bM/4/
max-width
,宽度将保持不变,因此并不是max-width
设置它。如果你用max-width:10%
替换第一个td
,可能会更清楚…你会发现它并不改变。http://jsfiddle.net/w3f8ey22/1/ - frezqtd:first-child { width: 33% ;}
设置两列的宽度相同可能效果不太好,因为这样会导致浏览器给两列分配相等的宽度。
td
设置了width
和max-width
,并且它们都具有长度单位或百分比单位,则似乎也会尊重td
的max-width
(在某种程度上)。使用table-layout:fixed
,无论内容如何也会尊重它。 - Superole我知道这已经晚了一年,但我想分享一下。我曾尝试做同样的事情,然后找到了这个对我有用的解决方案。我们为整个表设置了最大宽度,然后处理所需效果的单元格大小。
将表放在自己的 div 中,然后根据需要为整个表设置宽度、最小宽度和/或最大宽度。然后,您可以处理并设置其他单元格的宽度和最小宽度,并为 div 设置最大宽度,有效地绕过并倒推实现我们想要的最大宽度。
#tablediv {
width:90%;
min-width:800px
max-width:1500px;
}
.tdleft {
width:20%;
min-width:200px;
}
<div id="tablediv">
<table width="100%" border="1">
<tr>
<td class="tdleft">Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
</div>
不可否认的是,这并不能给您一个单元格的“最大”宽度,但它确实可以提供一些控制方法,可能可以代替此类选项。不确定它是否适合您的需求。我知道它对于我们的情况起作用,我们希望页面中的导航栏可以在一定程度上缩放,以适应所有这些宽屏幕。
百分比应该相对于绝对大小, 请尝试这个:
table {
width:200px;
}
td {
width:65%;
border:1px solid black;
}
<table>
<tr>
<td>Testasdas 3123 1 dasd as da</td>
<td>A long string blah blah blah</td>
</tr>
</table>
td
内部使用一个 div
,并设置以下 CSS 属性:max-width: 300px; // Desired max width
width: max-content;