html - 将长电子邮件地址包装在小盒子中

标签 html css text break word-wrap

我有一个宽度为 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>标签或 &#8203; Angular 色在任何你想要的地方引入一个软中断。例如:

演示:http://jsfiddle.net/abhitalks/sbg8G/15/

HTML:

...
<a href="big.ass.email@address-is.extremely.lame.de">
    big.ass.email@&#8203;address-is&#8203;.extremely.lame.de
</a>
...

在这里,&#8203;在“@”和“-is”之后插入以在这些点处引起中断。

重要:word-wrapword-break不会在这里帮助你。

原因:

  1. word-break适用于 CJK(中文、日文、韩文)文本。 (Reference) .其主要目的是防止 CJK 文本断字。休息正常。
  2. word-wrap用于指定浏览器是否可以在单词中换行以防止溢出。而已。 (Reference)需要注意的主要事情是“..通常牢不可破的单词可能会在任意点被破坏..”。任意点不会给你太多控制权,是吗?

硬连字符有助于指示断点。您的电子邮件地址中有一个连字符,提示您在此处打断单词。


注意:

更好的选择是让 CSS3 为我们做这件事。 word-wrapword-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

但是,这目前无法正常工作。否则,一个 &shy;会帮助你的。

注2:

hyphens , 会添加一个“硬连字符”(-),这会导致您的情况出现意外结果(电子邮件地址会更改)。

致谢:here , here , 和 here

关于html - 将长电子邮件地址包装在小盒子中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23776767/

相关文章:

html - 如何以不同方式对齐同一标签中的文本?

c# - 解析字符串并在 C# 中查找特定文本

java - 如何从 java 中的文本文件创建字符串数组列表?

css - 为什么我的 bootstrap 网站不能在 iPad 和移动设备上正确显示。触摸左侧后不会回落到中心位置

css - 适合各种屏幕的内容

javascript - AngularJS/HTML 表格格式化

javascript - JavaScript/HTML5 的 RTSP 解决方案

html - 具有自定义属性的 SEO 和 H 标签

javascript - ionic 2 : Add Class to Item While Removing Class From Other Items

css - HTML 输入文本字段自定义字体