CSS的样式选择器以及优先级算法汇总

CSS的样式选择器有很多种,常见的有以下几种:

  1. 元素选择器(Element Selector) :通过元素的名称来选择元素。例如,p选择所有的段落元素。

  2. 类选择器(Class Selector) :通过类名来选择元素。类选择器以句点.开头,例如,.myclass选择所有类名为myclass的元素。

  3. ID选择器(ID Selector) :通过元素的ID属性来选择元素。ID选择器以井号#开头,例如,#myid选择ID为myid的元素。

  4. 属性选择器(Attribute Selector) :通过元素的属性来选择元素。例如,[type="text"]选择所有type属性为text的元素。

  5. 后代选择器(Descendant Selector) :选择某个元素的后代元素。例如,div p选择所有div元素内部的p元素。

  6. 子元素选择器(Child Selector) :选择某个元素的直接子元素。例如,ul > li选择所有ul元素下的直接子元素li。

  7. 伪类选择器(Pseudo-class Selector):用于选择处于特定状态的元素,如:hover(鼠标悬停)、:first-child(第一个子元素)、:nth-child(n)(第n个子元素)等。

  8. 伪元素选择器(Pseudo-element Selector):用于选择元素的特定部分,如::before(在元素内容之前插入内容)、::after(在元素内容之后插入内容)等。

CSS3引入了许多新的样式,其中一些常见的包括:

  1. 边框样式(Border Styles) :新增了更多样式的边框,如border-radius(圆角边框)和border-image(图片边框)等。

  2. 渐变(Gradients) :新增了线性渐变(linear-gradient)和径向渐变(radial-gradient)等。

  3. 阴影(Box Shadows) :新增了更多样式的阴影效果,如box-shadow。

  4. 过渡(Transitions):新增了过渡效果,使元素的样式在一段时间内平滑地过渡到另一种样式。

  5. 动画(Animations):新增了动画效果,可以通过关键帧(keyframes)来定义元素的动画效果。

  6. 媒体查询(Media Queries):允许根据设备的特性(如屏幕宽度、设备方向等)来应用不同的样式。

在CSS中,当多个样式规则应用到同一个元素时,就会涉及到样式选择器的优先级问题。CSS样式选择器的优先级原则可以总结为以下几点:

  1. 重要性(!important) :使用!important声明的样式具有最高的优先级,会覆盖其他所有样式。但是,滥用!important可能导致样式表混乱,应该尽量避免使用。

  2. 优先级就近原则:同权重情况下样式定义最近者为准。

  3. 内联样式(Inline Styles) :在元素的style属性中定义的样式具有更高的优先级,会覆盖外部样式表和内部样式表中的样式。

  4. ID选择器(ID Selectors):ID选择器具有比类选择器和元素选择器更高的优先级。如果同一个元素同时使用了ID选择器和类选择器,ID选择器的样式会被应用。

  5. 类选择器和属性选择器(Class Selectors and Attribute Selectors):类选择器和属性选择器的优先级相同,比元素选择器的优先级高。如果同一个元素同时使用了类选择器和元素选择器,类选择器的样式会被应用。

  6. 元素选择器(Element Selectors):元素选择器的优先级最低,会被其他选择器所覆盖。如果同一个元素同时使用了多个元素选择器,后面定义的样式会覆盖前面定义的样式。

  7. 组合选择器(Combined Selectors):当多个选择器组合在一起时,会根据选择器的特定性(Specificity)来确定优先级。特定性是一个用于计算选择器优先级的值,通常由选择器中ID选择器、类选择器和元素选择器的数量组成。

  8. 通配符* :使用 * 符号来选择所有元素的样式。通配符选择器可以应用于所有元素,而不仅限于特定的元素或类

  9. 组合选择器(Combined Selectors):当多个选择器组合在一起时,会根据选择器的特定性(Specificity)来确定优先级。特定性是一个用于计算选择器优先级的值,通常由选择器中ID选择器、类选择器和元素选择器的数量组成。

  10. 继承(Inheritance):某些样式是可以继承的,即子元素会继承父元素的样式。但是,不是所有样式都可以继承,如边框、背景等样式通常不会被继承。

相关推荐
橙光成长1 小时前
PDF离线工具箱深度解析:4MB纯前端单文件,40+功能全本地运行,文件绝不上传
前端·pdf·1024程序员节
小poop8 小时前
CSS 基础与实战:从入门到精通网页美化
前端
宝绿特塑业再生科技8 小时前
改性HDPE再生颗粒在户外家具挤出发泡板材中的色差控制与高品质价值重构
经验分享·科技·学习·生活·1024程序员节·户外家具
Csvn9 小时前
运行时性能
前端
Never_every9910 小时前
位图转矢量工具哪个好?实测抠抠图AI位图转矢量工具
大数据·前端
paopaokaka_luck10 小时前
宠物门店经营管理系统(销售与库存联动、进货自动记账、 退换与退款关联、员工个人业绩、ECharts 经营分析、滞销识别与客户分层、宠物档案年龄计算)
前端·javascript·spring boot·mysql·echarts·mybatis·1024程序员节
andrsted10 小时前
练题簿在线免费刷题:让整理过的资料,变成能反复练习的题库
学习·微信小程序·小程序·学习方法·刷题·1024程序员节
空中湖11 小时前
用 React 写数据大屏:为什么我不建议用图表库
前端·react.js·前端框架
Alsn8611 小时前
Windows 安装 Ollama 及本地模型部署
学习·1024程序员节
狮子座的男孩12 小时前
html+css基础:25、3D变换(3D空间与景深/透视点的位置/位移/旋转/缩放/多重变换/背部可见性)
css·经验分享·html·旋转·透视点·缩放/位移·3d变换/空间与景深