我的桌子在其中一个单元格中有一条长行。我需要拆分长行,这样才不会导致表格超过100%。我发现通过添加table-layout: fixed
和word-wrap: word-break
,它将包装长单元格。但是,使用table-layout
的副作用是它会导致所有列具有相同的宽度。
你可以在这里看到一个例子:
如何使第一列的宽度自动尺寸仅适合其内容? (即在此示例中,它应足够宽,以显示该列中的1
和2
。)
表中的数据将动态加载,因此硬编码宽度值的解决方案并不好,因为无法预先知道列的宽度。我唯一的选择是使用<table>
,我不能使用<div>
或其他元素。
答案 0 :(得分:3)
根据official specification,当您使用固定的table-layout
时,第一行的列宽确定整个表的列宽。如果没有定义它们,它将均匀分配列宽。
由于似乎没有其他选择,我最终使用以下方法:
table-layout
设置为自动时将数据加载到表格中。table-layout
更改为固定。这是一个不完美的例子(宽度稍微减少):
答案 1 :(得分:2)
我在解决同样的问题时发现了这一点:
在元素上设置break-word完全对应于在该元素内包含的文本的每个字符之间插入零宽度空格。
除了这实际上适用于普通的动态表格!
此解决方案非常快,因为它不需要任何Javascript。
(如果需要,它可以从Javascript中使用。查找所有包含break-word的单元格,获取所有子文本节点,并在每个字符之间插入零宽度空间。即使这样,脚本也只运行一次页面加载,所以这应该仍然非常高效。)
零宽度空间为​
答案 2 :(得分:-1)
您可以使用:自动换行css样式来打破长句。
word-wrap: break-word