Satır içi stilleri harici CSS ile nasıl geçersiz kılabilirim?


101

Satır içi stilleri kullanan işaretlemem var, ancak bu işaretlemeyi değiştirme erişimim yok. Yalnızca CSS kullanan bir belgedeki satır içi stilleri nasıl geçersiz kılabilirim? JQuery veya JavaScript kullanmak istemiyorum.

HTML:

<div style="font-size: 18px; color: red;">
    Hello World, How Can I Change The Color To Blue?
</div>

CSS:

div {
   color: blue; 
   /* This Isn't Working */
}

Yanıtlar:


179

Satır içi stili geçersiz kılmanın tek yolu !important, CSS kuralının yanında anahtar kelime kullanmaktır . Aşağıda bunun bir örneği var.

div {
        color: blue !important;
       /* Adding !important will give this rule more precedence over inline style */
    }
<div style="font-size: 18px; color: red;">
    Hello, World. How can I change this to blue?
</div>

Önemli notlar:

  • Kullanmak !importantiyi bir uygulama olarak kabul edilmez . Bu nedenle, hem !importantsatır içi stilden hem de kaçınmalısınız .

  • !importantAnahtar kelimeyi herhangi bir CSS kuralına eklemek, kuralın o öğeye ilişkin diğer tüm CSS kurallarının zorla önüne geçmesini sağlar .

  • Hatta işaretlemeden gelen satır içi stilleri geçersiz kılar .

  • Geçersiz kılmanın tek yolu!important , ya CSS'de daha yüksek CSS özgüllüğüyle ya da kodda daha sonra aynı CSS özgüllüğüyle bildirilen başka bir kural kullanmaktır .

  • Okumalısınız - MDN'den CSS Özgüllüğü 🔗


1
peki bu tarz ona bağlı, aslında sadece satır içi css'yi geçersiz kılmak için kullanması gerekli değil
Rohit Agrawal

1
Biliyorum ama aynı şeyi söylüyorum! önemli sadece belirli mülklerin puanını artıracak, bazı blokta başka mülkler kullanıyor olabilir (geçersiz kılmak için değil)
Rohit Agrawal

Neden önemli kötü bir uygulama?
Uğursuz Sakal

1
@BFDatabaseAdmin, çünkü daha sonra herhangi bir özel duruma ihtiyacınız olursa bunu geçersiz kılamazsınız
Rohit Agrawal

1
@BFWebAdmin sorun, bazen bir seçeneğiniz olmamasıdır. örneğin, yeni görünmez recaptcha'dan "rozet" biçimlendirilebilir, ancak kısmen satır içi stillere sahiptir, bu nedenle bunları ya şu şekilde ya da js ile geçersiz kılmalısınız ve saf bir CSS çözümünü tercih etmelisiniz.
MY1

27

inline-stylesbir belgede en yüksek önceliğe sahiptir, bu nedenle örneğin bir divöğenin rengini olarak değiştirmek istiyorsanız blue, ancak inline stylebir colorözelliğe sahipred

<div style="font-size: 18px; color: red;">
   Hello World, How Can I Change The Color To Blue?
</div>
div {
   color: blue; 
   /* This Won't Work, As Inline Styles Have Color Red And As 
      Inline Styles Have Highest Priority, We Cannot Over Ride 
      The Color Using An Element Selector */
}

Öyleyse, jQuery / Javascript Kullanmalı mıyım? - Cevap HAYIR

element-attrCSS Seçiciyi birlikte kullanabiliriz !important, not !importantburada önemlidir, aksi takdirde satır içi stilleri aşmaz ..

<div style="font-size: 30px; color: red;">
    This is a test to see whether the inline styles can be over ridden with CSS?
</div>
div[style] {
   font-size: 12px !important;
   color: blue !important;
}

Demo

Not: !importantYALNIZCA kullanmak burada işe yarar, ancak div[style]özel olarak divsahip olma style özelliğini seçmek için seçiciyi kullandım


2
Öyleyse, Satır içi stilleri kullanmalı mıyım? - Cevap HAYIR :-)
PeeHaa

"Öyleyse, jQuery / Javascript Kullanmalı mıyım? - Cevap HAYIR" Neden? Satır içi stillerin kontrol edilemeyen bir varlık tarafından öğelere eklendiği bir ortamda (Sharepoint gibi) çalışıyorsam, neden sitelerimin dış temasının görünmesi için rahatsız edici satır içi stilleri kaldırmak için Jquery'yi kullanmayayım? Daha sonra belirli bir durumda geçersiz kılmak isteyebileceğim bir özellik için patlamadan daha hassas bir çözüm gibi görünüyor.
Neberu

2
@Neberu - Çünkü JS tarayıcıda engellenebilir / kapatılabilir. Kullanılamaz !importantAFAIK.
Tony

1
ayrıca js genel olarak kötüdür, yani sizin tarafınızdan bilinmeyen bir kişiden gönderilen yürütülebilir dosyaları açıyor musunuz? Sanırım hayır, ancak bir tarayıcı bunu her tıklamada yapıyor
My1

12

Kolayca satır içi hariç satır içi stil geçersiz kılabilir !importanttarzı

yani

<div style="font-size: 18px; color: red;">
    Hello World, How Can I Change The Color To Blue?
</div>

div {
   color: blue !important; 
   /* This will  Work */
}

ama eğer varsa

<div style="font-size: 18px; color: red !important;">
    Hello World, How Can I Change The Color To Blue?
</div>

div {
   color: blue !important; 
   /* This Isn't Working */
}

şimdi redsadece olacak .. ve onu geçersiz kılamazsın


1
Bunun aylar önce eklenen cevaplardan ne farkı var?
Sinister Beard

4
@BFDatabaseAdmin Bu cevap, satır içi stilin !importantdiğer cevapların hiçbirinde kapsanmayan bir noktaya sahip olduğu durumdaki davranışı açıklamaktadır . Bu tamamen bağımsız bir cevap olmayabilir, ancak bu verilen diğer cevaplardan farklıdır.
grg

ancak yine de önemli olan bir satır içi stil kullanmak, varsayılan olarak en yüksek önceliğe sahip olduğu için gerçekten aşırılıktır.
MY1


0

!importantCSS özelliğinde kullanılır

<div style="color: red;">
    Hello World, How Can I Change The Color To Blue?
</div>

div {
        color: blue !important;
    }
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.