我对CSS选择器的认识

一、简述  

  CSS选择器是对HTML元素进行选择的筛选条件,大概可以分为两类:

  1. 特征选择器——根据元素自身所具有的某种特征进行筛选,比如名称、ID、属性等;
  2. 关系选择器——根据元素与其他元素的关系进行筛选,比如子元素、兄弟元素等;

  在真正使用的时候,几个简单的选择器可以组合成更复杂的选择器,所以谁也说不上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) { }   

  个人浅薄之见,肯定有不到之处,希望得到有心之人指正,谢谢!

我对CSS选择器的认识的更多相关文章

  1. 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

    记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...

  2. css选择器

    常用css选择器,希望对大家有所帮助,不喜勿喷. 1.*:通用选择器 * { margin: 0; padding: 0; } 选择页面上的全部元素,通常用于清除浏览器默认样式,不推荐使用. 2.#i ...

  3. dynamic-css 动态 CSS 库,使得你可以借助 MVVM 模式动态生成和更新 css,从 js 事件和 css 选择器的苦海中脱离出来

    dynamic-css 使得你可以借助 MVVM 模式动态生成和更新 css,从而将本插件到来之前,打散.嵌套在 js 中的修改样式的代码剥离出来.比如你要做元素跟随鼠标移动,或者根据滚动条位置的变化 ...

  4. CSS选择器的权重与优先规则?

    我们做项目的时候,经常遇到样式层叠问题,被其他的样式覆盖,或者写的权重不高没效果,对权重没有具体的分析,做了一个总结. css继承是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用 ...

  5. css选择器的使用详解

    -.css选择器的分类: 二.常用选择器详解: 1.标签选择器: 语法: 标签名 { 属性:属性值; } 代码示例: h1 { color: #ccc; font-size: 28px; } 2.类选 ...

  6. js,jq,css选择器

    js获取节点: var chils= s.childNodes; //得到s的全部子节点 var par=s.parentNode; //得到s的父节点 var ns=s.nextSbiling; / ...

  7. CSS系列:CSS选择器

    选择器(selector)是CSS中很重要的概念,所有HTML语言中的标记样式都是通过不同的CSS选择器来控制的.用户只需要通过选择对不同的HTML标签进行选择,并赋予各种样式声明,即可实现各种效果. ...

  8. 细说CSS选择器

    众所周知,CSS的一个核心特征就是能向文档中的一组元素类型应用某些规则.每个规则都有两个基本部分:选择器(selector)和声明块(declaration block).下图显示了规则的各个部分. ...

  9. CSS选择器 转

    来自于:http://www.cnblogs.com/webblog/archive/2009/08/07/1541005.html 最近在研究jQuery的选择器,大家知道jQuery的选择器和cs ...

  10. HTML5 -入门 (---css样式-------------(css基础与css选择器)---------------------—)

    ---恢复内容开始--- 一css基础入门与css选择器 CSS英文全拼:cascading style sheet 层叠样式表. 在html中使用:要在head中写style标签,所有样式放在sty ...

随机推荐

  1. 【微框架】之一:从零开始,轻松搞定SpringCloud微服务系列--开山篇(spring boot 小demo)

    Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...

  2. 【BZOJ2438】[中山市选]杀人游戏 Tarjan+概率

    [中山市选]杀人游戏 Tarjan+概率 题目描述 ​ 一位冷血的杀手潜入\(Na\)-\(wiat\),并假装成平民.警察希望能在\(N\)个人里面,查出谁是杀手.警察能够对每一个人进行查证,假如查 ...

  3. PXE刷机,存储节点失败

    最近刚刚帮客户对一台满配的X6-2刷机初始化,尝试了下PXE方式,但刷完机后,发现计算节点的imagehistory输出的状态都是成功的,而所有的存储节点状态都为failure,具体如下: [root ...

  4. 各平台安装和使用Docker的差异

    在Mac上运行Docker 使用Docker for Mac 系统要求 开启虚拟化的硬件支持,可以通过命令来检查:sysctl kern.hv_support OS X 10.10.3 或者更高版本 ...

  5. IE下 checkbox、radio等标签的label中的img点击无效(点击不能选中)问题解决

    类似以下代码,点击图片不能选中checkbox <input id="dw_1" name="shape[]" value="Round&quo ...

  6. NowCoder数列(矩阵快速幂变式)

    时间限制 3000 ms 内存限制 32768 KB 代码长度限制 100 KB 题目描述 NowCoder最近在研究一个数列: * F(0) = 7 * F(1) = 11 * F(n) = F(n ...

  7. spoj COT - Count on a tree(主席树 +lca,树上第K大)

    您将获得一个包含N个节点的树.树节点的编号从1到Ñ.每个节点都有一个整数权重. 我们会要求您执行以下操作: uvk:询问从节点u到节点v的路径上的第k个最小权重 输入 在第一行中有两个整数Ñ和中号.( ...

  8. 关于form组件的补充-------formChoice

    form组件的Choice字段 还是基于出版社和书的模型来详解 models.py(模型) from django.db import models # Create your models here ...

  9. 搭建element-ui Vue结构

    1.安装淘宝镜像 npm install cnpm -g --registry=https://registry.npm.taobao.org 2.安装webpack cnpm install web ...

  10. Ubuntu下安装Tomcate

    1.官网下载安装包 http://tomcat.apache.org/download-80.cgi#8.5.9 2.解压 tar -zxvf apache-tomcat-.tar.gz 3.移动到/ ...