2012-03-15 13 views
7

bir eleman tarzı mülkiyet önemli ise (her iki yalak style="" veya JS set), nasıl bir kaldırabilirim?Önemli bir CSS özelliğini nasıl kaldırabilirsiniz?

removeProperty() (jsfiddle) çalışmıyor :

elem.style.setProperty('background', '#faa', 'important'); 
elem.style.removeProperty('background'); // doesn't work 

(Tercihen frameworkless çözümü, sadece Chrome'da çalışmak zorundadır.)

cevap

13

Mülkü kaldıramazsınız sebebi ise Bu bir shorthand özellik.

ayarladığınız

, diğer özellikler aslında eklense, ancak hiçbir "arka plan" özelliği, bu nedenle kaldırmak için bir "arka plan" özelliği var. Bu durumda

, böyle Ayarını iptal edebilirsiniz:

elem.style.removeProperty('background-color'); 

Genel olarak, steno özelliği ile temsil her "uzun eli" özelliğini unset gerekiyordu.

elem.style.setProperty('background', 'inherit', 'important'); 

Ya da bunun gibi element için tüm satır içi stil nuke olabilir:


Ayrıca üzerine yazmak için bu yapabilirdi

elem.style.cssText = ''; 
+1

İlginç tho 'o removeProperty ('background') '," önemli "ile ayarlanmamışsa çalışır. – Qtax

+0

Büyük, 'cssText' benim durumumda yararlı olacaktır. 2 ;-) – Qtax

+1

kestirme nitelikler çıkarmadan important' 'olarak ayarlanmamış ilgili "longhand" özelliklerin tümünü kaldıracaktır anlaşılmaktadır. important' (ya doğrudan el yazısıyla özellikleri olarak veya bir kısa özelliği ile) 'olarak ayarlanmıştır olanlar açıkça kaldırılması gerekir görünmektedir. Bunu destekleyecek bir referans bulamadım, ama sanırım tasarım gereği. (Zaten border' 'bir bileşen olduğu gibi) –

İlgili konular