3

我目前正在使用 php 在所有浏览器中测试此功能。

<style>
#preview_desc{
    text-wrap: suppress;
    word-break: break-all;
    word-wrap: break-word; /* IE>=5.5 */
    white-space: -moz-pre-wrap; /* For Fx<=2 */   
    white-space: pre-wrap; /* Fx>3, Opera>8, Safari>3 */
    white-space: -o-pre-wrap; /* Opera 7 */
    white-space: pre-line;
    width:158px; 
    padding-left:5px; 
    padding-right:5px; 
    line-height:12px; 
    font-family:'Arial', Helvetica, sans-serif; 
    font-size:11px; 
    text-align:justify;
    background:#f30000;
}
</style>

<div id="preview_desc" 
class="adlookmsg_box">
Refeforotherapplicationandcontainasdhlsakfhnaiufalsdufgnaloskdufglkjblfasug
</div>

但是,仅在不处理换行或非空格字的 Opera 浏览器中。请如果有人可以帮助解决这个问题。Tks

--Edited-- 注意:对不起,这个外观。

4

1 回答 1

3

我也在使用 Opera 10.10,我可以重新生成您的问题,但不幸的是我没有好的/正确的答案,但这里有一个 hack。如果没有其他办法,那就去做吧。将以下代码放在文档末尾。

<script>
     x=document.getElementById("preview_desc");
     x.innerHTML=x.innerHTML.replace(/(.)/g,"$1\u200b");
</script>

它会在每个字符之后放置 \u200b(零宽度空间)字符,因此 Opera 能够处理它。

更新:只添加\u200b到长字,目前设置为10+,你可能需要调整它。

<script>
    x=document.getElementById("preview_desc");
    x.innerHTML=x.innerHTML.replace(/[\w]{10,}/g,function(x){return x.replace(/(.)/g,"$1\u200b");});
</script>
于 2009-12-14T08:33:46.437 回答