CSS3选择器总结

CSS3的选择器以及浏览器的支持情况。

1.基本选择器

通配选择器: * { margin:0;padding:0; }
元素选择器: p { color:red; }
ID选择器: #id { …… }
类选择器: .class { …… } (也可以用带元素的类选择器:p.class { …… }
群组选择器: selector1,selector2,……,selectorN { …… }

2.层次选择器

后代选择器: div span { …… } /*选择div元素内的span元素*/
子选择器: div > span { …… } /*选择div元素的子元素span*/
相邻兄弟选择器: div + p { …… } /*选择div后紧邻的p元素*/
通用选择器: div ~ p { …… } /*匹配div后所有的兄弟p元素*/

3.伪类选择器

  1. 动态伪类选择器
    链接伪类选择器:
    a:link { …… } /*匹配的a元素定义了超链接未被访问*/
    a:visited { …… } /*匹配已访问的a元素*/

    用户行为伪类选择器:
    a:active { …… } /*匹配被激活的a元素*/
    a:hover { …… } /*匹配鼠标悬浮的a元素*/
    a:focus { …… } /*匹配获得焦点的a元素*/

  2. 目标伪类选择器
    p:target { …… } /*匹配当前活动的p元素*/
    例: <a href="#news">跳转至</a>
    <p id="news">内容……</p>
    当点击a时,p:target选择到当前id=”news”的p元素

  3. 语言伪类选择器
    ap:lang(en) { …… } /*选择带有以en开头的lang属性的p元素*/

  4. UI元素状态伪类选择器
    选中状态伪类选择器:input:checked { …… } /*匹配所有选中的input元素(单选、复选)*/

    启用状态伪类选择器:input[type="text"]:enabled { …… } /*匹配所有可输入的输入框input元素*/

    不可用状态伪类选择器:input[type="text"]:disabled { …… } /*匹配所有不可输入的输入框元素*/

  5. 结构伪类选择器
    p:first-child { …… } /*匹配作为其父元素的第一个子元素的p元素*/

    p:last-child { …… } /*匹配属于其父元素的最后一个子元素的p元素*/

    :root { …… } /*匹配当前文档的根元素,即html*/

    div p:nth-child(n) { …… } /*选择div下第n个子元素p(n可以为even表示偶数,odd表示奇数,也可以为表达式)*/

    div p:nth-last-child(n) { …… } /*选择div下倒数第n个子元素p元素*/

    p:nth-of-type(n) { …… } /*选择其父元素下第n个p元素*/

    p:nth-last-of-type(n) { …… } /*选择其父元素下倒数第n个p元素*/

    p:first-of-type { …… } /*选择其父元素下第1个p元素*/

    p:last-of-type { …… } /*选择其父元素下倒数第1个p元素*/

    p:only-child { …… } /*选择其父元素下唯一一个子元素p元素*/

    p:only-of-type { …… } /*选择其父元素下唯一一个p元素(父元素中可以有其他非p元素,但必须有且只有一个p元素才可以匹配)*/

    p:empty { …… } /*选择没有子元素的p元素(并且也不能有文本节点)*/

  6. 否定伪类选择器
    E:not(F) { …… } /*匹配所有除元素F外的所有E元素*/
    例: :not(p) { …… } /*匹配除p元素外的所有元素*/
    例:input:not([type=submit]) { …… } /*匹配所有非submit的input元素*/

4. 伪元素

p::first-letter { …… } /*匹配p元素的第一个字母*/

p::first-line { …… } /*匹配p元素的第一行文本*/

p::before { …… } /*在p元素前插入……*/

p::after { …… } /*在p元素后插入*/

::selection { …… } /*控制被选中的文本的颜色、背景*/

5.属性选择器

E[attr] { …… } /*匹配带有属性attr的E元素,E可省略*/
例:a[target] { …… }

E[attr=val] { …… } /*匹配带有属性attr=val的E元素,E可省略*/
例:a[target=_blank] { …… }

E[attr|=val] { …… } /*匹配带有属性attr=val或以val开头的E元素*/
例:p[lang|=en] { …… }

E[attr~=val] { …… } /*匹配属性attr中有val并且以空格隔开的E元素*/
例:<a title="pic flower you">click me</a> a[title~=flower] { …… }

E[attr*=val] { …… } /*匹配属性attr中包含val的E元素*/
例:div[class*=test] { …… }

E[attr^=val] { …… } /*匹配属性attr是以val开头的E元素*/
例:div[class^=test] { …… }

E[attr$=val] { …… } /*匹配属性attr是以val结尾的E元素*/
例:div[class$=test] { …… }

浏览器兼容性

选择器IEFirefoxChromeSafariOpera
基本选择器6+
层次选择器7+
层次选择器(后代选择器)6+
动态伪类选择器6+
动态伪类选择器(E:active,E:focus)8+
目标伪类选择器9+9.6+
语言伪类选择器8+9.2+
UI元素状态伪类选择器9+
结构伪类选择器9+
否定伪类选择器9+
伪元素8+
属性选择器7+

参考资料:《图解CSS3 核心技术与案例实战》 大漠著

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值