Heim > Web-Frontend > CSS-Tutorial > Warum überschreiben reguläre CSS-Regeln Medienabfragen in CSS?

Warum überschreiben reguläre CSS-Regeln Medienabfragen in CSS?

DDD
Freigeben: 2024-12-22 05:30:15
Original
637 Leute haben es durchsucht

Why Do Regular CSS Rules Override Media Queries in CSS?

Medienabfragen und CSS-Priorität

In CSS werden Medienabfragen weniger priorisiert als normale CSS-Regeln. Dies wird durch die CSS-Kaskade bestimmt, eine Reihe von Regeln, die die Reihenfolge vorgeben, in der Stile angewendet werden.

Warum Medienabfragen eine geringere Priorität haben

Medienabfragen haben keine Priorität Erhöhen Sie die Spezifität von Selektoren. Das heißt, wenn eine reguläre CSS-Regel und eine Medienabfrage auf dasselbe Element mit derselben Spezifität abzielen, hat die reguläre CSS-Regel Vorrang.

Beispiel:

Bedenken Sie der folgende Code:

.logo img {
  width: 100%;
}

@media screen and (min-width: 100px) and (max-width: 1499px) {
  .logo img {
    width: 120%;
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

In diesem Beispiel hat die Medienabfrage eine geringere Priorität als die Nicht-Medienabfrageregel. Wenn daher die Größe des Ansichtsfensters mit der Medienabfrage übereinstimmt, gilt weiterhin die Nicht-Medien-Abfrageregel, was dazu führt, dass die Bildbreite auf 100 % gesetzt wird.

Problemumgehungen

Um Medienabfragen Vorrang vor regulären CSS-Regeln zu geben, gibt es zwei Möglichkeiten:

1. Reihenfolge der Regeln tauschen

Ordnen Sie die CSS-Regeln neu, sodass die Medienabfrage nach der Nicht-Medienabfrageregel kommt:

.logo img {
  width: 100%;
}

@media screen and (min-width: 100px) and (max-width: 1499px) {
  .logo img {
    width: 120%;
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

2. Erhöhen Sie die Selektorspezifität

Erhöhen Sie die Spezifität der Medienabfrageregel durch Hinzufügen zusätzlicher Selektoren:

@media screen and (min-width: 100px) and (max-width: 1499px) {
  .logo a img {
    width: 120%;
  }
}
Nach dem Login kopieren

Vermeiden Sie !important

Do Verwenden Sie die Deklaration „!important“ nicht, um die Priorität von Medienabfragen zu überschreiben. Dies führt zu einer übermäßigen Verwendung von „!important“ und erschwert die Verwaltung der CSS-Spezifität.

Das obige ist der detaillierte Inhalt vonWarum überschreiben reguläre CSS-Regeln Medienabfragen in CSS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage