- From: Kang-Hao (Kenny) Lu <kennyluck@w3.org>
- Date: Fri, 08 Apr 2011 01:14:12 +0900
- To: 魏藥/Medical-Wei <medicalwei@gmail.com>
- CC: 中文HTML5同樂會ML <public-html-ig-zh@w3.org>
請看下面 (11/04/07 12:00), 魏藥/Medical-Wei wrote: > 好像這樣的話還有 reset 的問題(如果今天要把 css transform 取消掉,要怎麼做?) 你是說,比如說 'transform: scale(2) translate(30px 10px); ' 要怎麼只取消 scale(2)? 如果要全部取消是 'transform: none; ' 嘛。總之這兩個問題是明顯 相關的,現在一般的標準說法都是你要多準備幾個 <div> 來取消,不過加很多 <div> 很是很醜,而且違反表現是用 CSS 而不是在 HTML 亂搞得原則。 > 我是想到可以用 pseudo-class 解釋套用的順序,沒有定義的最先套用,套用順序相同的就依照 Kenny > 給的第一個解法的順序來套(scale >skew >rotate > translate),即使是展開屬性或是簡寫都用相同的順序去處理。 我有講過我講的第一個解法(其實不是我給的,我給的是第二個)的情況 下,transform 不是簡寫,所以順序是 transform > scale > skew > rotate > translate ,也就是原來的 transform 總是先做,而且裡面的順序就是本來規範 定義的順序,而後面那些新屬性完全就是在最後作用的(所以這似乎很不直觀)。 原來 transform 順序不能改的原因是會毀掉現在已經在用這個屬性的網頁...... (向後相容很重要) > 例如: > > #demo{ > transform: scale(2) translate(30px 10px); > transform-translate: 30px 60px; /* 蓋掉上面一半的敘述 */ > } > > #demo:transform(1){ > transform-rotate: 45deg; > } > > 出來的結果會先放大兩倍,平移 30px 60px 之後再做 45 度旋轉 大概了解你的意思,不過這個(1)是什麼意思? > 缺點: > * reset 會很麻煩 Kenny
Received on Thursday, 7 April 2011 16:11:53 UTC