Home > Web Front-end > CSS Tutorial > Why Do Regular CSS Rules Override Media Queries in CSS?

Why Do Regular CSS Rules Override Media Queries in CSS?

DDD
Release: 2024-12-22 05:30:15
Original
637 people have browsed it

Why Do Regular CSS Rules Override Media Queries in CSS?

Media Queries and CSS Priority

In CSS, media queries are less prioritized than regular CSS rules. This is determined by the CSS Cascade, a set of rules that dictate the order in which styles are applied.

Why Media Queries Have Less Priority

Media queries do not increase the specificity of selectors. This means that if a regular CSS rule and a media query target the same element with the same specificity, the regular CSS rule will take precedence.

Example:

Consider the following code:

.logo img {
  width: 100%;
}

@media screen and (min-width: 100px) and (max-width: 1499px) {
  .logo img {
    width: 120%;
  }
}
Copy after login
Copy after login

In this example, the media query has less priority than the non-media query rule. Therefore, when the viewport size matches the media query, the non-media query rule will still apply, resulting in the image width being set to 100%.

Workarounds

To prioritize media queries over regular CSS rules, there are two options:

1. Swap Rule Order

Reorder the CSS rules so that the media query comes after the non-media query rule:

.logo img {
  width: 100%;
}

@media screen and (min-width: 100px) and (max-width: 1499px) {
  .logo img {
    width: 120%;
  }
}
Copy after login
Copy after login

2. Increase Selector Specificity

Increase the specificity of the media query rule by adding additional selectors:

@media screen and (min-width: 100px) and (max-width: 1499px) {
  .logo a img {
    width: 120%;
  }
}
Copy after login

Avoid !important

Do not use the "!important" declaration to override the priority of media queries. This will lead to excessive use of "!important" and make it difficult to manage CSS specificity.

The above is the detailed content of Why Do Regular CSS Rules Override Media Queries in CSS?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template