我观察到好奇,浏览器(至少:Chrome,Firefox和Safari)应用于表单元格时如何处理max-width
和width
属性:如果单元格包含单个很大的单词,那么如果width
属性试图将单元格的宽度设置为小于包含单词的宽度,则将不会受到尊重。
也就是说,如果我编写此HTML,其中第一个表的width
为100px,第二个表的max-width
为100px,并且都包含一个大字,则第一个表将呈现真的很宽,第二个被限制为100px:
<style>
td {
border: 1px solid; /* To help visualisation */
word-wrap: break-word;
}
</style>
<table>
<tr>
<td style="width:100px">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td>
</tr>
</table>
<table>
<tr>
<td style="max-width: 100px">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td>
</tr>
</table>
为什么会这样?在这种情况下应该尊重width
吗? width
和max-width
之间的行为差异是浏览器错误,还是由规范规定?快速浏览一下CSS Level 2规范和CSS本质和外部调整模块级别3(在下面链接)中的width
和max-width
的定义,似乎并不能立即表明{{1 }}应该受到尊重,但max-width
却被忽略;我错过了什么吗?
规范链接: