欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CSS特性之层叠性

程序员文章站 2022-06-04 14:41:00
...

CSS的层叠性

1、层叠性的条件

(1)元素相同

(2)属性相同

(3)优先级相同

2、层叠性的样式冲突

(1)引用方式冲突

        CSS的引用方式包括内联样式、内嵌样式、导入样式、链接样式,四个的优先级内联样式>内嵌样式>导入样式>链接样式;

CSS的部分

body{
	background: #000000;
}
HTML的部分
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
	<link href="Untitled-1.css" rel="stylesheet" type="text/css">
	<style type="text/css">
		body{
			background: #0005FF;
		}
	</style>
</head>

<body>
	<p style="background: #FD0206">优先级</p>
</body>
</html>

(2)继承方式冲突

这个可以这样比喻,比如我当前的对象为儿子,那么和儿子最近是父亲,再近一点的是爷爷,,所以显示的是他父亲。

<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
	<style type="text/css">
		body{
			color: #0005FF;
		}
		#father{
			color: #FBFA2E;
		}
		#grandfather{
			color: #FD0206;
		}
	</style>
</head>

<body>
	<div id="grandfather">
		<div id="father">
			<div>
				<p>继承冲突</p>
			</div>
		</div>
	</div>
</body>
</html>

有一些人,会进一些死胡同里,比如我,当时不知道怎么想的,当把文本放置在“父亲”上时,而父亲本身没有带CSS样式,那么显示的是“爷爷”,还是“儿子”,这个可以比喻为当前的对象为刚出生,那么“父亲”刚出生,怎么可能有“儿子”,所以显示的是“爷爷”,其实质是因为“儿子”的范围不包括父亲。

<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
	<style type="text/css">
		body{
			color: #0005FF;
		}
		#son{
			color: #26F644;
		}
		#grandfather{
			color: #FD0206;
		}
	</style>
</head>

<body>
	<div id="grandfather">
		<div>
			<p>继承冲突</p>
			<div id="son">
			</div>
		</div>
	</div>
</body>
</html>

(3)指定样式冲突

当指定的样式发生冲突时,根据权重,进行比值;注意只有权重相同时,才会根据“后来居上”原则

选择器权重

选择器 权重
通配符 0
伪元素 1
元素选择器 1
class选择器 10
伪类 10
属性选择器 10
id选择器 100
行内选择器 1000

常见的伪元素有“:before”“:after”“:first-letter”“first-line”

常见的伪类:“hover”“first-child”

<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
	<!--link href="Untitled-1.css" rel="stylesheet" type="text/css"-->
	<style type="text/css">
		body{
			color:black;
		}
		.father{
			color:yellow;
		}
		#son{
			color:green;
		}
	</style>
</head>

<body>
	<div id="son" class="father">
		<p>继承冲突</p>
	</div>
</body>
</html>
id的权重最大,所以显示green。

(4)继承样式与指定样式冲突

当两者冲突时,以指定样式优先

(5)!important

!important可以改变优先级,如果使用它,则该样式可以覆盖在其他任何样式上面

<style>
.test {
	color: #f00 !important;
	color: #000;
}
.test2 {
	color: #f00 !important;
}
.test2 {
	color: #000;
}
</style>
 
相关标签: CSS

上一篇: JS语法

下一篇: CSS层叠性