云切图

CSS

CSS属性复习,帮你快速掌握CSS,助推学生快速完成网页作业

首页 > 前端笔记 > CSS

常用CSS3选择器汇总(上)

作者:admin 发布时间:2022-09-08 点击数:
<p>本章主要探讨 HTML5 中 CSS 选择器,通过选择器定位到想要设置样式的元素。目前CSS 选择器的版本已经升级至第三代,即 CSS3 选择器。CSS3 选择器提供了更多、更丰富的选择器方式,主要分为三大类。</p><h2>一.选择器总汇</h2><p>本节课主要涉及到三种选择器:基本选择器、复合选择器和伪元素选择器,具体如下:::first-letter</p><table><tbody><tr class="firstRow"><td width="276" valign="top" style="word-break: break-all;">选择器</td><td width="276" valign="top" style="word-break: break-all;">名称</td><td width="276" valign="top" style="word-break: break-all;">说明</td><td width="276" valign="top" style="word-break: break-all;">CSS版本</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">*</td><td width="276" valign="top" style="word-break: break-all;">通用选择</td><td width="276" valign="top" style="word-break: break-all;">选择所有元素</td><td width="276" valign="top" style="word-break: break-all;">2</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">type</td><td width="276" valign="top" style="word-break: break-all;">元素选择器</td><td width="276" valign="top" style="word-break: break-all;">选择指定类型的元素</td><td width="276" valign="top" style="word-break: break-all;">1</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">#id</td><td width="276" valign="top" style="word-break: break-all;">id 选择器</td><td width="276" valign="top" style="word-break: break-all;">选择指定 id 属性的元素</td><td width="276" valign="top" style="word-break: break-all;">1</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">attr</td><td width="276" valign="top" style="word-break: break-all;">属性选择器</td><td width="276" valign="top" style="word-break: break-all;">选择指定 attr 属性的元素</td><td width="276" valign="top" style="word-break: break-all;">2~3</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">.class</td><td width="276" valign="top" style="word-break: break-all;">class 选择器</td><td width="276" valign="top" style="word-break: break-all;">选择指定 class 属性的元素</td><td width="276" valign="top" style="word-break: break-all;">1</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">s1,s2,s3...</td><td width="276" valign="top" style="word-break: break-all;">分组选择器</td><td width="276" valign="top" style="word-break: break-all;">选择多个选择器的元素</td><td width="276" valign="top" style="word-break: break-all;">1</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">s1 s2</td><td width="276" valign="top" style="word-break: break-all;">后代选择器</td><td width="276" valign="top" style="word-break: break-all;">选择指定选择器的后代元素</td><td width="276" valign="top" style="word-break: break-all;">1</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">s1 > s2</td><td width="276" valign="top" style="word-break: break-all;">子选择器</td><td width="276" valign="top" style="word-break: break-all;">选择指定选择器的子元素</td><td width="276" valign="top" style="word-break: break-all;">2</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">s1 + s2</td><td width="276" valign="top" style="word-break: break-all;">相邻兄弟选择器</td><td width="276" valign="top" style="word-break: break-all;">选择指定选择器相邻的元素</td><td width="276" valign="top" style="word-break: break-all;">2</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">s1 ~ s2</td><td width="276" valign="top" style="word-break: break-all;">普通兄弟选择器</td><td width="276" valign="top" style="word-break: break-all;">选择指定选择器后面的元素</td><td width="276" valign="top" style="word-break: break-all;">3</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">::first-line</td><td width="276" valign="top" style="word-break: break-all;">伪元素选择器</td><td width="276" valign="top" style="word-break: break-all;">选择块级元素文本的首行</td><td width="276" valign="top" style="word-break: break-all;">1</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">::first-letter</td><td width="276" valign="top" style="word-break: break-all;">伪元素选择器</td><td width="276" valign="top" style="word-break: break-all;">选择块级元素文本的首字母</td><td width="276" valign="top" style="word-break: break-all;">1</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">::before</td><td width="276" valign="top" style="word-break: break-all;">伪元素选择器</td><td width="276" valign="top" style="word-break: break-all;">选择元素之前插入内容</td><td width="276" valign="top" style="word-break: break-all;">2</td></tr><tr><td width="276" valign="top" style="word-break: break-all;">::after</td><td width="276" valign="top" style="word-break: break-all;">伪元素选择器<span style="white-space: pre;"></span></td><td width="276" valign="top" style="word-break: break-all;">选择指定选择器相邻的元素</td><td width="276" valign="top" style="word-break: break-all;">2</td></tr></tbody></table><h2>二.基本选择器</h2><p>使用简单且频率高的一些选择器归类为基本选择器。</p><p><strong>1.通用选择器</strong></p><pre class="brush:css;toolbar:false">*&nbsp;{border:&nbsp;1px&nbsp;solid&nbsp;red;}</pre><p>解释:“*”号选择器是通用选择器,功能是匹配所有 html 元素的选择器包括"html"和"body"标签。可以使用如下元素标记测试效果:p,span,b通用选择器会将所有元素匹配并配置样式,这是把双刃剑,好处就是非常方便,坏处就是将不必要的元素也配置了。目前为止,还不存在所有元素都必须配置的样式,所以,一般来说,不常用。</p><p><strong>2.元素选择器</strong></p><pre class="brush:css;toolbar:false">p&nbsp;{color:&nbsp;red;}</pre><p>解释:直接使用元素名称作为选择器名即可。</p><p><strong>3.ID 选择器</strong></p><p><p id="abc">段落</p></p><pre class="brush:css;toolbar:false">#abc&nbsp;{font-size:&nbsp;20px;}</pre><p>解释:通过对元素设置全局属性 id,然后使用#id 值来选择页面唯一元素。</p><p><strong>4.类 选择器</strong></p><p><span style="color: rgb(192, 0, 0);"><b class="abc">加粗</b></span></p><p><span style="color: rgb(192, 0, 0);"><span class="abc">无</span></span></p><pre class="brush:css;toolbar:false">.abc&nbsp;{border:&nbsp;1px&nbsp;solid&nbsp;red;}</pre><p>解释:通过对元素设置全局属性 class,然后使用.class 值选择页面一个或多个元素。</p><p><span style="color: rgb(192, 0, 0);">b.abc {border: 1px solid red;}</span></p><p>解释:也可以使用“元素.class 值”的形式,限定某种类型的元素。</p><p><span style="color: rgb(192, 0, 0);"><span class="abc edf">无</span></span></p><p>解释:类选择器还可以调用多个样式,中间用空格隔开进行层叠。</p><p><strong>5.属性选择器</strong></p><p>所需 CSS2 版本</p><p><span style="color: rgb(192, 0, 0);">[href] {color: orange;}</span></p><p>解释:属性选择器,直接通过两个中括号里面包含属性名即可。当然,还有更多扩展的属性选择器。</p><hr/><p>所需 CSS2 版本</p><p><span style="color: rgb(192, 0, 0);">[type="password"] {border: 1px solid red;}</span></p><p>解释:匹配属性值的属性选择器。</p><hr/><p>所需版本 CSS3</p><p><span style="color: rgb(192, 0, 0);">[href^="http"] {color: orange;}</span></p><p>解释:属性值开头匹配的属性选择器。</p><hr/><p>所需版本 CSS3</p><p><span style="color: rgb(192, 0, 0);">[href$=".com"] {color: orange;}</span></p><p>解释:属性值结尾匹配的属性选择器。</p><hr/><p>所需版本 CSS3</p><p><span style="color: rgb(192, 0, 0);">[href*="baidu"] {color: orange;}</span></p><p>解释:属性值包含指定字符的属性选择器。</p><hr/><p>所需版本 CSS2</p><p><span style="color: rgb(192, 0, 0);">[class~="edf"] {font-size: 50px;}</span></p><p>解释:属性值具有多个值时,匹配其中一个值的属性选择器。</p><hr/><p>所需版本 CSS2</p><p><span style="color: rgb(192, 0, 0);">[lang|="en"] {color: red;}</span></p><p>解释:属性值具有多个值且使用“-”号连接符分割的其中一个值的属性选择器。比如<i>HTML5</i>。</p><h2>三.复合选择器</h2><p>将不同的选择器进行组合形成新的特定匹配,我们称为复合选择器。</p><p><strong>1.分组选择器</strong></p><p>p,b,i,span {color: red;}</p><p>解释:将多个选择器通过逗号分割,同时设置一组样式。当然,不但可以分组元素选择器,还可以使用 ID 选择器、类选择器、属性选择器混合使用。</p><p><strong>2.后代选择器</strong></p><p>p b {color: red;}</p><p>解释:选择<p>元素内部所有<b>元素。不在乎<b>的层次深度。当然,后代选择器也可以混合使用 ID 选择器、类选择器、属性选择器。</p><p><strong>3.子选择器</strong></p><pre class="brush:html;toolbar:false"><ul> &nbsp;&nbsp;&nbsp;&nbsp;<li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我是儿子 <ol> &nbsp;&nbsp;&nbsp;&nbsp;<li>我是孙子</li> &nbsp;&nbsp;&nbsp;&nbsp;<li>我是孙子</li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</ol> &nbsp;&nbsp;&nbsp;&nbsp;</li> &nbsp;&nbsp;&nbsp;&nbsp;<li>我是儿子</li> &nbsp;&nbsp;&nbsp;&nbsp;<li>我是儿子</li> </ul></pre><pre class="brush:css;toolbar:false">ul&nbsp;>&nbsp;li&nbsp;{border:&nbsp;1px&nbsp;solid&nbsp;red;}</pre><p>解释:子选择器类似与后代选择器,而最大的区别就是子选择器只能选择父元素向下一级的元素,不可以再往下选择。</p><p><strong>4.相邻兄弟选择器</strong></p><p>p + b {color: red;}</p><p>解释:相邻兄弟选择器匹配和第一个元素相邻的第二个元素。</p><p><strong>5.普通兄弟选择器</strong></p><p>p ~ b {color: red;}</p><p>解释:普通兄弟选择器匹配和第一个元素后面的所有元素。</p><h2>四.伪元素选择器</h2><p>伪选择器分为两种第一种是下节伪类选择器,还有一种就是伪元素选择器。这两种选择器特性上比较容易混淆,在 CSS3 中为了区分,伪元素前置两个冒号(::),伪类前置一个冒号(:)。</p><p>1.::first-line 块级首行</p><pre class="brush:css;toolbar:false">::first-line&nbsp;{color:&nbsp;red;}</pre><p>解释:块级元素比如<p>、<div>等的首行文本被选定。如果想限定某种元素,可以加上前置 p::first-line。</p><p>2.::first-letter 块级首字母</p><pre class="brush:css;toolbar:false">::first-letter&nbsp;{color:&nbsp;red;}</pre><p>解释:块级元素的首行字母。</p><p>3.::before 文本前插入</p><pre class="brush:css;toolbar:false">a::before&nbsp;{content:&nbsp;&#39;点击-&#39;;}</pre><p>解释:在文本前插入内容。</p><p>4.::after 文本后插入</p><pre class="brush:css;toolbar:false">a::before&nbsp;{content:&nbsp;&#39;-请进&#39;;}</pre><p>解释:在文本后插入内容。</p>

关注我们共同进步

  • 扣扣交流群

  • 微信公众号

  • 私技术顾问

嘿,我来帮您!