我有一个宽度为 118px 的框,其中包含一个电子邮件地址。我使用 word-wrap: break-word;
来更好地包装地址。但是在一种特殊的地址上,这会使情况变得更糟。
big.ass.email@addre
ss-
is.extremely.lame.de
因为 word-wrap: break-word;
它在“addre”之后中断,但由于地址的其余部分不适合一行,它在“首选断点”处再次中断恰好是“-”。在期望的行为中,电子邮件地址的第二次中断不会在“-”之后,而是在“非常”之后。我担心仅使用 CSS 是不可能的。不是吗?
在这里你可以看到一个小例子:http://jsfiddle.net/sbg8G/2/
最佳答案
你最好的选择是使用 <WBR>
标签或 ​
Angular 色在任何你想要的地方引入一个软中断。例如:
演示:http://jsfiddle.net/abhitalks/sbg8G/15/
HTML:
...
<a href="big.ass.email@address-is.extremely.lame.de">
big.ass.email@​address-is​.extremely.lame.de
</a>
...
在这里,​
在“@”和“-is”之后插入以在这些点处引起中断。
重要:word-wrap
和 word-break
不会在这里帮助你。
原因:
-
word-break
适用于 CJK(中文、日文、韩文)文本。 (Reference) .其主要目的是防止 CJK 文本断字。休息正常。 -
word-wrap
用于指定浏览器是否可以在单词中换行以防止溢出。而已。 (Reference)需要注意的主要事情是“..通常牢不可破的单词可能会在任意点被破坏..”。任意点不会给你太多控制权,是吗?
硬连字符有助于指示断点。您的电子邮件地址中有一个连字符,提示您在此处打断单词。
注意:
更好的选择是让 CSS3 为我们做这件事。 word-wrap
和 word-break
不允许控制断点。 hyphens
确实,但是,不幸的是hyphens
仍然“是一项实验性技术”。
引用:https://developer.mozilla.org/en-US/docs/Web/CSS/hyphens
hyphens
应该能够做到这一点:
hyphenate-limit-lines
hyphenate-limit-zone
hyphenate-character
hyphenate-limit-before
但是,这目前无法正常工作。否则,一个 ­
会帮助你的。
注2:
hyphens
, 会添加一个“硬连字符”(-),这会导致您的情况出现意外结果(电子邮件地址会更改)。
关于html - 将长电子邮件地址包装在小盒子中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23776767/