連字符號不斷行的 CSS 解法(原: Draft for review: Personal names around the world)

(11/08/29 10:03), Timothy Chien wrote:
> 有個意見(心得?)

我也來提供一個豆知識

> 這幾天在做東西,發現有連號的名字(例如 Timothy Guan-tin Chien)中間會因為 hyphen 被斷行。
> 本來以為要用 CSS 解,但後來換成 non-breaking hyphen (‑)就解決了。

其實用 CSS 的話除了大家比較清楚的 'white-space: nowrap' 以外,這裡理論上
可以用 CSS3 Text 的 'hyphens: none;'[1] 解,好處是這個可以用在整個文件
上,這個屬性籠罩的所有連字符號都不會段,另外就是內容與樣式分開理論說能少
改內容還是要少改 xd。CSS 工作組討論過這個用法,對斷字(hyphenation)有興
趣的朋友可以參考[2]的討論串。

實際上雖然 FF 跟 WebKit 瀏覽器有實作斷字了,不過 'hyphens:none' 只會讓
U+00AD SOFT HYPHEN(­) 不斷而已(不過這蠻有趣的,大家可以玩玩看
demo[3]),似乎對 U+002D HYPHEN-MINUS 跟其他連字號(其實我還沒試過其他
的)沒用。我的測試資料如下:

data:text/html,<div style="-moz-hyphens: none; -webkit-hyphens:
none;">abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz-abcdefghijklmnopqrstuvwxyz</div>

找到 Mozilla 跟 WebKit 的 Bugzilla bug 編號再跟各位報告。

其實目前 'hyphens:none;' 的敘述還蠻模糊的,有機會再跟各位檢討。

[1] http://dev.w3.org/csswg/css3-text/#hyphens0
[2] http://lists.w3.org/Archives/Public/www-style/2011Mar/thread#msg352
[3] https://developer.mozilla.org/samples/cssref/hyphens.html


此致

呂 康豪(Kenny), 中文興趣小組W3C連絡人
Google+: https://plus.google.com/112088462407783855918/posts
新浪微博: http://t.sina.com.cn/1950042164

Received on Friday, 2 September 2011 19:03:05 UTC