Css/Training/Priority level of selector
Priority level of selector
Calculating a selector's specificity
The priority level of the selector is decided in Point of combination of selectors.
- style attribute = a
- number of ID attributes in the selector = b
- number of other attributes and pseudo-classes in the selector = c
- number of element names and pseudo-elements in the selector = d
For example, If it is a combination of the following selectors:
[index.html]
<body>
<article>
<p>This is <span id="red">paragraph</span>.</p>
</article>
</body>
[style.css]
article p span{
color: blue;
}
#red{
color: red;
}
"article p span" are "a=0, b=0, c=0, d=3 (0003)".
"#red" is "a=0, b=1, c=0, d=0 (0100)".
In this instance, paragraph becomes a red character. Because "#red(0100)" is bigger than "article p span(0003)".
See also 6.4.3 Calculating a selector's specificity
Example
[index.html]
<body>
<div id="wrapper">
<header id="top">
<h1>W3C cafe</h1>
<div id="hright">
<nav>
<ul id="gnavi">
<li>menu</li>
<li>location</li>
<li>about us</li>
<li>recruit</li>
</ul>
</nav>
</div>
</header>
</div>
</body>
[style.css]
#wrapper header div nav #gnavi{
list-style-type: none;
}
#top #hright #gnavi{
list-style-type: square;
}
In this case, the markers of list are changed to "square". Because "#top #hright #gnavi(a=0, b=3, c=0, d=0)" is bigger than "#wrapper header div nav #gnavi(a=0, b=2, c=0, d=3)".
Congratulations!
You finished the CSS educational materials for beginners.
The property that explains with this teaching material is a part of specifications. Please refer to list of CSS Property when there is a property that doesn't understand when you are creating the Web site.
