2016-04-14 12 views
0

Seçici, main.css'de depolanan özelliklerin uzun bir listesini içeriyorsa ve yalnızca bir özelliği kullanmak ve custom.css içinde geçersiz kılmak istiyorsanız nasıl "sıfırlayabilirim" Bu özellikleri main.css içindeki tüm özellikleri listelemeye ve bunları varsayılana ayarlamaya gerek kalmadan mı?Her bir özelliği sıfırlamak zorunda kalmadan bir öğenin ana CSS'sini geçersiz kılma

Her zaman CSS karışmasıyla ilgili bir sorun yaşadım ve bunları her zaman genişliğe sıfırlamak zorunda kaldım: artık gerekmedikleri takdirde otomatik vb.

https://jsfiddle.net/ugdh833a/1/

maalesef
 // Stored in main.css, this stylesheet is not to be edited 
    #header { 
       height: 100px; 
       overflow: auto; 
       width: 960px; 
       padding: 10px;; 
       margin-bottom: 7px; 
       padding-bottom: 4px; 
       position: relative; 
       z-index: 99; 
      } 

    // Stored in custom.css, this page is used to overide the main css page if required 
    // I now wish to just set this selector with just one property, how can I reset this without having all the above at default levels eg. width:auto, padding:0; etc 

      #header { 
      float:left; 
      } 
+0

dinamik ekleme, silme ve değiştiren stili nitelikleri için JavaScript kullanmalıdır. – d4rty

+0

, değiştirmek istediğiniz css kurallarının sonuna ekle (! Önemli) - https://css-tricks.com/when-using-important-is-the-right-choice/ – Tasos

+0

Ekleyemiyorum! Bu özellik main.css içinde tanımlanmadığı için - tüm main.css, artık tek bir özelliği engelleyecektir. Şimdi – me9867

cevap

1

işaretlemeyi değiştirmek istemiyordu eğer custom.css özelliklerin her birini geçersiz kılmak gerekir yoksa başka bir sınıf eklemek ve :not() seçici

yeni kullanabilirsiniz özel başlık (eğer class="alternative" eklemeniz gerekir):

CSS:

#header:not(.alternative){ 
    height: 100px; 
    overflow: auto; 
    width: 960px; 
    padding: 10px;; 
    margin-bottom: 7px; 
    padding-bottom: 4px; 
    position: relative; 
    z-index: 99; 
} 


#header.alternative{ 
    float:left; 
} 
0

sen all:initial; ile, bu unicode-bidi ve direction hariç tüm özellikler için olduğunu yapabilir. Bu bilgileri görmek: https://developer.mozilla.org/en/docs/Web/CSS/all

burada pasajı:

/*Stored in main.css, this page is not to be edited*/ 
 
#header { 
 
    height: 100px; 
 
    overflow: auto; 
 
    width: 960px; 
 
    padding: 10px;; 
 
    margin-bottom: 7px; 
 
    padding-bottom: 4px; 
 
    position: relative; 
 
    z-index: 99; 
 
    border:1px solid red;/*added to better illustrate all:initial*/ 
 
    background:silver;/*added to better illustrate all:initial*/ 
 
} 
 

 

 
/* Stored in custom.css */ 
 
#header { 
 
    all:initial; 
 
    float:left; 
 
}
<div id="header"> 
 
test 
 
</div>

+0

Gerekiyor: Tümünü ekle: Google geliştirici araçlarında denediğimde, ilk olarak bu seçicinin eski özelliklerini kaldırıyor. İşte, Chrome Dev Tools sonuçlarının bir örneği ve hala geçerli olan eski stylesheet.css https://jsfiddle.net/a62152ww/ – me9867

+0

custom.css main.css/stylesheet.css sonra olmalı veya başka bir şey eksik miyim? https://jsfiddle.net/grassog/njhvex7h/1/ – Giuseppe

İlgili konular