Dav*_* J. 47 html line-breaks html-entities
我想要一个可选的换行符,它总是不可见的,适用于word-wrap: break-word;CSS样式.
以下是一些细节.我的目标是在合理的地方拆分长链接.这些字符是一个良好的开端:-,.,_,/,\.这不是特定于Rails的问题,但我想分享一些我现在正在使用的代码:
module ApplicationHelper
def with_optional_line_breaks(text)
text.gsub(%r{([-._/\\])}, '\1­')
end
end
Run Code Online (Sandbox Code Playgroud)
这是上面代码的问题:当­生效时(在带有:)的表中word-wrap: break-word;,­显示为-.我不想看到-; 我想要一个没有显示任何角色的换行符.
Dav*_* J. 78
​ 是一个名为零宽度空间(ZWSP)的unicode字符的HTML实体.
"在HTML页面中,这个空间可以用作长词中的潜在换行符,作为
<wbr>标签的替代." - 零宽度空间 - 维基百科
如Aaron的回答<wbr>所述,标签也有效.我认为我喜欢这个HTML实体而不是标签,因为实体看起来更简单:unicode处理它,而不是Web浏览器.
<wbr>看起来它做了你想要的,但它看起来像对它的支持,并且­就此而言,是非常不一致的.所以不幸的是,可能没有一种特别好的方法来做你想要的.
我将在 2019 年将此作为答案发布,尽管它的实质内容完全来自此页面上的其他贡献:使用<wbr>。它可以很好地允许长 URL 的包装,因此不会让它们脱离内容框。<wbr>根据 caniuse.com 和我自己在 Chrome 和 Firefox for Android 中的快速测试,用户能够将您显示的链接粘贴到网络浏览器中确实很重要,并且在现代浏览器中支持很好。我用正斜杠和 WBR 替换了正斜杠,现在 URL 包装得很好。