js中html换行,javascript – 在css/js中的换行

我正在寻找一种跨浏览器方式来包装长度预定宽度的div中没有​​空格(例如长网址)的文本。

这里有一些我在网上找到的解决方案,为什么他们不为我工作:

> overflow:hidden / auto / scroll – 我需要整个文本是可见的,无需滚动。 div可以垂直生长,但不能水平生长。

>注射&害羞;通过js /服务器端到字符串 – & shy;现在支持FF3,但复制和粘贴带有& shy;在中间不会在Safari中工作。此外,据我所知,没有一个干净的方法来测量文本宽度,找出最好的字符串偏移来添加这些字符(有一个hacky的方式,请参见下一项)。另一个问题是,放大Firefox和Opera可以轻松地打破这一点。

>将文本转换为隐藏元素并测量offsetWidth – 与上面的项目相关,需要向字符串中添加额外的字符。此外,测量长文本中需要的断开量可能容易需要成千上万的昂贵的DOM插入(每个子串长度一个),这可以有效地冻结站点。

>使用等宽字体 – 再次,缩放可以搞乱宽度计算,并且文本不能自由样式。

看起来有前途但不完全相同的事情:

> word-wrap:break-word – 现在是part of CSS3 working draft,但它不支持Firefox,Opera或Safari。这将是理想的解决方案,如果它工作在所有浏览器今天:(

> injection< wbr>标签通过js /服务器端到字符串 – 复制和粘贴URL在所有浏览器中工作,但我仍然没有一个很好的方法来衡量在哪里放置休息。此外,此标记会使HTML无效。

>在每个字符后添加断点 – 它比成千上万的DOM插入更好,但仍然不理想(将DOM元素添加到文档中会占用内存,并减慢选择器查询等)。

有没有人有更多的想法如何解决这个问题?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值