- From: Chris <yesu326@gmail.com>
- Date: Thu, 7 Apr 2011 20:42:28 +0800
- To: 魏藥/Medical-Wei <medicalwei@gmail.com>
- Cc: pingooo <ping.nsr.yeh@gmail.com>, "Kang-Hao (Kenny) Lu" <kennyluck@w3.org>, 中文HTML5同樂會ML <public-html-ig-zh@w3.org>
- Message-ID: <BANLkTi=Oe0AifhFz=nSnTD1j6dQyyxq99w@mail.gmail.com>
在 Kenny 的方案二的基础上, 我认为这样比较好: transform-next : 按顺序执行指定的效果 transform-reset : reset 指定的效果 理由: 1. 简单清晰, also/next 都说明了在原 transform 上额外应用的效果, 其中我认为 next 更清晰明确地表 示先后顺序 2. 每一个 also/next 都是一个完整的 transform, 有利于减少冗余代码和各方面的维护工作. transform-rotate 的形式, 每增加一个新的函数 (如 bounce), 那就要相应有一个 transform-bounce, 而 also/next 则无需更改语法 3. 在 reset transform 的时候, 可以用 transform-reset: all/rotate/... 简单且统一 4. 还有就是对编码风格的影响: transform: rotate; transform-next: translateX; 比起 transform: rotate; also-transform: traslateX 有更好的编码风格, 也可以通过 t 字符检索所有属性 (这点比较主观) Regards, Chris -- ねだるな、かちとれ、さすればあたえられん -- 2011/4/7 魏藥/Medical-Wei <medicalwei@gmail.com> > 好像這樣的話還有 reset 的問題(如果今天要把 css transform 取消掉,要怎麼做?) > > 我是想到可以用 pseudo-class 解釋套用的順序,沒有定義的最先套用,套用順序相同的就依照 Kenny > 給的第一個解法的順序來套(scale >skew >rotate > translate),即使是展開屬性或是簡寫都用相同的順序去處理。 > > > 例如: > > #demo{ > transform: scale(2) translate(30px 10px); > transform-translate: 30px 60px; /* 蓋掉上面一半的敘述 */ > } > > #demo:transform(1){ > transform-rotate: 45deg; > } > > 出來的結果會先放大兩倍,平移 30px 60px 之後再做 45 度旋轉 > > > 缺點: > * reset 會很麻煩 > > 在 2011年4月7日上午9:15,pingooo <ping.nsr.yeh@gmail.com> 寫道: > > > > > > Kang-Hao (Kenny) Lu <kennyluck@w3.org> 於 2011年4月7日上午3:27 寫道: > >> > >> [恕刪] > >> > >> 這個定義不完全 > >> > >> #demo.state1 { > >> transform-rotate: 45 deg; > >> } > >> #demo { > >> transform-translateX: 20px; > >> } > >> > >> 的時候 <div id="demo" class="state1"> 哪個先呢?也是 source code 上的順序嗎?那這樣 CSS > >> 資料結構要記哪個 {...} 先哪個後耶,好像會影響效率影響的很慘的樣子... > > > > 沒記錯的話,#id.class 指令蓋過 #id 指令蓋過 class 指令,但「蓋過」是指同個屬性的指令,下例的結果應該是 rotate > 45deg。 > > #demo { > > transform-rotate: 90 deg; > > } > > #demo.state1 { > > transform-rotate: 45 deg; > > } > > > > > 不同屬性的話,瀏覽器會算出要接受的指令集,再「一一」應用上去。之前的指令都是可交換的(commutative),沒有順序的問題。transform-* > > 指令是不可交換的(noncommutative)(就是說順序交換結果會變),就有順序問題。不只要定義同級的指令順序(同級:都在 ID 裡、都在 > > class 裡... 等等),還要定義不同級之間的指令順序。 > > 也許這就是當初不想幫 transform 生小孩的原因?全部用 transform 就可以沿用原有的「蓋過」邏輯。 > > 如果真要訂順序,感覺上比較自然的順序可能是「同級:看檔案中的先後」、「不同級:低等級先、高等級後」。 > > > >> > >> Kenny > > > > > > > > -- > Medical-Wei/魏藥 > > ---- > Please avoid sending me Word or PowerPoint attachments. > See: http://www.gnu.org/philosophy/no-word-attachments.html > 請儘可能不要寄給我 Microsoft Word 或是 PowerPoint 的附件,我會打不開。 > 參照:http://blog.ofset.org/ckhung/index.php?post/081-nodocx >
Received on Thursday, 7 April 2011 12:43:16 UTC