CSS篇-你不知道的CSS选择器

84 阅读3分钟

前言

CSS选择器前端开发必备的工具,通过学习一些选择器的技巧能够让我们编写代码更简洁,更具有可维护性,减少对JS的依赖,灵活解决特定渲染需求;

正文

目前CSS提供了id,class,标签,后代,子代,兄弟,属性,伪类,伪结构,伪元素等选择器,下面让我介绍一些鲜为人知,但是具有一定使用场景的选择器;

伪类选择器

active:用户鼠标点击且未弹起时元素的样式;

empty:没有子元素的元素的样式;

has():含有特定子元素的元素的样式;

:root:根元素,即html元素;

div:active{
}

div:hover{
}

div:empty{
}

div:has(span){
}

:root{
}

表单元素特有的

diabled:元素被禁用时的样式;

enabled:元素启用时的样式;

focus:元素获得光标时的样式;

checked:元素被选中时的样式;

valid:表单元素输入有效值时的样式;

invalid:表单上元素输入无效值时的样式;

button:disable{
}

button:enabled{
}

input:focus{
}

input:checked{
}

input:valid{
}

input:invalid{
}

结构伪类选择器

first-child:元素的第一个子元素;

last-child:元素的最后一个子元素;

nth-child(n):所有类型子元素进行排序,选中第n个元素(n从0递增到无穷大);

nth-of-type(n):同类型子元素进行排序,选中第n个元素;

ul li:first-child{}
ul li:last-child{}

ul li:nth-child(1){}//所有类型子元素进行排序,选择出第一个为li的元素,如果第4个不为li则该选择器不生效
ul :nth-child(1){}//所有类型子元素进行排序,选择第一个元素

ul li:nth-of-type(1){}//同类型子元素进行排序,选择出第一个li

属性选择器

根据元素具有的属性和属性值来选择元素;元素上常见的属性有class,id,type,placeholder等

[type]{}//选择含有type属性的元素

input[type='text']{}//在表单选择器下包含type属性为text的元素

[class^=a]{}//选择含有class属性,且class属性值以a开头的元素
[class$=b]{}//选择class属性值以b结尾的元素
[class*=c]{}//选择class属性值含有c的元素

[type][disable]{}//选择含有type和disable属性的元素

伪元素选择器

before和after:在元素内容的前面或后面插入生成的内容;插入的内容不会出现在DOM树中,而是通过CSS渲染层插入虚拟内容,不能用JS交互;

其中img,input,select不支持伪元素选择器;

div::before{
   content:'';
}
div::after{
   content:url("");
}

placeholder:输入框占位符,可以更改输入框占位符的字体

input::placeholder {
    color: #970303;
}

first-letter:元素(包括嵌套的子元素)的第一个字符或字母,只能用于块级元素;

div::first-letter{
    font-size: 30px;
}

Snipaste_2025-08-07_18-45-13.png selection:自定义该元素(包括子元素)内文本被鼠标选中的效果;不能修改字体相关内容;

div::selection{
    background-color: black;
    color:aqua;
    text-shadow: 1px 1px 2px white;
}

Snipaste_2025-08-07_18-43-31.png

完结,有错误欢迎纠正!!!