伪类和伪元素学习记录

目录

一、伪类

1、:active

2、:checked

3、:disabled

4、:first-child

5、:focus

6、:focus-within

7、:hover

8、:placeholder-shown

9、:only-child

10、:nth-last-child

11、:nth-child()

12、:not()

13、:last-child

二、伪元素

1、::after

2、::before

3、::first-letter

4、::first-line (:first-line)

5、::selection


mdn文档

一、伪类

1、:active

:active 伪类匹配被用户激活的元素。它让页面能在浏览器监测到激活时给出反馈。当用鼠标交互时,它代表的是用户按下按键和松开按键之间的时间。

css 复制代码
/* Selects any <a> that is being activated */
a:active {
  color: red;
}

:active 伪类一般被用在 <a><button> 元素中。这个伪类的一些其他适用对象包括包含激活元素的元素,以及可以通过他们关联的<label>标签被激活的表格元素。其中和其他某些伪类存在优先级关系::link --- :visited --- :hover --- :active

2、:checked

:checked CSS 伪类选择器表示任何处于选中状态的radio (<input type="radio">), checkbox (<input type="checkbox">) 或 ("select") 元素中的option HTML 元素 ("option")。

css 复制代码
/* 匹配任意被勾选/选中的 radio(单选按钮),checkbox(复选框),或者 option(select 中的一项) */
:checked {
  margin-left: 25px;
  border: 1px solid blue;
}

3、:disabled

:disabled CSS 伪类表示任何被禁用的元素。如果一个元素不能被激活(如选择、点击或接受文本输入)或获取焦点,则该元素处于被禁用状态。元素还有一个启用状态,在启用状态下,元素可以被激活或获取焦点。

4、:first-child

:first-child CSS 伪类表示在一组兄弟元素中的第一个元素。

html 复制代码
<div>
  <p>此文本已选中!</p>
  <p>此文本未选中。</p>
</div>

<div>
  <h2>此文本未被选中:它不是一个 `p`。</h2>
  <p>此文本未被选中。</p>
</div>

p:first-child {
  color: lime;
  background-color: black;
  padding: 5px;
}

5、:focus

:focus CSS 伪类表示获得焦点的元素(如表单输入)。当用户点击或轻触一个元素或使用键盘的 Tab 键选择它时,它会被触发。

css 复制代码
input:focus {
  background-color: lightblue;
}

select:focus {
  background-color: ivory;
}

6、:focus-within

:focus-within CSS 伪类表示当元素或其任意后代元素被聚焦时,将匹配该元素。换言之,它表示 :focus 伪类匹配到该元素自身或它的后代时,该伪类生效。(这也包括 shadow 树中的后代元素。)

这个选择器非常有用,举个常见的例子,当用户聚焦于一个 <input> 字段时,可以用它来突出显示整个 <form> 容器。

html 复制代码
<p>试试在这个表单中输入点什么。</p>

<form>
  <label for="given_name">给定名称:</label>
  <input id="given_name" type="text" />
  <br />
  <label for="family_name">家庭名称:</label>
  <input id="family_name" type="text" />
</form>


form {
  border: 1px solid;
  color: gray;
  padding: 4px;
}

form:focus-within {
  background: #ff8;
  color: black;
}

input {
  margin: 4px;
}

7、:hover

:hover CSS 伪类在用户使用指针设备与元素进行交互时匹配,但不一定激活它。通常情况下,用户将光标(鼠标指针)悬停在元素上时触发。

8、:placeholder-shown

:placeholder-shown CSS 伪类表示当前显示占位符文本的任何 <input><textarea> 元素。

9、:only-child

:only-child CSS 伪类表示没有任何兄弟元素的元素。这与 :first-child:last-child:nth-child(1):nth-last-child(1) 相同,但前者具有更小的权重性。

10、:nth-last-child

:nth-last-child() 这个CSS 伪类 从兄弟节点中从后往前匹配处于某些位置的元素

11、:nth-child()

CSS :nth-child() 伪类根据元素在父元素的子元素列表中的索引来选择元素。换言之,:nth-child() 选择器根据父元素内的所有兄弟元素的位置来选择子元素。

12、:not()

:not() CSS 伪类用来匹配不符合一组选择器的元素。由于它的作用是防止特定的元素被选中,它也被称为反选伪类negation pseudo-class)。

13、:last-child

:last-child CSS 伪类代表一组兄弟元素中的最后元素。

二、伪元素

1、::after

在 CSS 中,::after 会创建一个伪元素,作为所选元素的最后一个子元素。它通常用于为具有 content 属性的元素添加修饰内容。默认情况下,它是行向布局的。

2、::before

CSS 中,::before 创建一个伪元素,其将成为匹配选中的元素的第一个子元素。常通过 content 属性来为一个元素添加修饰性的内容。此元素默认是行级的。

3、::first-letter

::first-letter CSS 伪元素将样式应用于区块容器第一行的第一个字母,但仅当其前面没有其他内容(例如图像或行内表格)时才有效。

4、::first-line (:first-line)

::first-line CSS pseudo-element (CSS 伪元素)在某 block-level element (块级元素)的第一行应用样式。第一行的长度取决于很多因素,包括元素宽度,文档宽度和文本的文字大小。

和其他所有的 伪元素一样,::first-line 不能匹配任何真实存在的 html 元素。

::first-line 伪元素只能在块容器中,所以,::first-line伪元素只能在一个 display 值为 block, inline-block, table-cell 或者 table-caption中有用.。在其他的类型中,::first-line 是不起作用的。

5、::selection

::selection CSS 伪元素应用于文档中被用户高亮的部分(比如使用鼠标或其他选择设备选中的部分)。

相关推荐
也无晴也无风雨1 小时前
深入剖析输入URL按下回车,浏览器做了什么
前端·后端·计算机网络
Martin -Tang2 小时前
Vue 3 中,ref 和 reactive的区别
前端·javascript·vue.js
FakeOccupational3 小时前
nodejs 020: React语法规则 props和state
前端·javascript·react.js
放逐者-保持本心,方可放逐3 小时前
react 组件应用
开发语言·前端·javascript·react.js·前端框架
曹天骄4 小时前
next中服务端组件共享接口数据
前端·javascript·react.js
阮少年、5 小时前
java后台生成模拟聊天截图并返回给前端
java·开发语言·前端
郝晨妤6 小时前
鸿蒙ArkTS和TS有什么区别?
前端·javascript·typescript·鸿蒙
AvatarGiser6 小时前
《ElementPlus 与 ElementUI 差异集合》Icon 图标 More 差异说明
前端·vue.js·elementui
喝旺仔la6 小时前
vue的样式知识点
前端·javascript·vue.js
别忘了微笑_cuicui6 小时前
elementUI中2个日期组件实现开始时间、结束时间(禁用日期面板、控制开始时间不能超过结束时间的时分秒)实现方案
前端·javascript·elementui