例如,为一个元素选择文本的颜色。
浏览器将需要为CSS颜色属性找到一个值。
首先,它将检查它试图渲染的元素是否具有定义颜色值的内联样式,如下所示:
<a style="color:red" href="https://www..cn">Visit the website</a>
如果没有内联样式,浏览器将查找包含适用于元素的样式的样式元素,如下所示:
<style type="text/css"> a { color: red; } </style>
如果没有这样的样式元素,浏览器会查看通过链接元素加载的样式表。
属性的前三个来源(内联样式,嵌入样式和样式表)统称为作者样式。
用户样式表中定义的样式称为用户样式,浏览器定义的样式称为浏览器样式。
您可以通过将属性值标记为重要来覆盖正常的级联顺序。
通过对声明附加!important
,可以将单个值标记为重要。
<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style type="text/css">
a {
color: black !important;
}
</style>
</head>
<body>
<a style="color:red" href="https://www..cn">Visit the website</a>
<p>This is a text.</p>
<a href="https://www.w3.org" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" >Visit the W3C website</a>
</body>
</html>
浏览器优先选择重要的样式,无论它们在何处定义。
如果有两个样式应用于在同一级别定义的元素,并且它们都包含浏览器正在寻找的CSS属性的值。
要决定使用哪个值,浏览器会评估每个样式的特异性,并选择最具体的值。
浏览器通过计算三个不同的特征来确定样式的特异性:
浏览器合并来自每个评估的值,并应用来自最特定样式的属性值。
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
a {
color: black;
}
a.myclass {
color:white;
background:grey;
}
</style>
</head>
<body>
<a href="https://www..cn">Visit the website</a>
<p>The is a test.</p>
<a class="myclass" href="https://www.w3.org" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" >Visit the W3C website</a>
</body>
</html>
当评估特异性时,您以a-b-c的形式创建一个数字,其中每个字母是三个特征之一的总和。
只有a值相等,浏览器才会比较b值。
只有当a和b的值相同时,浏览器才会考虑c值。
1-0-0的特异性得分比0-2-2更特异。
在上面的代码中,selector a.myclass包含一个类属性,这意味着样式的特殊性是0-1-0。 0用于id值,1用于其他属性,0用于元素名称。
当呈现已分配给myclass类的元素时,浏览器会为color属性找到一个值。对于所有其他的元素,将使用另一个样式的值。
当在具有相同特定性的样式中定义值时,浏览器根据顺序选择值。
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
a.myclass1 {
color: black;
}
a.myclass2 {
color:white;
background:grey;
}
</style>
</head>
<body>
<a href="https://www..cn">website</a>
<p>This is a paragraph.</p>
<a class="myclass1 myclass2" href="https://www.w3.org" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" >W3C</a>
</body>
</html>
如果浏览器找不到一个可用样式中的值,它将使用继承。
继承意味着获取由父元素定义的属性的值。
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
p {
color:white;
background:grey;
border: medium solid black;
}
</style>
</head>
<body>
<a href="https://www..cn">website</a>
<p>This is a <span>test</span>.</p>
<a href="https://www.w3.org" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" >W3C</a>
</body>
</html>
span
元素的父代是 p
元素。
span元素从父p元素继承color属性。
不是所有的CSS属性都是继承的。
只有与外观相关的是继承的,包括文本颜色,字体详细信息等。
与布局相关的不是继承。
你可以通过使用inherit
在样式中强制继承,
inherit
显式地告诉浏览器对属性使用父元素的值。
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
p {
color:white;
background:grey;
border: medium solid black;
}
span {
border: inherit;
}
</style>
</head>
<body>
<a href="https://www..cn">website</a>
<p>This is a <span>test</span> from www..cn.</p>
<a href="https://www.w3.org" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" >W3C</a>
</body>
</html>
当我们在做网页的时候,有时为了整体页面搭配的美观,需要设置层样式为透明或者半透明,因为透明往往能产生不错的网页视觉效果。...
CSS 表格 使用 CSS 可以大大提高 HTML 表格的外观。2020年11月2019年11月程序语言等级更改12C16.21%+0.17%23Python12.12%+2.27%3...
HTML 样式- CSSCSS(Cascading Style Sheet)可译为“层叠样式表”或“级联样式表”,它定义如何显示 HTML 元素,用于控制Web页...
如今我们的网站、页面更加需要注重细节,不论是字体的样式、还是图片的分辨率清晰度都会影响到用户的访问体验和 PV,以及用户以...