CSS选择器优先级的学习与应用

简介: 选择器优先级是CSS初学者必须掌握的要点,掌握了优先级就能轻松得掌控全局的样式变化,下面我将从概念,基础优先级,优先级计算三个方面来带读者轻松掌握CSS选择器优先级

选择器优先级

选择器优先级是CSS初学者必须掌握的要点,掌握了优先级就能轻松得掌控全局的样式变化,下面我将从概念基础优先级优先级计算三个方面来带读者轻松掌握CSS选择器优先级

概念

在使用不同选择器对元素添加样式的时候会造成样式冲突现象,即使用不同类型的选择器对某个标签赋予相同的样式属性但不同的属性值,而冲突的原因常常就是选择器优先级造成的,除了选择器优先级会造成样式冲突之外,我们还可以使用其特性来处理我们的样式

* {
    margin:0px;
    padding:0px;
}
.box {
    margin:10px
}
复制代码

上面的例子就比较常见,我们一般先使用通配符选择器对外边距和内边距进行初始化,再进行个别元素附加边距,下面我带读者一一列举各个选择器的优先级

基础优先级

优先级划分为六个,分别为:通配符选择器标签选择器类选择器ID选择器内联样式!import,下面来分别介绍一下六种等级的特性。

通配符选择器

通配符选择器一般用于全局元素的属性初始化,比如进行一个内边距和外边距的初始化,设置为0,优先级记为0级

* {
    margin:0;
    padding:0;
}
复制代码

标签选择器

标签选择器一般常用于各个固有元素的样式预设,比如说盒子,链接等等,优先级记为1级。

a {
    color:pink;
}
复制代码

类选择器

类选择器是非常常用的,经常和标签选择器搭配使用,优先级记为2级。

. a-red {
    color:red
}
复制代码

ID选择器

ID选择器,不常用,在选择器的设计中要正确使用ID选择器,不是很推荐去使用ID选择器去赋予样式,因为其主要的是为了方便获取DOM元素,且其优先级过高,频繁使用会导致样式优先级混乱,优先级记为3级。

#main {
}
复制代码

内联样式

内联样式,内联样式也不是很常用,尽管优先级很高也不会接触到选择器的范畴,优先级记为4级。

<div style="width: 100px;"></div>
复制代码

! important

切勿滥用 ! important,我们仅仅可以在重置样式中去使用他,其优先级为5级

6种样式的优先级了解到这里,但是掌握到这里还不行,还需要学会优先级计算才能灵活控制样式不会紊乱。

优先级计算

了解单个优先级,但是开发中选择器是经常进行组合使用的,所以必须使用优先级计算来判断优先级大小

数值计算方法

我们通过数值计算来计算每个样式的优先级大小,就是根据上面的各个基础选择器的优先级得到各个选择器的权重值,再将其相加,得到最后的权重值,依靠该权重值来对元素赋予样式。

各个选择器的优先级对应的权重值以指数形式递增,通配符的权重值为0,标签选择器的权重值为1,类选择器的权重值为10,以此类推。

比如下面的样式,我们来计算一下

.box div {
}
复制代码

计算一下其权重值,类选择器的权重值为10,标签选择器的权重值为1,所以最后得到的权重值为11,权重值高的样式会覆盖掉权重值低的相同样式属性

我用码上掘金来展示一下优先级的效果

image.png

上面我分别用使用标签选择器,标签和类选择器组合,由于标签和类选择器组合的权重值高于只使用标签选择器,所以最后的文字颜色是蓝色。

后来居上原则

那么如果权重值相同的情况会怎么样,那么就会采取后来居上的原则,即后面的样式会覆盖掉前面相同的样式属性

image.png

这里是验证后来居上原则,分别使用相同的选择器组合,使其权重值相同都为11,所以最后的文字样式遵循最后赋予的样式,为红色。


相关文章
|
1月前
|
编解码 前端开发 UED
解密CSS单位:px、em、vh的区别与应用
解密CSS单位:px、em、vh的区别与应用
40 0
|
1月前
|
XML 前端开发 数据格式
css核心组成部分包括选择器、属性和值。
【4月更文挑战第5天】css核心组成部分包括选择器、属性和值。
18 7
|
1天前
|
前端开发
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
|
5天前
|
前端开发
CSS选择器
CSS选择器
10 1
|
11天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
11天前
|
前端开发 JavaScript 搜索推荐
【专栏:HTML 与 CSS 前端技术趋势篇】HTML 与 CSS 在 Web 组件化中的应用
【4月更文挑战第30天】本文探讨了HTML和CSS在Web组件化中的应用及其在前端趋势中的重要性。组件化提高了代码复用、维护性和扩展性。HTML提供组件结构,语义化标签增进可读性,支持用户交互;CSS实现样式封装、布局控制和主题定制。案例展示了导航栏、卡片和模态框组件的创建。响应式设计、动态样式、CSS预处理器和Web组件标准等趋势影响HTML/CSS在组件化中的应用。面对兼容性、代码复杂度和性能优化挑战,需采取相应策略。未来,持续发掘HTML和CSS潜力,推动组件化开发创新,提升Web应用体验。
|
11天前
|
编解码 前端开发 UED
【专栏:HTML与CSS实践篇】HTML与CSS在电商网站中的应用
【4月更文挑战第30天】本文探讨了HTML和CSS在电商网站中的关键作用。HTML作为基础结构,定义网页内容和布局,用于页面布局、内容展示和表单处理;而CSS则负责样式设计和美化,包括响应式设计、交互效果和模块化,两者结合创建出功能齐全、视觉吸引力强的在线购物环境,提升用户体验。
|
11天前
|
前端开发 开发者
【专栏:CSS基础篇】CSS选择器详解:精准定位网页元素
【4月更文挑战第30天】本文介绍了CSS选择器在Web开发中的重要性,详细阐述了基础选择器(元素、类、ID、属性和伪类/伪元素)及复杂选择器(后代、子元素、相邻兄弟和一般兄弟)的用法。通过理解并巧妙运用这些选择器,开发者能更高效地控制页面样式,提高代码的可维护性。CSS预处理器如Sass、LESS进一步增强了选择器的功能,助力创建优雅且强大的样式表,实现精准的网页设计。
|
11天前
|
前端开发 JavaScript 安全
【亮剑】探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式
【4月更文挑战第30天】本文探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式。文章分为三部分:首先解释了样式传递的必要性,包括模块化、主题化和动态样式以及TypeScript集成。接着介绍了内联样式的基本用法和最佳实践,展示了一个使用内联样式自定义按钮颜色的例子。最后,讨论了使用CSS模块和TypeScript接口处理复杂样式的方案,强调了它们在组织和重用样式方面的优势。结合TypeScript,确保了样式的正确性和可维护性,为开发者提供了灵活的样式管理策略。
|
12天前
|
前端开发 容器
【Web 前端】css选择器有哪些?
【4月更文挑战第22天】【Web 前端】css选择器有哪些?