伪类和伪元素选择器

伪类选择器

​ 伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

​ 伪类选择器书写最大的特点是用冒号(:)表示,比如:hover 、:first-child。

链接伪类选择器
a:link		/* 选择所有未被访问的链接 */
a:visited	/* 选择所有已被访问的链接 */
a:hover		/* 选择鼠标指针位于其上的链接 */
a:active	/* 选择活动链接(鼠标按下未弹起的链接)*/

链接伪类选择器注意事项

  1. 为了确保生效,请按照LVHA的循顺序声明::

    :link, :visited, :hover , :active

  2. 记忆法: love hate或者lv包包hao 。

  3. 因为a链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式。

链接伪类选择器实际工作开发中的写法∶

/* a是标签选择器所有的链接 */
a {
    display: inline-block;
    height: 41px;
	color: gray;
    text-decoration: none;
}
/* :hover是链接伪类选择器鼠标经过 */
a : hover {
	color: red;
    /* 鼠标经过的时候,由原来的灰色变成了红色 */
    background-color: pink;
}
:focus 伪类选择器

​ :focus 伪类选择器用于选取获得焦点的表单元素。

​ 焦点就是光标,一般情况 <input> 类表单元素才能获取,因此这个选择器也主要针对于表单元素来说。

input:focus {
	background-color: yellow;
}
结构伪类选择器 (CSS3)
选择符简介
E:first-child匹配父元素中的第一个子元素 E
E:last-child匹配父元素中最后一个子元素 E
E:nth-child(n)匹配父元素中的第n个子元素 E
E:first-of-type指定类型E的第一个
E:last-of-type指定类型E的最后一个
E:nth-of-type(n)指定类型E的第n个

E:nth-child (n)

nth-child (n) 选择某个父元素的一个或多个特定的子元素

  • n 可以是数字,关键字和公式

  • n 如果是数字,就是选择第n个子元素,里面数字从1开始

  • n 可以是关键字:even 偶数,odd 奇数

    ul li:nth-child(even) {
    	background-color: gray;
    }
    ul li:nth-child(odd) {
    	background-color: pink;
    }
    
  • n 可以是公式:常见的公式如下

    公式取值
    2n偶数
    2n+1奇数
    5n5 10 15…
    n+5从第5个开始 (包含第五个) 到最后
    -n+5前5个 (包含第5个)
    1. 这里面使用的字母必须是n。
    2. n 从 0 开始,每次加1,往后面计算。
    3. 忽略第0个元素或者超出的元素。
    /* li:nth-child(n) 相当于选择所有li */
    ol li:nth-child(n) {
        background-color: pink;
    }
    

nth-child 和 nth-of-type 的区别

  1. nth-child 对父元素里面所有孩子排序选择 (序号是固定的,从1开始) 。

    先找到第n个孩子,然后看看是否和 E 匹配

  2. nth-of-type 对父元素里面指定子元素进行排序选择。

    先去匹配E,然后再根据E找第n个孩子

结构伪类选择器小结:

  • 结构伪类选择器一般用于选择父级里面的第几个孩子
  • nth-child 对父元素里面所有孩子排序选择(序号是固定的)。先找到第 n 个孩子,然后看看是否和E匹配
  • nth-of-type 对父元素里面指定子元素进行排序选择。先去匹配E , 然后再根据E找第 n 个孩子
  • 关于nth-child (n) 我们要知道,公式里面的 n 是从 0 开始计算的,要记住常用的公式
  • 如果是无序列表,我们肯定用nth-child更多
  • 类选择器、属性选择器、伪类选择器 (不带前面的E) 的权重为0010。
表单伪类选择器

:enabled 匹配可编辑的表单

:disable 匹配被禁用的表单

:checked 匹配被选中的表单

:focus 匹配获焦的表单

<style type="text/css">
	input:enabled{
		background: pink;
	}
    input:disabled{
        background: deeppink;
	}
    input:checked{
        width: 200px;
		height: 200px;
    }
    input:focus{
		background: pink;
    }
</style>

伪元素选择器 (CSS3)

伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构

选择符简介
::before在元素内部的前面插入内容
::after在元素内部的后面插入内容

注意:

  • beforeafter 创建一个元素,但是属于行内元素
  • 新创建的这个元素在文档树中是找不到的,所以我们称为伪元素
  • 语法: element::before {}
  • before 和after必须有 content 属性,可以为空 (“”)
  • before在父元素内容的前面创建元素,after在父元素内容的后面插入元素
  • div:hover::before,没有空格
  • 伪元素选择器标签选择器一样,权重为0001
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

connorgogo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值