Css özelliğini nasıl geçersiz kılabilirim?


109

Temel olarak sayfamda iki harici css var.

İlki Main.csstüm stil kurallarını içeriyor, ancak ona erişimim yok ve bu nedenle onu değiştiremiyorum. İkinci bir dosyaya erişimim var Template.css, bu yüzden Main.css'in değerlerini geçersiz kılmam gerekiyor template.css.

Değeri değiştirmek zorunda olduğum için bu kolaydır, ancak bir özelliği tamamen nasıl kaldırırım?

Bir sınıfta .c1olduğu gibi height: 40px;, bu yükseklik özelliğinden nasıl kurtulurum?


Yanıtlar:


175

Her bir mülkü varsayılan değerine sıfırlamanız gerekir. Harika değil, ama bize verdiğiniz bilgilere göre tek yol bu.

Örneğinizde şunları yaparsınız:

.c1 {
    height: auto;
}

Burada her mülk için arama yapmalısınız:

https://developer.mozilla.org/en-US/docs/Web/CSS/Reference

İçin , örneğin,height :

Başlangıç ​​değeri : auto

Başka bir örnekmax-height :

Başlangıç ​​değeri : none


2017'de artık başka bir yol var, unsetanahtar kelime:

.c1 {
    height: unset;
}

Bazı belgeler: https://developer.mozilla.org/en-US/docs/Web/CSS/unset

Ayarlanmamış CSS anahtar sözcüğü, başlangıç ​​ve devralma anahtar sözcüklerinin birleşimidir. Bu diğer iki CSS geniş anahtar kelimesi gibi, CSS kısaltması tümü dahil olmak üzere herhangi bir CSS özelliğine uygulanabilir. Bu anahtar kelime, mülkü üstünden miras alıyorsa miras alınan değerine, yoksa ilk değerine sıfırlar. Diğer bir deyişle, ilk durumda devralınan anahtar kelime ve ikinci durumda ilk anahtar kelime gibi davranır.

Tarayıcı desteği iyidir: http://caniuse.com/css-unset-value


3
Güzel cevap ve referans için +1. Bağlantının şu şekilde değiştiğini düşünüyorum: developer.mozilla.org/en-US/docs/Web/CSS/Reference
Paolo

Değeri otomatik olarak ayarlamak, başlangıç ​​değeri olmadığında ("başlangıç ​​değeri: yok") çalışmıyor gibi görünüyor. Örneğin, "max-width: auto;" yaparken Uyumsuz bir özellik değeri hatası alıyorum. Ne yapmalıyım?
user1779563

3
@ user1779563 "yok" olarak ayarladınız.
AndreKR

1
Cevabım kabul edildiğinden ve insanlar aşağı inemeyebilecekleri için utanmadan çaldığım cevabı için @simhumileco'ya teşekkür ederim .
otuz nokta

10
.c1 {
    height: unset;
}

unsetKatma değer CSS3 de bu sorunu çözer ve bunun bile daha evrensel yöntemidir autoyainitial da ek olarak varsayılan behawior kendi üst göreli her CSS özelliği varsayılan değerine ayarlar ve çünkü.

initialDeğerin yukarıda bahsedilen davranışı bozduğunu unutmayın .

Gönderen MDN'yi :

Bu diğer iki CSS geniş anahtar kelimesi gibi, CSS kısaltması tümü dahil olmak üzere herhangi bir CSS özelliğine uygulanabilir . Bu anahtar kelime, mülkü üstünden miras alıyorsa miras alınan değerine, yoksa ilk değerine sıfırlar.


9

.c1 sınıfının yüksekliği: 40px olduğu gibi; bu yükseklik özelliğinden nasıl kurtulurum?

Ne yazık ki yapamazsınız. CSS'nin "varsayılan" bir yer tutucusu yoktur.

Bu durumda, özelliği kullanarak sıfırlarsınız.

 height: auto;

@Ben'in doğru bir şekilde işaret ettiği gibi, bazı durumlarda, inheritörneğin bir aöğenin metin rengini sıfırlarken (bu özellik, ana öğeden miras alınır):

a { color: inherit }

3
Buna +1 vereceğim. Ayrıca "devralma" değeri de vardır. Yükseklik dışındaki bazı bağlamlarda kalıtım daha uygundur.
Ben

1
@meo haklısın. (İlgili soru) bu, IE'de varsayılanlarına sıfırlanamayan özellikler olduğu anlamına geliyor ... ne yazık
Pekka

7

initialYazarların bu başlangıç ​​değerini açıkça belirtmesine izin vermek için CSS3'e bir anahtar kelime ekleniyor.


Bilginize: IE9'da height:initial;çalışmıyor gibi görünüyor.
Kris Hollenbeck

peki initialve autove arasındaki fark unsetnedir?
ExillustX

2

Sabit yükseklik özelliğinden kurtulmak için bunu varsayılan değere ayarlayabilirsiniz:

height: auto;

2

İçindekinden daha yüksek spesifikliğe sahip bir seçici sağlamanız gerekir Main.css. Bu seçiciyle, istediğiniz özelliklerin değerlerini varsayılan değerlerine ayarlayın, örn.

body .c1 {
    height: auto;
}

Tüm özellikler için çalışacak "varsayılan" bir değer yoktur, her biri için varsayılanın ne olduğuna bakmanız ve bunu kullanmanız gerekir.


1

"Yükseklik" i "ayarlanmadı" veya "başlangıç" olarak değiştirdiğimde bile, önceki ayarı kaldırdığım zamankinden farklı davranan bir sorunla karşılaştım.

Min-yükseklik özelliğini de kaldırmam gerektiği ortaya çıktı!

height: unset;
min-height: none

Düzenleme: IE 7'de test ettim ve "ayarlanmadı" yı tanımıyor, bu nedenle "otomatik" daha iyi çalışıyor ".

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.