咨询服务热线:400-099-8848
CSS 挑选器 |
| 发布时间:2025-10-20 文章来源:本站 浏览次数:10 |
CSS 选择器是 CSS 中最基础且最重要的概念之一,它用于“选择”您想要设置样式的 HTML 元素。简略挑选器
复合挑选器
首要复合挑选器是以多个简略挑选器构成的,只需把简略挑选器挨着写就变成一个复合挑选器了。它的语义便是咱们选中的元素有必要一起 match 几个简略挑选器,形成了 “与” 的联系。 杂乱挑选器 复合挑选器中心用连接符就能够变成杂乱挑选器了,杂乱挑选器是针对一个元素的结构来进行挑选的。
CSS 伪类伪类其实是一类十分多的内容的简略挑选器。 链接/行为
一旦运用了:link 或许:visited 之后,咱们就再也无法对这个元素的文字色彩之外的特点进行更改。为什么要这样规划呢?因为一旦咱们运用了 layout 相关的特点,比如说咱们给:visited 的尺寸加大一点,它就会影响排班。这样咱们就能够经过 JavaScript 的 API 去获取这个链接是否被拜访过了。可是假如咱们能取得链接是否被拜访过了,那么咱们就能够知道用户拜访过那些网站了,这个对于阅读器的安全性来说是一个致命打击。所以这儿也提醒一下咱们,不要以为做一些表现性的东西与安全没有任何联系,其实安全性是一个综合的考量。CSS 它也能造成安全漏洞的。 树结构
:nth-child 是一个十分杂乱的伪类,里边支撑一种语法,比如说能够在括号里边写奇偶event 或许odd,也能够写4N+1、3N-1,这个就会分别匹配到整数的形态。因为这个是一个比较杂乱的挑选器,咱们就不要在里边写过于杂乱的表达式了,只用它来处理一下奇偶,逢3个多1个,逢4个多1个等等这种表达式。 其实empty 、nth-last-child、last-child、only-child 这两个挑选器,是破坏了咱们之前在 《完成中学习阅读器原理》中的提到的 CSS 核算的时机问题。咱们能够幻想一下,当咱们在开始标签核算的时分,必定不知道它有没有子标签。empty 影响不是特别大,可是last-child 的这个联系其实仍是影响蛮大的。所以阅读在完成这些的时分是做了特别处理的,要么便是阅读器完成的不是特别好,要么便是阅读器要消耗更大的性能来得以完成。所以主张咱们尽量避免大量运用这些。 逻辑型
这儿仍是想温馨主张一下咱们,不主张咱们把挑选器写的过于杂乱,咱们许多时分都能够多加一点 class 去解决的。假如咱们的挑选器写的过于杂乱,某种程度上意味着 HTML 结构写的不合理。咱们不可是为了给阅读器工程省费事,也不可是为了性能,而是为了咱们本身的代码结构考虑,所以咱们不应该呈现过于杂乱的挑选器。 CSS 伪元素总共分为 4 种
::before 和::after 是在元素的内容的前和后,刺进一个伪元素。一旦应用了 before 和 after 的特点,declaration(声明)里边就能够写一个叫做content 的特点(一般元素是没有办法写 content 的特点的)。content 的特点就像一个真正的 DOM 元素相同,能够去生成盒,能够参加后续的排版和烘托了。所以咱们能够给他声明border、background等这样的特点。 能够理解为:伪元素向界面上增加了一个不存在的元素。 ::first-line 和::first-letter 的机制就不相同了。这两个其实本来就存在 content 之中。他们顾名思义便是 选中“榜首行” 和选中 “榜首个字母”。它们 不是一个不存在的元素,是把一部分的文本括了起来让咱们能够对它进行一些处理。 before 和 after在咱们概念里,咱们能够以为带有 before 伪元素的挑选器,会给他实践选中的元素的内容前面增加了一个元素,咱们只需要经过他的 content 特点为它增加文本内容即可。(这儿咱们也能够给伪元素赋予content: '' 为空的)所以咱们能够任何的给 before 和 after 指定 display 特点,和不同元素相同比较自由的。 咱们在完成一些组建的时分,也会常常运用这种不污染 DOM 树,可是能实践发明视觉作用的方式来给页面增加一些修饰性的内容。 <div>
<::before/>
content content content content content content content content content content content content content content content content <::after/>
div>
first-letter 和 first-linefirst-letter 相当于咱们有一个元素把内容里边的榜首个字母给括了起来。这个first-letter 咱们是能够恣意声明各种不同的特点的,可是咱们是无法改动它的 content 的。咱们应该都看到过报纸上的榜首个字母会比较大,然后会游离出来的作用,这个在 CSS 里边咱们就能够用::first-letter的伪元素挑选器了。运用这个来完成比较用 JavaScript 来完成就会愈加安稳和代码愈加高雅一些。 <div>
<::first-letter>c::first-letter>ontent content content content
content content content content content content content content content content content content div>
first-line 是针对排版之后的line,其实跟咱们源码里边的first line 没有任何的联系的。假如说咱们的阅读器供给的烘托的宽度不同,first-line 在两个环境里边它终括住的元素数量就不相同多了。所以咱们用这个挑选器的时分需要去根据需求的状况运用,很有可能在咱们开发机器上和用户的机器上烘托出来的作用是不相同的! |