Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42031
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 139
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-07 20:31
个人简介

http://weibo.com/u/2120670300/home

文章分类

全部博文(5)

文章存档

2015年(1)

2014年(3)

2013年(1)

我的朋友

分类: Html/Css

2014-09-24 21:33:31

       CSS3新增加的一些选择器,给CSS选择元素的时候有添加了一些新的方式。结构伪类主要是从HTML DOM的结构来选择元素,先把所有的类型以表格的形式将其一一列出,并对其功能进行描述先有个整体映像,然后再逐个的看其具体使用。
结构性伪类
E:root
匹配文档的根元素。下的一个应用)中,根元素永远是HTML
结构性伪类
E:nth-child(n)
匹配父元素中的第n个子元素E
结构性伪类
E:nth-last-child(n)
匹配父元素中的倒数第n个结构子元素E
结构性伪类
E:nth-of-type(n)
匹配同类型中的第n个同级兄弟元素E
结构性伪类
E:nth-last-of-type(n)
匹配同类型中的倒数第n个同级兄弟元素E
结构性伪类
E:last-child
匹配父元素中最后一个E元素
结构性伪类
E:first-of-type
匹配同级兄弟元素中的第一个E元素
结构性伪类
E:only-child
匹配属于父元素中唯一子元素的E
结构性伪类
E:only-of-type
匹配属于同类型中唯一兄弟元素的E
结构性伪类
E:empty
匹配没有任何子元素(包括text节点)的元素E
E:root,匹配文档的根元素
二、 E:nth-child(n),匹配父元素的第n个孩子元素E
       nth-child选择的是父元素的子元素,其中要满足两个条件:①没有规定确切的类型,只要是子元素;②该元素要在第n的位置。只需要看在父元素下的第n个孩子是否是E,如果          是那么就匹配,否则就不匹配。

        这里举个例子:        
         

            

大标题


            

这里是第一个段落


            

这里是第二个段落


       

        #example p:nth-child(2){
            font-style:bold;
            color:red;
        }
        #example p:nth-of-type(2){
            font-style:bold;
            color:green;
        }
        对于上面代码的效果:
        
        p:nth-child(2):选择的是父元素的第二个P类型的孩子节点,p:nth-of-type(2):选择的是父元素的所有孩子节点的P类型的第二个。
        对于理解了E:nth-child(n)之后,对于结构伪类的理解很有帮助,其他类型都是在这个的基础上的特殊情况。    

另外,结构伪类中一个比较特殊的用法是选择指定的元素的位置。nth-child(n)、nth-last-child(n)、nth-of-type(n)、nth-last-of-type(n)中的N在选择器中的使用,这个参数可以是整数(1、2、3、4)、关键之(odd、even),还可以是公式(2n+1、-n+5).但参数n的起始值始终是1而不是0.
1、参数可以是数值;
2、参数n为表达式【n*length】:单length为整数1时,将选择整个系列中的所有元素,直到元素无法选择为止。例如:":nth-child(2n)"

     n = 0时,2*0 = 0,不选任何元素;
     n = 1时,2*1 = 2,选中的是系列中的第2个元素;
3、参数n为表达式"n+length",例如:":nth-child(n+3)"
     n = 0时,0 + 3 = 3,选中的是第3个元素;
     n = 1时,1 + 3 = 4,选中的是第4个元素;
4、参数n为表达式【-n+length】,例如:":nth-child(-n+3)"

     n = 0时,-0 + 3 = 3,选中的是第3个元素;
     n = 1时,-1 + 3 = 2,选择的是第2个元素;
    当为负数的时候,不选择任何元素。
5、如果n的表达式为【2*n+1】或者【2*n-1】,那么此时与odd的效果相同,一样的【2n】与even的效果是一样的

这里有一个比较特别的用法就是从父元素的相反方向进行匹配,:last-child,:nth-last-child,:nth-last-of-type(n),:last-of-type,这几个选择器都是从父元素的最后一个开始匹配。

为了方便记忆和查询,把CSS的结构伪类选择器归为四类:
1)通用子元素过滤器:E:nth-child(n)(顺序过滤)和E:nth-last-child(n)(逆序过滤)
2)通用子类型元素过滤器:E:nth-of-type(顺序过滤)和E:nth-last-of-type(n)(逆序过滤)
3)特定位置的子元素:E:first-child,E:last-child,E:first-of-type,E:last-of-type
4)特定状态的元素:E:root(根节点)、E:only-child(独子元素)、E:only-of-type(独子类型元素)和E:empty(孤节点)




阅读(2295) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~