CSS选择器大汇总
CSS选择器是学习CSS以及Web编程的基础。
整理出常用的CSS选择器,供自己和大家一起学习。
基本选择器
* /*通用元素选择器,匹配页面任何元素(这也就决定了我们很少使用)*/
#id /*id选择器,匹配id是'id'的元素*/
.class /*类选择器,匹配所有类名中包含'class'的元素*/
E /*标签选择器*/
组合选择器
E,F /* 多元素选择器,用,(半角)分隔,同时匹配元素E和元素F*/
E F /*后代选择器,用空格分隔,匹配E元素所有的后代(不只是子元素、子元素向下递归)元素F*/
E>F /*子元素选择器,用>分隔,匹配E元素的所有直接子元素*/
E+F /*直接相邻选择器,匹配E元素之后的相邻的一个同级元素F(只匹配一个)*/
E~F /*普通相邻选择器(兄弟选择器),匹配E元素之后的同级元素F(无论直接相邻与否)*/
.class1.class2 /*匹配类名既包括'class1'又包括'class2'的元素*/
element#id /* 匹配id为'id'的element标签的元素*/
属性选择器
E[attr] /*匹配所有具有属性attr的元素,div[id]就能取到所有有id属*/性的div
E[attr = value] /*匹配属性attr值等于value的元素,div[id='test'],匹配id为test的div*/
E[attr ~= value] /*匹配所有属性attr具有多个空格分隔、其中一个值等于value的元素*/
E[attr ^= value] /*匹配属性attr的值以value开头的元素*/
E[attr $= value] /*匹配属性attr的值以value结尾的元素*/
E[attr *= value] /*匹配属性attr的值包含value的元素*/
伪类选择器
伪类中像 E:something 这种形式,可以这样理解,首先选择器是E元素,这是大前提,然后something是限定范围的。
这样理解就可以减少不必要的误解。
- 结构化相关
E:first-child /*匹配E的父元素的第一个子元素且必须为E元素*/
E:last-child /*匹配E的父元素的最后一个子元素且必须为E元素*/
E:nth-child(3) /*匹配E的父元素的第3(值可以取正整数)个子元素且必须为E元素*/
E:nth-last-child(2) /*匹配E的父元素的倒数第2个子元素且必须为E元素*/
E:only-child /*匹配没有兄弟元素的E元素,即父元素下只有其一个子元素*/
E:nth-of-type(2) /*匹配E的父元素的第2(值可以取正整数)个和E同类型的子元素*/
E:nth-last-of-type(3) /*匹配E的父元素的倒数第3个和E同类型的子元素*/
E:first-of-type /*匹配E的父元素的第1个和E同类型的子元素,等同于E:nth-of-type(1)*/
E:last-of-type /*匹配E的父元素的最后1个和E同类型的子元素,等同于:nth-last-of-type(1)*/
E:only-of-type /*匹配其父元素下唯一一个E同种类型的子元素*/
E:empty /*匹配一个不包含任何子元素的元素,文本节点也被看作子元素*/
html:root /*匹配文档的根元素,对于HTML文档,就是HTML元素,也可以写成:root*/
- 状态相关
E:link /* 匹配所有未被访问过的链接(不是点击,有可能链接没被点击过却被访问过)*/
E:visited /*匹配所有已被访问过的链接*/
E:active /*匹配鼠标已经其上按下、还没松开的E元素*/
E:hover /*匹配鼠标悬停其上的E元素*/
E:focus /*匹配获得当前焦点的E元素*/
- 表单相关
E:enabled /*匹配表单中可用的元素*/
E:disabled /*匹配表单中禁用的元素*/
E:checked /*匹配表单中被选中的radio或checkbox元素*/
E::selection /* 匹配用户当前选中的元素*/
- 其他
E:lang(c) /* 匹配lang属性等于c的E元素*/
E:not(selector) /*匹配E的父元素下不匹配selector选择器的E元素*/
伪元素选择器
以下四个也可以用单冒号,效果一样
E::first-line /*匹配E元素内容的第一行*/
E::first-letter /*匹配E元素内容的第一个字母*/
E::before /*在E元素之前插入生成的内容*/
E::after /*在E元素之后插入生成的内容*/
hover选择器
E:hover F /*E元素是悬浮元素,F是E的子元素,E的hover可以改变F的状态*/
E:hover>F /*E元素是悬浮元素,F是E的直接子元素,E的hover可以改变F的状态*/
E:hover+F /*E元素是悬浮元素,F是E的直接相邻的一个同级元素,E的hover可以改变F的状态*/
E:hover~F /*E元素是悬浮元素,F是E的同级元素(兄弟元素),E的hover可以改变F的状态*/
nth-child选择器
CSS选择器中n表示非负整数
E:nth-child(1) /*匹配E的父元素下第一个子元素且为E元素*/
E:nth-child(n) /*所有E元素(和E标签选择器貌似没什么区别。。)*/
E:nth-child(2n) /*匹配E的父元素下所有子元素次序是偶数的E元素(比如第2,4,6,8...个)*/
E:nth-child(even) /*等于E:nth-child(2n) */
E:nth-child(2n+1) /*匹配E的父元素下所有子元素次序是奇数的E元素(比如第1,3,5,7..个)*/
E:nth-child(odd) /*等于E:nth-child(2n+1) */
E:nth-child(n+4) /*匹配E的父元素下所有子元素次序大于等于4的E元素(比如第4,5,6,7...个)*/
E:nth-child(-n+5) /*匹配E的父元素下所有子元素次序小于等于5的E元素(比如第1,2,3,4,5个)*/
E:nth-child(3n+2) /*匹配E的父元素下所有子元素次序符合3n+2的E元素(比如第2,5,8,11个)*/
nth-last-child选择器也是同理
a:link, a:hover, a:active, a:visited 的顺序
顺序依次是a:link>>a:visited>>a:hover>>a:active
本文首发在个人博客yoowin.me,欢迎访问。
CSS选择器大汇总的更多相关文章
- 看这一篇就够了,css选择器知识汇总
对大多技术人员来说都比较熟悉CSS选择器,举一例子来说,假设给一个p标签增加一个类(class),可是执行后该class中的有些属性并没有起作用.通过Firebug查看,发现没有起作用的属性被覆盖了, ...
- CSS透明度大汇总
近年来,CSS不透明算得上是一种相当流行的技术,但在跨浏览器支持上,对于开发者来说,可以说是一件令人头疼的事情.目前还没有一个通用方法,以确保透明度设置可以在目前使用的所有浏览器上有效. 这篇汇总主要 ...
- 【总结】CSS透明度大汇总
近年来,CSS不透明算得上是一种相当流行的技术,但在跨浏览器支持上,对于开发者来说,可以说是一件令人头疼的事情.目前还没有一个通用方法,以确保透明度设置可以在目前使用的所有浏览器上有效. 这篇汇总主要 ...
- CSS十大选择器
CSS十大选择器: 1.id选择器 # 2.class选择器 句号 . 3.标签选择器 标签名称 4.相邻选择器 加号 + 5.后代选择器 空格 6.子元素选择器 大于号 > 7.多元素 ...
- 【CSS选择器】理解汇总和记录
1.选择器中符号含义汇总(这部分包含了对选择器的通用理解): 1.1.多元素组合符号:(共6个,一个是CSS3的)(适用所有元素:ID组合,类组合,属性组合,标签组合,伪类组合,以及以上所有混合组合) ...
- HTML+css基础 css的几种形式 css选择器的两大特性
3.外联样式 css选择器的两大特性 1.继承性:所有跟文本字体有关的属性都会被子元素继承.且权重是0000. 2.层叠性:就是解决选择器权重大小的一种能力,就是看那个选择器的权重大.谁的权重大听谁的 ...
- CSS 选择器汇总
CSS 选择器 CSS 元素选择器 CSS 选择器分组 CSS 类选择器详解 CSS ID 选择器详解 CSS 属性选择器详解 CSS 后代选择器 CSS 子元素选择器 CSS 相邻兄弟选择器 CSS ...
- CSS选择器的权重与优先规则?
我们做项目的时候,经常遇到样式层叠问题,被其他的样式覆盖,或者写的权重不高没效果,对权重没有具体的分析,做了一个总结. css继承是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用 ...
- IE6 浏览器常见兼容问题 大汇总(23个)
IE6以及各个浏览器常见兼容问题 大汇总 综述:虽然说IE6在2014年4月将被停止支持,但是不得不说的是,IE6的市场并不会随着支持的停止而立刻消散下去,对于WEB前端开发工程师来说,兼容IE6 兼 ...
随机推荐
- Socket异步通信及心跳包同时响应逻辑分析。
有段时间没有更博了,刚好最近在做Socket通信的项目,原理大致内容:[二维码-(加logo)]-->提供主机地址和端口号信息(直接使用[ThoughtWorks.QRCode.dll]比较简单 ...
- 一颗简单的JDBC栗子
前言:安装好数据库之后,我们编写的java程序是不能直接使用数据库的,而JDBC(Java Database Connectivity,即java数据库连接)是java语言里用来规范客户端程序访问数据 ...
- 如是使用JS实现页面内容随机显示
之前有个客户咨询我,因为他们公司的业务员有多个人,但公司网站的联系方式板块里只够放一个人的信息,所以就想能不能实现这个联系方式信息随机显示,对于业务或客服人员来说也能做到分配均匀公平.本文我们将和大家 ...
- JDK+Tomcat+Zookeeper+DubboAdmin安装教程
JDK+Tomcat+Zookeeper+DubboAdmin安装教程 1. 安装内容: JDK 1.8.131 Tomcat 7.0.77 Zookeeper 3.4.9 Dubbo admin 2 ...
- (转)Maven项目标准目录结构
场景:工作中的项目都是使用Maven的目录结构,虽然能够如期的完成开发工作,但是对于一个Maven工程的配置却并不熟悉,这里主要介绍下Maven工程的而目录结构. 1 标准目录结构 src -main ...
- (转)CentOS 7.0关闭默认防火墙启用iptables防火墙
场景:在本地虚拟机上使用ftp软件需要进行相应的端口设置,不可避免要访问Cnetos的防火墙,默认firewall操作不方便,所以需要进行相应的替换. 1 配置防火墙,开启80端口.3306端口 1. ...
- MyBatis 详解(一对一,一对多,多对多)
1.什么是MyBatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且 ...
- codeforces 475D. CGCDSSQ
D. CGCDSSQ time limit per test 2 seconds memory limit per test 256 megabytes Given a sequence of int ...
- Redis-事务即简单锁应用
Redis支持简单的事务, Redis允许一组命令在单一步骤中执行, 事务有两个属性 事务是一个单独的隔离操作, 事务中所有的命令都会序列化, 按照顺序执行. Redis事务是原子性的, 即要么都执行 ...
- MongoDB增 删 改 查
增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...