Home > Web Front-end > HTML Tutorial > The priority of css introduction method and the priority difference of different selectors_html/css_WEB-ITnose

The priority of css introduction method and the priority difference of different selectors_html/css_WEB-ITnose

WBOY
Release: 2016-06-24 11:44:30
Original
1240 people have browsed it

We all know that there are 3 basic settings for css, namely

1. Inline is also called embedded. For example:

<div style='background:red'></div>
Copy after login

2. Inline, wrapped with style tags in the html file. For example:

<html>  <style type='text/css'>     div{        background:red;     }  </style></html>
Copy after login

3. Link type, referenced using link tags in html files. For example:

<html>  <link rel='stylesheet' type='text/css' href='style.css'/></html>
Copy after login

Note: There is another This @import writing method is not commonly used and has compatibility issues. It is ignored.

When we use these three methods at the same time to set styles on the same target element, the priority is inline > inline > link

Generally, in the same way (file), whoever comes next has the highest priority. Many people know this,

But many people ignore that different selectors also have priorities.

First of all, let’s recall the css selector type

  • #id name{ attribute name: attribute value; }

    .class name{ attribute name: attribute value; }

    tag name{ attribute name: attribute value; }

    This is one of the 3 basic selectors. There are compound selectors that combine them with each other

    We write a css style file and introduce it into the css.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>css优先级讨论</title></head><link rel="stylesheet" type="text/css" href="base.css"/><body>    <div id='red' class='blue' >颜色</div></body></html>
    Copy after login

    base.css file As follows

    @charset "utf-8";/* CSS Document */#red{  color:red;}.blue{  color:blue;}div{  color:black;}
    Copy after login

    These three style settings are all for one element and are all in the link file. They should override the previous ones in order, but the browser The result of the operation is

    This means that the id selector has the highest priority. Please see the figure below for the specific selector weight

    Through this picture, we can calculate which setting has a higher priority. At the same time, we will also realize that the priority of the link may be greater than the embedded one! In practice, we often encounter this kind of error caused by problems. Now let’s look at a practical example

    In this page, the color attribute of the button "Next" is set three times, and all of them are In the base.css file, the subsequent color values ​​do not overwrite the previous settings and become white, because the first circle uses a class label weight of 11, the second circle uses a class weight of 10, and the last one uses a label weight of 1. Naturally, the effective solution for the first setting is very simple. Change the second selector and the result is as follows

    The weight values ​​are equal and the back covers the front. That’s it. It’s not enough for errors. Please point it out.

    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