我对CSS选择器的认识
程序员文章站
2022-07-05 15:19:14
我对CSS选择器的认识 一、简述 CSS选择器是对HTML元素进行选择的筛选条件,大概可以分为两类: 在真正使用的时候,几个简单的选择器可以组合成更复杂的选择器,所以谁也说不上CSS选择器有多少。还有两个选择器是功能性的,它们可以给元素已有内容之前或之后添加新内容。 我做了一个项目,里面包含一个测试 ......
我对css选择器的认识
一、简述
css选择器是对html元素进行选择的筛选条件,大概可以分为两类:
- 特征选择器——根据元素自身所具有的某种特征进行筛选,比如名称、id、属性等;
- 关系选择器——根据元素与其他元素的关系进行筛选,比如子元素、兄弟元素等;
在真正使用的时候,几个简单的选择器可以组合成更复杂的选择器,所以谁也说不上css选择器有多少。还有两个选择器是功能性的,它们可以给元素已有内容之前或之后添加新内容。
我做了一个项目,里面包含一个测试css选择器的小功能,请看这里。
二、归纳
下文中所有的 selector 都代表任何一个有效的选择器。
1. 特征选择器:
描述 | 选择器 | 备注 |
1. 无论有什么特征——即全部 | * { } | |
2. 元素名称是 "element" | element { } | |
3. 具有类名 "classname" | .classname { } | |
4. 具有id名 "someid" | #someid { } | |
5. 带有属性 attr | selector[attr] { } | |
6. 带有属性 attr,且属性值为 "value" | selector[attr="value"] { } | |
7. 带有属性 attr,且其若干个属性值中有一个是 "value" | selector[attr~="value"] { } | |
8. 带有属性 attr,且其属性值包含字符串 "str" | selector[attr*="str"] { } | |
9. 鼠标正位于其上方 | selector:hover { } | |
10. selector 是个独生子——它的父元素只有它这一个子元素 | selector:only-child { } | |
11. selector 是其父亲的第一个子元素 | selector:first-child { } | |
12. selector 是其父亲的第 n 个子元素 | selector:nth-child(n) { } | |
13. selector 是其父亲的最后一个子元素 | selector:last-child { } | |
14. selector 内部是真空——连空格都没有 | selector:empty { } | |
15. selector 被某个链接锚定了,而且该链接被点击了 | selector:target { } | <a href="#topic">跳转到 selector 处</a> |
16. selector 中被用户通过鼠标拖动选中的内容 | selector::selection { } | |
链接专有的特征 | ||
17. 未被访问的链接 | a:link { } | |
18. 已被访问的链接 | a:visited { } | |
19. 正在被点击的链接 | a:active { } | |
表格元素专有的特征 | ||
20. 目标是启用的 | selector:enabled { } | |
21. 目标是禁用的 | selector:disabled { } | |
22. 目标是被选中的(单选框、复选框) | selector:checked { } | |
23. 目标获得了焦点 | selector:focus { } | 能接收用户输入的元素,当它正在接收时,就获得了焦点。 |
两个功能性选择器 | ||
24. 给 selector 的内容之前加上些东西 | selector:before { } | |
25. 给 selector 内容之后加上些东西 | selector:after { } |
2. 关系选择器
描述 | 选择器 | 备注 |
1. selector1 和 selector2 | selector1, selector2 { } | |
2. 位于 selector1 之后的所有兄弟元素 selector2 | selector1~selector2 { } | |
3. 与 selector1 紧邻着的 selector2 元素 | selector1+selector2 { } | |
4. selector 的首字母 | selector:first-letter { } | 类似的还有 selector:first-line { } |
5. selector1 的所有子元素 selector2 | selector1>selector2 { } | |
6. selector1 的所有后代元素 selector2 | selector1 selector2 { } | |
7. 所有不是 selector2 的 selector1 | selector1:not(selector2) { } |
个人浅薄之见,肯定有不到之处,希望得到有心之人指正,谢谢!
上一篇: 广西有几所公办二本大学?广西公办二本大学有哪些大学?(2022参考)
下一篇: HTML5+CSS3