CSS声明的优先级

    选择器的特殊性: 特殊性表述为 4个值(0,0,0,0). 这四个值体现了css选择器对优先级的贡献度
    内联: (1,0,0,0)
    ID: (0,1,0,0)
    类,伪类,属性选择: (0,0,1,0)
    伪元素: (0,0,0,1)
    通配"*": (0,0,0,0)
    组合: 没有贡献
    继承: 没有特殊性
       
    *在一般情况下,这是个贡献是没有什么作用的
    *但是一旦选择器对元素的选择出现了交集
    *例如张三选了某个a标签,李四也选了a标签,设置了不同的字体大小的样式
    *但是张三的选择器对优先级的贡献大,浏览器就听张三的,忽略李四的
       
       

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			div{
				width: 100px;
				height: 100px;
			}
			#box{
				background-color: red;
			}
			.test.test.test.test.test.test.test.test.test.test.test.test{
				background-color: yellow;
			}
		</style>
	</head>
	<body>
		<div id="box" class="test">
			
		</div>
	</body>
</html>

显示效果:

                *一个id选择器的贡献是(1,0,0,0),两个则是(2,0,0,0),100个就是(100,0,0,0) 不会进位

         * 所以 (1,0,0,0) 总是大于 (0,100,0,0)的
         * 所以在这个例子中,按照一般理解为十进制,我用了12个.test,但是最终显示的仍然是红色
         * 所以这12个.test并没有起作用


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS样式在页面上应用时,会遵循一定的优先级规则。当多个样式规则同时作用于同一个元素时,会按照以下顺序决定最终呈现的样式: 1. **内联样式**(`style`属性直接写在元素上):这是最优先级的,如果元素有内联样式,那么它的值将覆盖其他所有外部定义。 2. **ID选择器**:使用`#id`选择器定义的样式,对匹配到的唯一ID具有较高优先级。 3. **类选择器和属性选择器**:`class`选择器(`.class`)、属性选择器(如 `[attribute]`、`:enabled`等)次之,它们对多个同类元素生效。 4. **标签选择器和伪类选择器**:例如`p`, `div`, `:hover`等,对同类型的元素具有较低优先级。 5. **继承**:如果子元素继承了父元素的样式,那么这个继承来的样式会根据上述的继承规则计算。 6. **CSS框架或库的优先级**:某些预设的CSS框架(如Bootstrap)可能有自己的内部优先级规则。 7. **CSS层叠**(`!important`声明):`!important`关键字用于强制样式不被其他样式覆盖,但如果有多处使用`!important`,最后的赢家是第一个遇到的`!important`声明。 8. **外链样式表**(`.css`文件):从外部引入的样式表的优先级低于内联样式和内联`style`属性,但高于内部定义在同一文档中的样式。 9. **内联`style`属性的嵌套**:如果在同一个元素上使用了多个`style`属性,后定义的属性会覆盖前定义的。 记住,理解CSS优先级有助于您编写更灵活且易于维护的样式代码。如果你在实际开发中遇到样式冲突,可以通过调整这些优先级或使用`!important`来解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值