【发布时间】:2013-04-29 11:42:06
【问题描述】:
我正在尝试将文本换行在固定布局中,但是当文本包含斜杠时它不起作用。
可以在不从 Javascript(纯 CSS)插入空格的情况下解决此问题吗?
jsfiddle:
Not working:
<div style="display:table; width:170px; background-color:cyan;">
<div style="display:table-row">
<div style="display:table-cell;word-wrap: break-word;">abfdbfdbfdb/dfbfdbdfbfbf/bdffbdbfdfbddfbdfbdfb</div>
<div style="display:table-cell; width:34px; background-color:red;">xxxxx</div>
</div>
</div>
</br>
Working:
<div style="display:table; width:170px; background-color:cyan;">
<div style="display:table-row">
<div style="display:table-cell;word-wrap: break-word;">abfdbfdbfdb dfbfdbdfbfbf bdffbdbfdfbddfbdfbdfb</div>
<div style="display:table-cell; width:34px; background-color:red;">xxxxx</div>
</div>
</div>
【问题讨论】:
-
为什么要使用 div 来存储表格数据?使用 TABLES..Funny world eh~ 人们将 div 用于表格数据,将表格用于布局
-
第二种情况起作用的原因是空格,而不是没有斜线。如果您删除空格并有一个长字符串(作为第一种情况),它也将不起作用。
-
由于性能原因,我没有使用表格。我知道对此进行了长时间的讨论,利弊..
-
如果我在第二个中删除空格,我会在一行中得到文本
-
@BogdanM。使用小表作为页面的一部分并不是性能杀手。性能损失来自使用表格来布局整个页面,这意味着浏览器必须在呈现页面之前遍历所有标记。一排两格的表格不是问题。通过使用 display: table、table-row 和 table-cell,您正在指导浏览器呈现表格,因此您实际上是在使用表格。表格在适当的时候很有用,无需避免使用。