【前端工程师手册】30分钟搞清楚选择器和权重

简介: 【前端工程师手册】30分钟搞清楚选择器和权重

有哪些选择器


基本选择器


  1. 通配选择器(*)
  2. ID选择器(#ID)
  3. 类选择器(.className)
  4. 元素选择器(tagName)
  5. 后代选择器(a b)
  6. 子元素选择器(a>b)
  7. 相邻后面兄弟元素选择器(a + b)
  8. 通用后面兄弟选择器(a 〜 b)
  9. 群组选择器(selector1,selector2,...)

这里面平时不太常用的选择器有相邻后面兄弟选择器和通用后面兄弟选择器首先,很多资料上把它们叫做相邻兄弟选择器和通用兄弟选择器,我觉得这样会有一定的误导意义, 例如:

<ul>
        <li class="l1">1</li>
        <li class="l2">2</li>
        <li class="l3">3</li>
        <li class="l4">4</li>
        <li class="l5">5</li>
        <li class="l6">6</li>
        <li class="l7">7</li>
        <li class="l8">8</li>
        <li class="l9">9</li>
    </ul>
    li {
        list-style: none;
        height: 20px;
        width: 20px;
        background: red;
        margin: 10px;
        border-radius: 10px;
        text-align: center;
        color: white;
        float: left;
        line-height: 20px;
    }


image.png

当使用相邻兄弟选择器时:

.l3 + li {
    background: green;
}
复制代码

效果为

image.png

可以看出相邻兄弟选择器只会选择它后面的一个兄弟元素。 当使用通用兄弟选择器:

.l3 ~ li {
        background: green;
    }
复制代码

效果为:

image.png

可以看出来通用兄弟选择器会选择它后面所有的兄弟元素

属性选择器

  • E[attr]:只使用属性名,但没有确定任何属性值
  • E[attr="value"]:指定属性名,并指定了该属性的属性值
  • E[attr~="value"]:指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“〜”不能不写
  • E[attr^="value"]:指定了属性名,并且有属性值,属性值是以value开头的;
  • E[attr$="value"]:指定了属性名,并且有属性值,而且属性值是以value结束的;
  • E[attr*="value"]:指定了属性名,并且有属性值,而且属值中包含了value;
  • E[attr|="value"]:指定了属性名,并且属性值是value或者以“value-”开头的值(比如说big-name);

属性选择器中有波浪(〜)时属性值有value时就相匹配,没有波浪(〜)时属性值要完全是value时才匹配

伪类选择器


动态伪类


在链接中常看到的锚点伪类:link、visited、hover、active


UI元素状态伪类


例如 :enabled,:disabled,:checked等,这些主要是对一些表单元素操作。 比较常见的如"type="text"有enable和disabled两种状态,前者为可写状态后者为不可写状态。


CSS3的:nth选择器


  • first-child: 选择某个元素的第一次的出现
  • last-child: 选择某个元素的最后一次的出现
  • nth-child(): 选择某个元素的一个或多个特定的条件的出现


权重如何计算


  1. 根据样式所在位置,对元素的影响也有关系:内联样式(标签内style形式) > style标签 > link标签
  2. 根据选择器的类型,id选择器 > 类、属性选择器和伪类选择器 > 元素和伪元素
  3. 一般来说我们的计算方式为,从0开始,一个行内样式+1000,一个id+100,一个属性选择器/class或者伪类+10,一个元素名,或者伪元素+1


相关文章
|
前端开发
【前端web入门第四天】01 复合选择器与伪类选择器
本文档详细介绍了CSS中的复合选择器与伪类选择器。复合选择器包括后代选择器、子代选择器、并集选择器和交集选择器,能够更精确地定位和样式化元素。后代选择器用于选中某元素的所有后代,子代选择器仅选中直接子元素。并集选择器可为多个标签设置相同样式,而交集选择器则选中同时满足多个条件的元素。此外,还介绍了伪类选择器,如鼠标悬停效果和超链接的不同状态。
203 32
【前端web入门第四天】01 复合选择器与伪类选择器
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
581 1
|
前端开发
【前端web入门第五天】01 结构伪类选择器与伪元素选择器
本文介绍了CSS中的结构伪类选择器和伪元素选择器。结构伪类选择器如`nth-child`可根据元素结构关系进行选择,例如将列表中首个`&lt;li&gt;`元素背景设为绿色。伪元素选择器用于创建装饰性内容。
221 8
|
前端开发 数据安全/隐私保护
探秘CSS类型选择器:解码前端设计的神秘密码!
探秘CSS类型选择器:解码前端设计的神秘密码!
探秘CSS类型选择器:解码前端设计的神秘密码!
|
前端开发
解锁CSS神秘面纱:深度剖析类选择器,掌握前端设计的绝密武器!
解锁CSS神秘面纱:深度剖析类选择器,掌握前端设计的绝密武器!
|
前端开发 JavaScript 搜索推荐
前端网页手册(2)--菜鸟教程网站分析
前端网页手册(2)--菜鸟教程网站分析
162 2
|
前端开发 JavaScript 关系型数据库
前端网页手册(1)--基础学习
前端网页手册(1)--基础学习
105 1
|
JavaScript 前端开发
【Web 前端】 jQuery 里的 ID 选择器和 class 选择器有何不同?
【5月更文挑战第1天】【Web 前端】 jQuery 里的 ID 选择器和 class 选择器有何不同?
|
开发框架 前端开发 JavaScript
若依怎样看开发文档,域名搜这个就行ruoyi.vip,建链接点击在线文档,有前端手册和后端手册,若依文档里有项目扩展,项目扩展有大量的开源的软件
若依怎样看开发文档,域名搜这个就行ruoyi.vip,建链接点击在线文档,有前端手册和后端手册,若依文档里有项目扩展,项目扩展有大量的开源的软件
|
前端开发
前端 CSS 经典:好用的 CSS 选择器
前端 CSS 经典:好用的 CSS 选择器
89 0

热门文章

最新文章

  • 1
    前端工程化演进之路:从手工作坊到AI驱动的智能化开发
  • 2
    Vue 3 + TypeScript 现代前端开发最佳实践(2025版指南)
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
  • 9
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
  • 10
    前端如何禁止用户打开 F12 开发者工具