CSS之三大特性

前言

CSS有三个非常重要的特性:层叠型、继承性、优先级。


一、层叠性?

相同选择器给设置相同的样式,此时一个样式就会覆盖另一个冲突的样式。层叠性主要解决样式冲突的问题。

  • 层叠性原则:
    • 样式冲突 ,遵循就近原则,哪个样式离结构近,就执行哪个样式。
    • 样式不冲突 ,不会重叠。

示例代码:

<style>
	/* color:blue 距离div近,所以红色会被第蓝色覆盖 */
	/* font-size 属性不冲突,所以不会被覆盖掉 */
	div { color: red; font-size: 20px; }
	div { color: blue; }
</style>
<div> CSS层叠性:此时呈蓝色,字体大小为20px</div>

二、继承性?

子标签会继承父标签的某些样式,如文本颜色,字体大小。

  • 继承性注意:
    • 恰当的继承以达到简化代码,降低CSS的复杂性。
    • 子元素可以继承父元素的样式(以 text、font、line 开头的可以继承,以及color)

示例代码:

<style>
	div { color: red; font-size: 20px; }
</style>
<body>
	<div><p> CSS继承:p标签内呈红色,字体大小20px</p></div>
</body>

行高的继承性

在CSS继承性中 对于行高 继承尤为突出,可以使子元素根据自己文字大小自动调整行高。如,京东。

  • 行高可以跟单位亦可不跟单位
  • 如果子元素没有给定行高,则会继承父元素的行高
  • 此时子元素的行高是,当前子元素文字大小*父元素给定的行高倍数

示例代码:

<style>
	body { font: 12px/1.5 }
	/* 子元素继承父元素body的行高1.5
	当前元素文字大小 font-size 的1.5
		14*1.5=21*/
	div { font-size: 14px}
</style>
<body>
	<!-- 此时div行高为21px-->
	<div>示例文字</div>
</body>

三、优先级?

当同一个元素指定多个选择器,就会有优先级的产生。

  • 选择器相同,则执行层叠性。
  • 选择器不同,则根据选择器权重执行。
  • 继承权重为0

示例代码:

<style>
	/* !important> 行内样式 > ID选择器 > 类选择器权重/伪类选择器 > 元素选择器 */
	div { color: red!important; }
	.test { color: blue; }
	#demo { color: green; }
	/* p继承的权重为0 */
	p { color: purple; }
</style>
<body>
	<!-- 此时文字颜色为红色 -->
	<div class="test" id="demo" sytle="color: pink">示例文字
		<!-- p标签内文字为紫色 -->
		<p> p 标签</p>
	</div>
</body>

权重叠加

复合选择器中的权重叠加。

示例代码:

<style>
	/* .test 权重 10 + 1 = 11 */
	.test li { color: green; }
	/* ul li 权重 1 + 1 = 2 */
	ul li { color: red; }
	/* li 权重 1 */
	li { color: blue; }
</style>
<body>
	<ul class="test">
		<li>li中的文字</li>
	</ul>
</body>

总结

基础需牢记。在CSS三大特性中,层叠性跟继承性比较好理解,优先级中牵扯到选择器权重的问题,需要多练习,加深记忆。权重表示上,采用4位表示且不进位(类选择器:0,0,1,0)。平时便于记忆(类选择器:10),在面试中,切不可说是10。
继承性中,行高的继承在实际开发中时常用到,采用上面的写法,使子元素自适应调整行高。

此文章参考pink老师,相关视频讲解请移步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值