Re: CSS 的可交換性、直書/橫書切換的邏輯屬性、Gecko 與 Webkit 的 CSS 實作差異

2011/4/19 Kang-Hao (Kenny) Lu <kennyluck@w3.org>:
> 上次討論到要不要替 'transform' 生小孩的問題[1],pingooo 還特地搬出可交喚
> 性(commutative)這個嚇人的形容詞。後來突然回憶到這件事跟直書/橫書切換的
可交換性是很重要的,物理上許多重要的關係都可以從commutative導出。 (扯遠了)
其實最簡單的旋轉,就會有可交換性的問題。

> 其中書寫模式(Writing Mode)為
> * 橫書且文字左到右的情形下 before/end/after/start 是 上/右/下/左
> * 直書且文字上到下的情形下 before/end/after/start 是 右/下/左/上
> * 橫書且文字右到左(RTL)的情形下 before/end/after/start 是 上/左/下/右
這個其實在之前討論直書的時候,日文的參考中就有提到,
書寫模式改變之後,前後左右的留白css定義,到底是橫轉直90度前,還是轉之後的曖昧不明:
http://nadita.com/murakami/epub-css/
這樣子重新定義之後,的確是少了這個問題。
(另一個方面來看,則是每次指定前都得先確定writing mode的mapping了)

> 要支援這些屬性,可憐的瀏覽器商們需要考慮以下這些跟可交換性有關的問題:

> Mozilla 的超級大強者 David Baron 在 2002 年想出了一個不會改變太多 Gecko
> 的結構,但是解決了維持邏輯屬性跟物理屬性的順序這個要求的非常妙的方法
> [5],而這個方法也就成為今天 Gecko 的 *-start/end 的實作†。

> 先只考慮 'margin-start' 的及書寫模式只有兩種(代號為 hr 跟 vt,分別是橫
> 書跟縱書)的情形,其他都可以完全推廣。這個技巧引入一些系統用的展開屬性
> (margin-*-source),把 'margin-start' 跟 'margin-left' 等等**當作這些系
> 統屬性的速記屬性**:
只能說,不可交換性是避不掉的,同時因著這些實做debug需要注意的地方會更多,
網頁css設計者真的辛苦了.. XD


-- 
Best regards,
Yuan Chao

Received on Wednesday, 20 April 2011 08:01:42 UTC