- From: pingooo <ping.nsr.yeh@gmail.com>
- Date: Thu, 7 Apr 2011 09:15:03 +0800
- To: "Kang-Hao (Kenny) Lu" <kennyluck@w3.org>
- Cc: 中文HTML5同樂會ML <public-html-ig-zh@w3.org>
Received on Thursday, 7 April 2011 01:15:51 UTC
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 >
Received on Thursday, 7 April 2011 01:15:51 UTC