說的less是指這個嗎?http://lesscss.org/
如果是的話,那它和CSS選取的原則應該沒什麼兩樣吧。
less是透過事先編譯的方式,將less的code轉成css的code,所以一樣在less的寫法中,定義
#id001.class001 {margin:0 !important}
利用important的權重,覆寫inline的權重,應該就沒問題了。
感謝回答,
是的, 是lesscss.org, 可以用CSS的寫法來看LESS, 但這樣做就少了LESS的好處了.
您的答案我用過, 只是我想避開使用!important, 看能不能直接選到element.style, 如果可以避開使用!important最好.
所以您是希望可以用css修改html已經有的inline style,而不用去動它?您的需求是什麼呢?
用!important可以解決問題,但可以直接選到element.style嗎?
應該沒辦法...這超過less設計的目的,而且element.style會讓css比較難管理
另外,less只產生css而已,並不是做query
CSS的權重樣式分成四級:
A(行內),B(id),C(class),D(元素)
權重的比較方式是由A>D,一個元素有A定義CSS樣式時(也就是行內樣式), 後面再怎麼加權重也比不過,除非在同一行的style再加樣式在其後。
在這種情況下,css的世界中,只有!important可以覆蓋過這個設定。
當然,如果可以用JavaScript的話,直接改寫掉style的內容即可。
其實我不太理解你說「用CSS的寫法來看LESS, 但這樣做就少了LESS的好處」的意思是什麼,還有「選到element.style」這個聽起來很像是用JS在取elm,但除非像JS動態改寫Style,否則LESS一樣是CSS,一樣用CSS 的selector的原則,CSS的權重也不會因為LESS而改變。
所以我想也許你可以再說明一下你想怎麼用LESS。
當然也有可能我誤解你想做的事,或是LESS還有我不知道的用法,那就請bizpro兄再多指教。
感謝指教, 我只是想知道, 可不可以不用!important來改變inline style. 的確只有!important才能改掉inline style.
LESS可以使用公變數, 私變數, 階層, 運算,條件,...等, 這是直接寫CSS所沒有的. 當然, LESS必需compile成CSS, 最終還是必需用!important來改寫inline style.
bizpro提到:
LESS可以使用公變數, 私變數, 階層, 運算,條件,...等
Natural number可以使用公因數, 公倍數, 階層, 運算,條件,...等