'text-transform: fullwidth' 與其問題

大家好!

CSS3文字模組[1]自從去年十月以來,引入了 'text-transform' 的一個新值
'fullwidth',基本上就是半形到全形的轉換:
'a' → 'a'
'!' → '!'
等等。使用情節大概有:

1. 確保讓同一個 HTML 原始碼可以同時以豎排/橫排呈現

比如說在橫排的時候寫「HTML」可能就寫「HTML」就好,但是在豎排的 CSS 可以
用 'text-transform: fullwidth' 變成「HTML」,這樣做的好處是,在豎排
下呈現的方式會變成:
H
T
M
L
而不是「HTML」轉90度。

2. 另外就是直接在網頁中用全形可以對 SEO 會有不良效果,不過有時候又想要一
個字一個字對齊的時候就可以用這個

還有什麼使用情節嗎?說實在的我也是蠻不太清楚什麼樣的情形下西方人會用
'text-transform: uppercase' 的。

這裡有一個比較大的問題[2]是,半形的空白該不該轉全形的問題(也就是" " → "
 ")。我自己是覺得用常識來講當然該轉,不過對於瀏覽器的一致性必須要定義
"a  b" (a(空白)(空白)b)到底該轉成 "a  b"(兩個全形空白)還是 "a 
b"(一個全形空白)。實作上來說這就必須要固定瀏覽器的排版引擎是先做做空白
處理(white space processing,也就是兩個空白疊為一個)[3]還是 'text-
transform',這恐怕會讓瀏覽器開翻者們不想處理這個。直覺上是空白處理先,不
過要確認一下。

如果半形空白不轉全形就不會有這個問題,不過我是覺得蠻奇怪的。大家覺得呢?

有人可以幫忙看一下 Webkit 跟 Gecko 的原始碼看看到底是哪個先嗎?這應該是
比了解Math.random簡單 :p 如果有誰會做逆向工程的請也幫忙 IE (開玩笑的 xd
不過真的有辦法也歡迎)再來 Opera 就問問看子斌有沒有辦法了 :)
  
[1] http://dev.w3.org/csswg/css3-text/
[2] http://lists.w3.org/Archives/Public/www-style/2011Feb/thread#msg470
[3] http://dev.w3.org/csswg/css3-text/#white-space-processing

此致
Kenny, W3C

Received on Friday, 18 February 2011 02:35:52 UTC