- From: Kang-Hao (Kenny) Lu <kennyluck@w3.org>
- Date: Sun, 06 Mar 2011 04:40:33 +0900
- To: Hung Ashung <ashung.hung@gmail.com>, Ethan Chen <chief@ethantw.net>
- CC: 中文HTML5同樂會ML <public-html-ig-zh@w3.org>
(11/03/05 12:53), Hung Ashung wrote: > 這個應該是設置字型間距來解決的,通常字型間距為零,如果下劃線縮短,會造成視覺上的不對齊。 我一開始也是覺得「letter-spacing」是 CSS3 Text 草案中已存在的解法,不過 後來發現瀏覽器不支援(這是瀏覽器的錯,不是標準的錯),請參考[1]的測資 3~5,總之就是底線一定會畫 到<u>A</u><u>B</u>的中間,跟「letter-spacing」 無關,這跟現 在的 CSS3 Text 的草案不一樣。有興趣的人也可以看看 Gecko 的 相關Bug[2](所以真的是實作的問題 :p)。 不過這個法會有以下的兩個問題: 1. 感覺為了底線不相連擴大*所有*字的間距真的蠻奇怪的,我不覺得傳統排版真 的是這樣做的。我自己看起來是覺得底線比字短了一點,但是這是不是錯覺我不知 道。因為也很有可能是像 Ethan 說的是用「細小空白」處理。請大家一起來檢視 這張照片吧[3]。 2. 當我們用的字體有合字(literature)的時候(比如說行書),不知道隨便在 字根字之間加「letter-spacing」會不會破壞合字。不過我 們恐怕可以暫時忽略 這個出現可能很低的狀況、、 [1] http://www.w3.org/People/kennyluck/Test/underline-cont [2] https://bugzilla.mozilla.org/show_bug.cgi?id=299943 [3] http://www.go8.com.tw/files/4168%200004.jpg > 而且這些書字型之間都是有一定間距的。 這句話如果有個證明的話就似乎說明「letter-spacing」是正確的做法。 > 現在即使定義letter-spacing,下滑先還是會連在一起。定義letter-spacing會導致英文字母間有間隔,這不符合傳統排版。所以建議加入一個CSS可以只設置CJK字型的間距,而不改變英文的間距,例如 > cjk-letter-spacing. 這個建議好像很有趣。有其他狀況是需要這個新屬性的嗎? (11/03/05 8:04), Ethan Chen wrote: > [恕刪] > > 為了「解決」(不是「處理」)這個問題,Kenny希望在CSS 3中加入的「text- > decoration-skip」屬性引入一個值「decoration-boundary」。可讓底線稍微向 > 左縮短 (0.01em?直排則向上),底線便不再相連。 > > Kenny的解決方案可行性是較高的,因為「text-decoration-skip」是CSS 3的新 > 屬性,不需要更動什麼現行的東西。 > > 可我個人是覺得,預設的底線「本來」就該比現行的短一些,u + u(不留空 > 白)是含有「語義」的,視覺上也需要能區別。所以W3C的文件中應該定義底線 > 的長短(而不加decoration-boundary),並規定 底線元素相鄰時的顯示狀況 > (當然這工程比較浩大)。 Ethan,其實我看不太懂你這段的意思,你幫我看看我最後的總結是不是你的意思。 我想補充一下,現在的草案已經因為這個議題,在文字修飾[4]那個部份加入了以 下敘述(編輯們選擇的解法): [[The UA should place the start and end of the line inwards from the content edge of the decorating element so that, e.g. two underlined elements side-by-side do not appear to have a single underline. (This is important in Chinese, where underlining is a form of punctuation.) ]] (CSS引擎應該將文字修飾的線畫在被裝飾元素內容邊的裡面,舉例還說相連的底 線不會被當成是單一底線(中文把底線當成一種標點符號,所以這在中 文很重要)) 也就是說跟老貓的意見相同。不過別忘記網頁上的超連結的底線也是用 CSS 引擎 畫的,所以儘管是比如說 0.01 em 好了,我還是有點難想像世界上的*所有*超連 結的底線都因為這個新建議縮短了 xdd 。另外因為瀏覽器已經把底線元素的內容 邊畫滿很久了,說不定也有某網頁是假設相連的底線是被當成單一底線的、、、 [4] http://www.w3.org/TR/2011/WD-css3-text-20110215/#decoration > > 也就是說,我認為現行的底線長短是錯的,畢竟這種情型可能不是沒有: > >> Circle out each of letter P: >> 1) Purple => <u>P</u>ur<u>p</u>le; >> 2) Apple => A<u>p</u><u>p</u>le. > 可是也有可能有這種例子: <u class="red">R</u><u class="organge">A</u><u class="yellow">I</u><u class="green">N</u><u class="blue">B</u><u class="indigo">O</u><u class="purple">W</u> 然後網頁作者是預期全部連起來的(這是假例子,假如真的有的話請提供!) == 解法一覽 == 1. 假如一般的排版都是像 Ethan 說的用插入空白法,那似乎用 Ethan 的 u+u {margin-left: 0.01em} 就好了,不需要新標準。 2. 假如一般的排版是 Ashung 說的那樣,那可能需要 cjk-letter-spacing ,不 過要定義這個屬性跟其他 spacing 屬性的關係會是大工程。 3. 現在這樣全部的底線都縮短一點。似乎是老貓的意見。 4. 照 Ethan 說的只有相鄰的的時候縮短。個人是認為這個做法的實作有難度。 5. 我的 text-decoration-skip: decoration-boundary 有錯誤請直接指證!我還蠻不太清楚 Ethan 是傾向於 3 還是 4 的、、、不過我 同意 pingooo 講的,了解現在紙上排板是怎麼做的會對了解這個議題很有幫助。 此致 Kenny, 中文興趣小組W3C連絡人 推特: http://twitter.com/kanghaolu 噗浪: http://www.plurk.com/kennyluck 新浪微博: http://t.sina.com.cn/1950042164 (還不是很有東西)
Received on Saturday, 5 March 2011 19:39:09 UTC