CSS选择器相关以及CSS选择器的优先级

首先,当我们给css中的选择器设定样式后,有一些属性并没有起作用。通过FireBug查看发现一些属性被覆盖了。那么CSS的优先级是如何的呢?

在CSS中,基本选择器诸如 id选择器,class类选择器,还有标签选择器。组合使用的时候,又有后代选择器和群组选择器。

语法:

id选择器:#id

<style type="text/css">
		#mydiv{
			color: red;
		}
	</style>
	<body>
		<div id="mydiv">
			<p>文字相关</p>
		</div>
	</body>

类选择器:.class

<style type="text/css">
		.cls{
			color: red;
		}
	</style>
	<body>
		<div class="cls">
			
		</div>
	</body>

标签选择器:div, p span等。

<style type="text/css">
		.cls{
			color: red;
		}
	</style>
	<body>
		<div>
			<p>文本</p>
		</div>
	</body>
后代选择器:

<style type="text/css">
		div .mytext{
			color: red;
		}
	</style>
	<body>
		<div>
			<p class="mytext">文本</p>
		</div>
	</body>

群组选择器:

<style type="text/css">
		div .mytext,p{
			color: red;
		}
	</style>
	<body>
		<div>
			<p class="mytext">文本</p>
			<span>
				哈哈哈哈哈
			</span>
		</div>
	</body>
以上共五种选择器。
选择器的优先级:

以下面的代码为例 

<style type="text/css">
		#mydiv span{
			color: red;
		}
		span {
			color: black;
		}
	</style>
	<body>
		<div id="mydiv">
			<span>
				  文本内容
			</span>
		</div>
	</body>

执行结果后,文本是红色的。也就是说 上面的css样式覆盖了下面的样式。

出现这个结果的原因是 下面的优先级不够。

优先级如何确定呢?

一般给定id选择器的优先级为100 class选择器优先级为 10 标签选择器优先级为 1

当我们遇到诸如此类:

		#mydiv p span .block
		.block span
		span a .red
		.wrap
		a
		#div

选择器优先级可以这么算:

		#mydiv p span .block    100+1+1+10 = 112
		.block span            10+1 = 11
		span a .red            100+1+10 = 111
		.wrap                  10
		a                      1
		#div                   100

优先级不言而喻。

优先级使用以上已经介绍清楚,那么 如何根据情况选择最适合的选择器呢?

  • 最常用类选择器
  • id最好使用在页面只出现一次的标签内。
  • li、td、dd等经常大量连续出现,并且样式相同或者相类似的标签,我们采用类选择器跟标签名选择器结合的后代选择器 .xx li/td/dd {} 的方式选择。
  • HTML标签中用style引入的css样式的优先级1000 但是不提倡。因为不符合解耦性。

那么浏览器是如何针对css选择器来查找元素的?

浏览器从右到左进行查找的好处是为了尽早过滤掉一些无关的样式规则和元素。比如如下html和css:

<style> 
DIV#divBox p span.red{color:red;}  
><style> 
<body> 
<div id="divBox"> 
<p><span>s1</span></p> 
<p><span>s2</span></p> 
<p><span>s3</span></p> 
<p><span class='red'>s4</span></p> 
</div> 
</body> 
浏览器的查找顺序如下:先查找html中所有class='red'的span元素,找到后,再查找其父辈元 素中是否有p元素,再判断p的父元素中是否有id为divBox的div元素,如果都存在则匹配上。

如何让自己的css样式更加简洁高效?

css高效的原理主要是减少浏览器的查找

类选择器前不用标签选择器 特例:多个标签的类选择器相同 但是要求样式有些不一样。

id选择器前不用标签选择器。

如:

a .red
b .red
尽量减少层级关系

如:

#div p span .red
应该使用:.red
使用class选择器代替层级关系。

如:

#mydiv p span a
{
<span style="font-family: Arial, Helvetica, sans-serif;">    display: block;</span>
}
替代:
.block {
  display: block;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的纺织品企业财务管理系统,源码+数据库+毕业论文+视频演示 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对纺织品企业财务信息管理的提升,也为了对纺织品企业财务信息进行更好的维护,纺织品企业财务管理系统的出现就变得水到渠成不可缺少。通过对纺织品企业财务管理系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 纺织品企业财务管理系统通过MySQL数据库与Spring Boot框架进行开发,纺织品企业财务管理系统能够实现对财务人员,员工,收费信息,支出信息,薪资信息,留言信息,报销信息等信息的管理。 通过纺织品企业财务管理系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源,为环境保护也做了力所能及的贡献。 关键字:纺织品企业财务管理系统,薪资信息,报销信息;SpringBoot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值