博客
关于我
CSS选择器的权重
阅读量:593 次
发布时间:2019-03-11

本文共 1621 字,大约阅读时间需要 5 分钟。

ildo感到用户希望将关于CSS选择器权重和样式权重计算的内容进行优化和改写。以下是我对原文的理解和改写结果:

CSS选择器权重与样式权重计算

1. 行间样式、内联样式与外联样式

行间样式、内联样式和外联样式是给CSS样式引入的三种方式,并且它们在权重计算中的先后顺序是:

行间样式 > 内联样式 > 外联样式

2. CSS选择器类型

CSS选择器有多种类型,这些类型决定了样式的应用范围。以下是常见的CSS选择器类型及其特点:

  • ID选择器(#id)

    ID选择器需要确保在HTML标记中定义相应的id名称。ID选择器在样式表中使用#符号表示。与之对应的属性选择器则没有特定的限制。

  • 类选择器(.className)

    类选择器可以通过在HTML元素上定义类名来实现。类选择器在样式表中前面保留一个句点(.)来表示。类选择器适用于多个元素同时应用相同样式。

  • 元素选择器(E)

    元素选择器是最基础的CSS选择器类型,用于直接选择HTML文档中的元素。例如,p可以选择页面中的所有段落元素。

  • 群组选择器

    群组选择器用于将共享相同样式的元素分组。选择多个选择器时,使用逗号(,)进行隔离。例如,div.content p可以选择类为content的所有div元素的后代段落。

  • 通用兄弟选择器(E 〜 F)

    通用兄弟选择器是CSS3新增的选择器类型。它用于在兄弟元素中选择特定元素。例如,ul ~ li会选择所有单独的li元素,如果它们位于同一个父元素内。

  • 相邻兄弟选择器(E + F)

    相邻兄弟选择器用于选择紧接在指定元素之后的相同父元素下的兄弟元素。例如,p + h3会选择每个p元素后面的h3元素。

  • 子元素选择器(E > F)

    子元素选择器用于选择特定祖先元素E的直接子元素F。与后代选择器相比,子元素选择器更严格,只选择直接子元素。例如,div > ul会选择所有div元素的直接子元素中的列表。

  • 后代选择器(E F)

    后代选择器用于选择某个元素的所有后代元素。E F的选择方式更宽泛,F可以是E的子元素、孙元素或更远层次的元素。例如,div body p会选择所有div的后代的子段落元素。

  • 通配符选择器(*)

    通配符是特定范围内最通用的选择器,可以选择页面中任何元素。例如,*会选择所有在层级结构下给定的元素。

  • 伪类和伪元素选择器

    伪类用于在不实际添加内容的情况下为元素应用样式。常用的伪类包括::link(未访问的链接)、:visited(已访问的链接)以及:hover(悬停状态的元素)。

  • 伪元素选择器

    伪元素选择器用于在文档中插入或修改元素内容。例如,::before::after可以用于在元素前后插入自定义内容。

  • 属性选择器

    属性选择器用于根据HTML属性来选择元素。常用的属性选择器格式包括:

    • E[attr]:选择具有指定属性的元素。
    • E[attr=val]:选择具有指定属性值的元素。
    • E[attr~=val]:选择属性值中包含指定单词的元素。
  • 3. 样式权重计算规则

    CSS样式的权重计算遵循以下规则:

  • 第一等:内联样式

    内联样式通过<style>标签直接添加在元素上,权重为1000。

  • 第二等:ID选择器

    使用#符号表示的ID选择器(如#content)的权重为0100。

  • 第三等:类、伪类和属性选择器

    类选择器(如.content)、伪类(如:hover)以及属性选择器的权重为0010。

  • 第四等:元素和伪元素选择器

    元素选择器(如div)、伪元素选择器(如::first-line)和通用选择符的权重为0001。

  • 低等:通配符、子选择器和相邻选择器

    通配符选择器(如*)、子选择器(如div > p)和相邻选择器(如p + h3)的权重为0000。

  • 无权:继承样式

    样式的继承属性没有权重,并且继承的样式仅限于层级关系内的计算。

  • 通过理解CSS选择器的权重和样式权重计算规则,可以更精准地控制网页布局和样式应用效果。

    转载地址:http://lbqtz.baihongyu.com/

    你可能感兴趣的文章
    Ploly Dash,更新一个Dash应用程序JJJA上的实时人物
    查看>>
    Ploly烛台的定制颜色
    查看>>
    Ploly:如何在Excel中嵌入完全交互的Ploly图形?
    查看>>
    plotloss记录
    查看>>
    Plotly (Python) 子图:填充构面和共享图例
    查看>>
    Plotly 中的行悬停文本
    查看>>
    Plotly 停用 x 轴排序
    查看>>
    Plotly 域变量解释(多图)
    查看>>
    Plotly 绘制表面 3D 未显示
    查看>>
    Plotly-Dash 存在未知问题并创建“加载依赖项时出错“;通过使用 Python-pandas.date_range
    查看>>
    Plotly-Dash:如何过滤具有多个数据框列的仪表板?
    查看>>
    Plotly:如何为 x 轴上的时间序列设置主要刻度线/网格线的值?
    查看>>
    Plotly:如何从 x 轴删除空日期?
    查看>>
    Plotly:如何从单条迹线制作堆积条形图?
    查看>>
    Plotly:如何以 Root 样式绘制直方图,仅显示直方图的轮廓?
    查看>>
    Plotly:如何使用 Plotly Express 组合散点图和线图?
    查看>>
    Plotly:如何使用 plotly.graph_objects 和 plotly.express 定义图形中的颜色?
    查看>>
    Plotly:如何使用 Python 对绘图对象条形图进行颜色编码?
    查看>>
    Plotly:如何使用 updatemenus 更新一个特定的跟踪?
    查看>>
    Plotly:如何使用长格式或宽格式的 pandas 数据框制作线图?
    查看>>