Home Web Front-end CSS Tutorial Detailed introduction to selector priority order in CSS

Detailed introduction to selector priority order in CSS

Mar 08, 2017 pm 03:23 PM
css Selector

What is the speciality

When applying CSS styles to an HTML element, there are often many ways to find the element, such as:

<p id="container" class="wrap_sty">   
    <p class="pra">这是一个段落</p>   
</p>   
<style>   
    #container p { color:red }   
    p p { color:green }   
    p { color:yellow }    
</style>
Copy after login

It can be seen that there are many methods to affect an HTML element, far more than these. So if many of the same styles are applied to an element, which style will be displayed in the end? CSS uses a method called specificity to prioritize multiple selectors.

CSS specificity
The specificity of selectors is divided into 4 levels, a b c d, from left to right, the farther to the left, the higher the priority. If a selector rule has multiple +1 for selectors of the same type.
If it is an HTML internal style, then the specificity takes priority, a=1
The specificity of the id selector is b,
The class selector, pseudo-class selector, and attribute selector are c
tags Selectors and pseudo-element selectors are d
Let’s first talk about some selector types:
1.id selector

#myid { ... }
Copy after login

2. Class selector

.myclass { ... }
Copy after login

3. Tag selector

p { ... }
Copy after login

4. Attribute selector

[title="mytitle"] { ... }
Copy after login

Since most documents such as W3CSCHOOL may not explain it in detail, many people may think that the attribute selector is like this p[title="mytitle"] Or #id[title="mytitle"], etc., this is an attribute selector. Strictly speaking, this is not a pure attribute selector, but is composed of id selector, label selector, etc. and attribute selection. .
5. Pseudo-class selector

p:hover { ... }
Copy after login

Common pseudo-class selectors are:
Link pseudo-class, :link, :visited, use on the anchor element.
Dynamic pseudo-classes, :hover, :focus, :active, for any selection.
6. Pseudo-element selector

p::after { ... }   
p::before { ... }
Copy after login

Pseudo-element and pseudo-class are completely different concepts. They are called pseudo-elements because they are indeed A virtual HTML element can be generated, but the pseudo element cannot be obtained by the DOM.
There are many applications of pseudo-elements, the most common ones are::after clearing floats:

<ul>   
    <li>A</li>   
    <li>B</li>   
</ul>   
<style>   
    li { float:left }   
    ul::after { content: ""; display: block; clear: both }   
</style>
Copy after login

CSS specificity examples
The following are some CSS Selector specificity example:

0, 0, 0, 110, 0, 0, 22
SelectorSpecificitySpeciality in base 10
style="color: red"1, 0, 0, 01000
#id {}0, 1, 0, 0100
#id #aid0, 2, 0, 0200
.sty {}0, 0, 1, 010
.sty p[title=""] { }0, 0, 2, 020
p:hover {} 0, 0, 1, 010
p {}0, 0, 0, 11
##ul::after {}
p p {}

If the specificity of two rules is the same, the one defined later will overwrite the one defined first.

CSS Importance
There is another thing in CSS that can ignore specificity, that is !important. CSS properties using this tag always take precedence.

#id { color: red }   
.class { color: yellow !important }
Copy after login

The second style will take precedence over the first, even if the id selector is more specific than the class selector.

If both attributes have !important, then the specificity determines the priority.

#id { color: red !important }   
.class { color: yellow !important }
Copy after login

The result is that the first style takes precedence over the second.

IE6's support for !important is not complete. In IE6, if the !important attribute is first defined in a selector, and then the same attribute without !important is defined later, then !important will be invalid.

p {   
  color: yellow !important;     
  color: red;   
}
Copy after login

In IE6, there is no way to be pornographic, so let’s see some blood!

IE6/7 You can also add some ingredients after !important without losing the taste, but it is recommended not to be so boring!

div {   
  color: yellow !important you are dead;   /* IE6/7依然有效 */  
}
Copy after login

The above is the detailed content of Detailed introduction to selector priority order in CSS. For more information, please follow other related articles on the PHP Chinese website!

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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to use bootstrap in vue How to use bootstrap in vue Apr 07, 2025 pm 11:33 PM

Using Bootstrap in Vue.js is divided into five steps: Install Bootstrap. Import Bootstrap in main.js. Use the Bootstrap component directly in the template. Optional: Custom style. Optional: Use plug-ins.

The Roles of HTML, CSS, and JavaScript: Core Responsibilities The Roles of HTML, CSS, and JavaScript: Core Responsibilities Apr 08, 2025 pm 07:05 PM

HTML defines the web structure, CSS is responsible for style and layout, and JavaScript gives dynamic interaction. The three perform their duties in web development and jointly build a colorful website.

How to write split lines on bootstrap How to write split lines on bootstrap Apr 07, 2025 pm 03:12 PM

There are two ways to create a Bootstrap split line: using the tag, which creates a horizontal split line. Use the CSS border property to create custom style split lines.

Understanding HTML, CSS, and JavaScript: A Beginner's Guide Understanding HTML, CSS, and JavaScript: A Beginner's Guide Apr 12, 2025 am 12:02 AM

WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.

How to resize bootstrap How to resize bootstrap Apr 07, 2025 pm 03:18 PM

To adjust the size of elements in Bootstrap, you can use the dimension class, which includes: adjusting width: .col-, .w-, .mw-adjust height: .h-, .min-h-, .max-h-

How to use bootstrap button How to use bootstrap button Apr 07, 2025 pm 03:09 PM

How to use the Bootstrap button? Introduce Bootstrap CSS to create button elements and add Bootstrap button class to add button text

How to set up the framework for bootstrap How to set up the framework for bootstrap Apr 07, 2025 pm 03:27 PM

To set up the Bootstrap framework, you need to follow these steps: 1. Reference the Bootstrap file via CDN; 2. Download and host the file on your own server; 3. Include the Bootstrap file in HTML; 4. Compile Sass/Less as needed; 5. Import a custom file (optional). Once setup is complete, you can use Bootstrap's grid systems, components, and styles to create responsive websites and applications.

How to insert pictures on bootstrap How to insert pictures on bootstrap Apr 07, 2025 pm 03:30 PM

There are several ways to insert images in Bootstrap: insert images directly, using the HTML img tag. With the Bootstrap image component, you can provide responsive images and more styles. Set the image size, use the img-fluid class to make the image adaptable. Set the border, using the img-bordered class. Set the rounded corners and use the img-rounded class. Set the shadow, use the shadow class. Resize and position the image, using CSS style. Using the background image, use the background-image CSS property.

See all articles