替代换行的内容,设置换行

4

我需要将一个长字符串进行换行,希望字符串可以在换行符处自动断开。解决方案必须支持所有浏览器。

b和d的断点应该如下所示:

Aaaa Bbbbbb
bbbbbbbbbb
Ccccc Dddddd
ddddddddddd

标签word-wrap:break-word可以将字符串断行,但不会填满断行前的一行。下面是具体情况:

Aaaa 
Bbbbbb
Bbbbbbbbbb
Ccccc 
Dddddd
ddddddddddd

标签word-break: break-all正好符合我的需求,但在Firefox和ie7及以下版本中不起作用。它只在Chrome、Safari和ie8中起作用。

text-wrap标签正好符合我的需求,但目前还没有被任何浏览器支持。

有什么建议吗?

FYI:我目前正在使用PHP来处理换行。

3个回答

1
一个可能的解决方案是用不间断空格字符   替换您的空格。
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
#container
{
  word-wrap: break-word;
  width: 100px;
  background-color: rgb(200, 200, 200);
  font: 14px monospace;
}
</style>
</head>
<body>
<div id="container">
Aaaa&nbsp;Bbbbbbbbbbbbbbbb
Ccccc&nbsp;Ddddddddddddddddd
</div>
</body>
</html>

非常重要的提示: 为了让您所描述的行为也适用于文本区域:

<textarea onkeyup="this.value = this.value.replace(/ /gi, '\u00A0');"></textarea>

这将用不间断空格(&nbsp;)替换普通空格。


谢谢,但我想避免手动解决方案,因为问题是经常发生的,页面布局的更改可能需要第二次手动干预。我希望有一种替代文本换行的方法,该方法受到所有浏览器的支持,或者在Firefox和IE7中使用word-break:break all的解决方法。或者也许有一种方法可以强制执行word-wrap以填充断点前的行。 - Marfola

1
使用PHP,在需要插入换行符的位置插入&#8203;。这是零宽度空格字符

0

也许

word-break: break-all;

或者

white-space:normal;

没有测试,只是从以前记得 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接