Skip to content
泠泠彻夜的笔记
Main Navigation首页笔记
HTML
CSS
JavaScript
TypeScript
Node.js
Vue3
uniapp
插件
算法题

外观

Sidebar Navigation

CSS基础

CSS选择器

CSS3新增内容

Grid网格布局

此页内容
Table of Contents for current page
  • 简单选择器
  • 属性选择器
  • 伪类
  • 伪元素
  • 组合器
  • 层叠、优先级与继承

CSS选择器

怡然

1790字约6分钟

2024-05-29

简单选择器

  • 元素选择器 div{}
  • 类选择器 .demo{}
  • ID选择器 #demo{}
  • 通配符选择器 *{}

属性选择器

  • [attr]:选择包含attr属性的所有元素
  • [attr=val]:选择attr属性值为val的所有元素
  • [attr~=val]:选择attr属性值包含val的所有元素
  • [attr|=val] : 选择attr属性的值以val(包括val)或val-开头的元素 。
  • [attr^=val] : 选择attr属性的值以val开头(包括val)的元素。
  • [attr$=val] : 选择attr属性的值以val结尾(包括val)的元素。
  • [attr*=val] : 选择attr属性的值中包含字符串val的元素。

伪类

以一个冒号作为前缀,样式在特定状态下才被呈现到指定的元素

伪类 点击查看伪类
选择器描述
:active在用户激活(例如点击)元素的时候匹配。
:any-link匹配一个链接的:link和:visited状态。
:blank匹配空输入值的<input>元素。
:checked匹配处于选中状态的单选或者复选框。
:current匹配正在展示的元素,或者其上级元素。
:default匹配一组相似的元素中默认的一个或者更多的 UI 元素。
:dir基于其方向性(HTMLdir属性或者 CSSdirection属性的值)匹配一个元素。
:disabled匹配处于关闭状态的用户界面元素
:empty匹配除了可能存在的空格外,没有子元素的元素。
:enabled匹配处于开启状态的用户界面元素。
:first匹配分页媒体的第一页。
:first-child匹配兄弟元素中的第一个元素。
:first-of-type匹配兄弟元素中第一个某种类型的元素。
:focus当一个元素有焦点的时候匹配。
:focus-visible当元素有焦点,且焦点对用户可见的时候匹配。
:focus-within匹配有焦点的元素,以及子代元素有焦点的元素。
:future匹配当前元素之后的元素。
:hover当用户悬浮到一个元素之上的时候匹配。
:indeterminate匹配未定态值的 UI 元素,通常为复选框。
:in-range用一个区间匹配元素,当值处于区间之内时匹配。
:invalid匹配诸如<input>的位于不可用状态的元素
:lang基于语言(HTMLlang属性的值)匹配元素。
:last-child匹配兄弟元素中最末的那个元素。
:last-of-type匹配兄弟元素中最后一个某种类型的元素。
:left在分页媒体中,匹配左手边的页。
:link匹配未曾访问的链接。
:local-link匹配指向和当前文档同一网站页面的链接。
:is()匹配传入的选择器列表中的任何选择器。
:not匹配一列兄弟元素中的元素——兄弟元素按照an+b形式的式子进行匹配(比如 2n+1 匹配元素 1、3、5、7 等。即所有的奇数个)。
:nth-of-type匹配某种类型的一列兄弟元素(比如,<p>元素)——兄弟元素按照an+b形式的式子进行匹配(比如 2n+1 匹配元素 1、3、5、7 等。即所有的奇数个)。
:nth-last-child匹配一列兄弟元素,从后往前倒数。兄弟元素按照an+b形式的式子进行匹配(比如 2n+1 匹配按照顺序来的最后一个元素,然后往前两个,再往前两个,诸如此类。从后往前数的所有奇数个)。
:nth-last-of-type匹配某种类型的一列兄弟元素(比如,<p>元素),从后往前倒数。兄弟元素按照an+b形式的式子进行匹配(比如 2n+1 匹配按照顺序来的最后一个元素,然后往前两个,再往前两个,诸如此类。从后往前数的所有奇数个)。
:only-child匹配没有兄弟元素的元素。
:only-of-type匹配兄弟元素中某类型仅有的元素。
:optional匹配不是必填的 form 元素。
:out-of-range按区间匹配元素,当值不在区间内的时候匹配。
:past匹配当前元素之前的元素。
:placeholder-shown匹配显示占位文字的 input 元素。
:playing匹配代表音频、视频或者相似的能“播放”或者“暂停”的资源的,且正在“播放”的元素。
:paused匹配代表音频、视频或者相似的能“播放”或者“暂停”的资源的,且正在“暂停”的元素。
:read-only匹配用户不可更改的元素。
:read-write匹配用户可更改的元素。
:required匹配必填的 form 元素。
:right在分页媒体中,匹配右手边的页
:root匹配文档的根元素。
:scope匹配任何为参考点元素的元素。
:valid匹配诸如<input>元素的处于可用状态的元素。
:target匹配当前 URL 目标的元素(例如如果它有一个匹配当前URL 分段的元素)。
:visited匹配已访问链接。

伪元素

以一个冒号作为前缀,样式在特定状态下才被呈现到指定的元素

伪元素 点击查看
选择器描述
::after匹配出现在原有元素的实际内容之后的一个可样式化元素。
::before匹配出现在原有元素的实际内容之前的一个可样式化元素。
::first-letter匹配元素的第一个字母。
::first-line匹配包含此伪元素的元素的第一行。
::grammar-error匹配文档中包含了浏览器标记的语法错误的那部分。
::selection匹配文档中被选择的那部分。
::spelling-error匹配文档中包含了浏览器标记的拼写错误的那部分。

组合器

  • 后代选择器 div span{}:祖先与后代
  • 子代选择器 div>span{}:父与子
  • 相邻兄弟选择器div+span{}:最近的弟弟
  • 通用兄弟选择器 div~span{}:所有弟弟

提示

兄弟选择器只会向后选择

层叠、优先级与继承

  • CSS 规则的顺序很重要;当应用两条同级别的规则到一个元素的时候,写在后面的就是实际使用的规则。
  • !important>内联样式>id选择器>类选择器>元素选择器。
  • 一些设置在父元素上的 CSS 属性是可以被子元素继承的,如 color 和 font-family;另一些则不可以,如width、margin、padding等。
CSS继承通用属性值 点击查看
属性值含义
inherit设置该属性会使子元素属性和父元素相同。实际上,就是“开启继承”。
initial将应用于选定元素的属性值设置为该属性的初始值。
revert将应用于选定元素的属性值重置为浏览器的默认样式,而不是应用于该属性的默认值。在许多情况下,此值的作用类似于 unset。
revert-layer将应用于选定元素的属性值重置为在上一个层叠层中建立的值。
unset将属性重置为自然值,也就是如果属性是自然继承那么就是 inherit,否则和 initial 一样
贡献者: tsxwslk
下一页CSS3新增内容

Power by VuePress & vuepress-theme-plume