CSS学习笔记二——选择器

一、选择器

选择器,也可叫选择符,主要在 CSS 想对 HTML 页面中的元素实现一对一,一对多或多对一的控0制时所使用。

1. 元素选择器

元素选择器,又叫类型选择器、标签选择器。主要是将一个大类的标签名称当做选择器使用,所有的页面元素都可以作为选择器使用,缺点在于范围太广。

CSS代码如下:

div{
	background-color: yellow;
}

2. 类选择器

类选择器,也是 class 选择器,给标签设置类名,常用于给某几个标签设置统一样式。同一标签中可以设置多个类名,以空格间隔。
同一标签中,不同类选择器的属性有重复时,根据 CSS 代码中类选择器的先后顺序决定,顺序在后的会覆盖顺序在前的同一属性。

用法:给要统一样式的某几个标签添加 class 属性,属性值为任意名称,在 CSS 代码中通过 .class名称{ } 的形式使用。

HTML代码如下:

<div>111</div>
<div class="ch1 ch2">222</div>
<div>333</div>
<p class="ch1">444</p>
<p class="ch1">555</p>
<p>666</p>

CSS代码如下:

.ch1{
	background-color: yellow;
}
.ch2{
	color: red;
}

3. id选择器

可为单个标签设置样式,通过为标签添加 id 属性,自行设置 id 名称,名称必须是英文名且不能为关键字。在 CSS 代码中通过 #id名{ } 的形式更改具体标签的样式。
id 具有唯一性,id 名称不可重复,且不可像 class 那样以空格间隔,只可以有一个值。

HTML代码如下:

<div>111</div>
<div id="box1">222</div>

CSS代码如下:

#box1{
	background-color: yellow;
}

4. 通配符选择器

通配选择符 * 可以为所有元素设置样式。
语法:*{属性:属性值}

CSS代码如下:

*{
	/* 清空所有元素的外边距 */
	margin: 0;
	/* 清空所有元素的内边距 */
	padding: 0;
}

5. 群组和后代选择器

群组选择器为合并写法,适用于多个标签进行同一样式的设置时,使用时以逗号间隔,其优点在于节约代码量。
语法:选择器1,选择器2,选择器n {属性:属性值}

后代选择器,又叫包含选择器,具体标签中包含该后代的才会改变样式,使用时以空格间隔。
匹配原则从右到左,如 div p 中会先找所有的 p 标签,然后再找包在外的 div 标签。

HTML代码如下:

<div>
	<!-- p标签被包含在div标签中 -->
    <p>11111</p>
</div>
<p id="ch1">444</p>
<p>666</p>

CSS代码如下:

/* 群组选择器 */
div,#ch1{
   background-color: yellow;
}
/* 后代选择器 */
div p{
    color: red;
}

6. 伪类选择器

伪类选择器可用在盒子上,一般常用于 a 链接,在 a 链接满足一定状态时样式才生效,例如:鼠标悬停、鼠标按下等。

以超链接为例,其状态包括:
1、超链接的初始状态。
语法:a:link{属性:属性值}
2、超链接被访问后的状态。
语法:a:visited{属性:属性值}
3、鼠标悬停,即鼠标划过超链接的状态。
语法:a:hover{属性:属性值}
3、超链接被激活,即鼠标按下时超链接的状态。
语法:a:active{属性:属性值}

注意:
1、当4个超链接伪类选择符联合使用时,要注意顺序,正常顺序为a:link,a:visited,a:hover,a:active,错误的顺序可能导致样式失败。
2、为简化代码,伪类选择符中相同的声明可以提出来放在 a 选择符中。
如:a{color: red;} 表示超链接的初始和访问过后的状态一样
a:hover{color: green;} 表示鼠标划过和点击时超链接的状态一样

针对盒子模型时,伪类选择器可以搭配后代选择器,在盒子满足某一状态时,只对盒子中的某一元素进行样式更改。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 基本样式 */
        .box {
            width: 200px;
            height: 100px;
            background-color: pink;
        }
        .box div {
            height: 50px;
            background-color: yellow;
        }
        /* 伪类选择器 */
        .box:hover div {
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>
            <p>文本内容</p>
        </div>
        <p>文本内容</p>
    </div>
</body>
</html>

7. 伪元素选择器

伪元素并非真正的元素,只能寄托父元素身上。
1、::first-letter:对元素内容的第一个字母进行选择;
2、::first-line:对元素内容的第一行进行选择;
3、::before:用于创建一个伪元素,作为选中元素的第一个子元素;
3、::after:用于创建一个伪元素,作为选中元素的最后一个子元素;
::before 和 ::after 可通过 content 属性添加内容,但该内容在网页中不可被选中,并非真正的元素,且该虚拟元素为行内元素;

二、选择器的权重

当多个选择器,选中的是同一个元素,且都定义了样式,此时,若属性发生冲突,即同一属性设置了不同值,则按照两个原则:
一是根据权重高的来执行,高权重会覆盖低权重的样式。
二是当权重相同时,遵循就近原则,哪个选择符最后定义,就采用哪个。

权重:id 选择器 > 类选择器 > 元素选择器
包含选择符为其包含的所有选择符的权重之和。
!important > 内联样式 > 任一选择器

三、结语

本学习笔记主要用于记录博主个人的前端学习过程,目前学习资源来自b站千锋的前端1000集教学,如笔记内容有写错的地方,希望大家能够指出。同时,欢迎看到博文的小伙伴们与我一同学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值