内容简介:重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,本文讲一讲选择器的几个机制:选择器的组合、选择器的优先级和伪元素。选择器列表:用逗号分隔的复杂选择器序列;复杂选择器则是用
笔记说明
重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏, 每天10分钟,重构你的前端知识体系 ,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专栏学习【原文有winter的语音】,如有侵权请联系我,邮箱:kaimo313@foxmail.com。
一、引言
本文讲一讲选择器的几个机制:选择器的组合、选择器的优先级和伪元素。
二、选择器的组合
2.1、选择器列表
选择器列表:用逗号分隔的复杂选择器序列;复杂选择器则是用 空格、大于号、波浪线
等符号连接的复合选择器;复合选择器则是连写的简单选择器组合。
2.2、优先级
-
第一优先级
- 无连接符号
-
第二优先级
空格 ~ + > ||
-
第三优先级
-
,
-
2.3、复杂选择器的连接符号
-
空格
:表示选中所有符合条件的后代节点。(后代)
-
>
:表示选中符合条件的子节点。(子代)
-
~
:表示选中所有符合条件的后继节点,后继节点即跟当前节点具有同一个父元素,并出现在它之后的节点。(后继)
-
+
:表示选中符合条件的直接后继节点,直接后继节点即nextSlibling
。(直接后继)
-
||
:表示选中对应列中符合条件的单元格。(列选择器)
三、选择器的优先级
CSS 标准用一个 三元组 (a, b, c)
来构成一个复杂选择器的优先级。CSS 建议用一个足够大的进制,获取“ a-b-c
”来表示选择器优先级。
// base 是一个"足够大"的正整数 specificity = base * base * a + base * b + c
-
id
选择器的数目记为a
- 伪类选择器和
class
选择器的数目记为b
- 伪元素选择器和标签选择器数目记为
c
- “*” 不影响优先级。
注意:行内属性的优先级永远高于 CSS 规则,浏览器提供了一个 口子
就是添加 !important
。该优先级会高于行内属性。 同一优先级
的选择器遵循 后面的覆盖前面的
原则。
四、伪元素
伪元素本身不单单是一种选择规则,它还是一种机制。
::first-line ::first-letter ::before ::after
4.1、::first-line 和 ::first-letter
代码测试连接: https://codepen.io/pen/
1、 ::first-line
<p> kaimo is good boy. but sometime not. </p>
p::first-line { text-transform: uppercase }
注意:排版后显示的第一行字母变为大写。跟 HTML 代码中的换行无关。
2、 ::first-letter
p::first-letter { text-transform: uppercase; font-size:2em; float:left; }
3、 ::first-line
必须出现在最内层的块级元素内。
<div> <p id="a">kaimo is good boy.</p> <p>but sometime not.</p> </div>
div>p#a { color: green; } div::first-line { color: hotpink; }
如果将 p
标签替换成 span
标签
<div> <span id="a">kaimo is good boy.</span> <span>but sometime not.</span> </div>
div>span#a { color: green; } div::first-line { color: hotpink; }
如果你理解了出现三种颜色的原因,那就证明你清楚明白了。
4、 ::first-letter
出现在所有标签之内
<div> <span id="a">kaimo is good boy.</span> <span>but sometime not.</span> </div>
div>span#a { color: green; } div::first-letter { color: hotpink; }
5、相关属性
4.2、::before 和 ::after
::before
表示在元素内容之前插入一个虚拟的元素, ::after
则表示在元素内容之后插入。
两个伪元素必须指定 content
属性才会生效。
个人总结
另外补充一下:可以查看MDN 伪类(pseudo-class)
https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Pseudo-classes_and_pseudo-elements _(:3」∠)_。。。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 前端中的事件循环eventloop机制
- 浏览器缓存机制全攻略 - 前端
- 如何用前端防御XSS及建立XSS报警机制(三)
- 「前端面试题系列7」Javascript 中的事件机制(从原生到框架)
- 快速失败机制 & 失败安全机制
- JavaScript线程机制与事件机制
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法艺术与信息学竞赛
刘汝佳 / 清华大学出版社 / 2004-1 / 45.00元
《算法艺术与信息学竞赛》较为系统和全面地介绍了算法学最基本的知识。这些知识和技巧既是高等院校“算法与数据结构”课程的主要内容,也是国际青少年信息学奥林匹克(IOI)竞赛和ACM/ICPC国际大学生程序设计竞赛中所需要的。书中分析了相当数量的问题。 本书共3章。第1章介绍算法与数据结构;第2章介绍数学知识和方法;第3章介绍计算机几何。全书内容丰富,分析透彻,启发性强,既适合读者自学,也适合于课......一起来看看 《算法艺术与信息学竞赛》 这本书的介绍吧!