css选择器

一、基本选择器

   1. 通配选择器 「*」

1 *{margin: 0;padding: 0} //选择页面中的所有元素并设置margin和padding值为0
2 .demo *{background:#000} //选择类名为demo的元素下面的所有元素并设置背景为黑色

2.元素选择器 「Element」
1 body{background:#ccc} //选择body元素 
2 ul{background:#fff} //选择列表ul元素
3.ID选择器 「#id」
 html:
          <div id="demo"></div>
 css:
          #demo{do something}
4.类选择器 「.class」
 html:
      <ul class="demo"></ul>
 css:
  .demo{do something}
  ul.demo{do something} //这样只会选择有demo类名的ul元素

需要注意的是:多个页面元素可以有相同的类名,但是元素的id在页面中必须是唯一的。
5.群组选择器 「selector1,...,selectorN」

html:
       <div class="section-1"></div>
      <div class="section-2"></div>
      <div class="section-3"></div>
css:
     .section-1,.section-2,.section-3{do something} //给三个页面元素定义公用的样式

 

 

二、层次选择器

6.后代选择器「E F」

html:
        <div class="parent">
        <div class="child"></div>
        <div class="child">
        <div class="c-child">
        <div class="c-c-child"></div>
        </div>
       </div>
       </div>

css:

    .parent div{do something} //会选择parent里面的所有div,不管是子元素.child还是孙元素.c-child和.c-c-child

7.子选择器「E > F」

html:
          <div class="parent">
          <div class="child"></div>
          <div class="child">
          <div class="c-child">
          <div class="c-c-child"></div>
          </div>
          </div>
          </div>

css:
        .parent > div{do something} //只会选择.parent元素的直系子元素,也就是只会选择到 .child元素

 

8.相邻兄弟元素选择器「E + F」 

html:
        <div>
        <div class="demo">1</div>
        <div>2</div>
        <div>3</div>
        </div>

css:

       .demo + div {do something}//会选中内容为2的div

 

9.通用兄弟选择器「E ~ F」

html:
         <div>
         <div class="demo">1</div>
         <div>2</div>
         <div>3</div>
         <div>4</div>
         </div>

css:

       .demo ~ div {do something}//会选中内容为2,3,4的div

三、伪类选择器

10.动态伪类选择器「E:link,E:visited,E:active,E:hover,E:focus」

1 E:link{do something} //选择定义了超链接但链接还未被访问过的元素
2 E:visited{do something} //选择定义了超链接并且链接已经被访问过的元素
3 E:active{do something} //选择匹配的E元素,且元素被激活,常用在锚点和按钮上
4 E:hover{do something} //选择鼠标停留的匹配的E元素
5 E:focus{do something} //选择匹配的E元素,且元素获得焦点

11.语言伪类选择器「E:lang(language)」

用来选择指定了lang属性的元素,其值为language。

 html:
        <html lang="en-US"></html>
 
 css:
      :lang(en-US) {do something}

有时候网页切换不同的语言版本的时候,可以通过这个选择器做一些特殊的处理。

12.状态伪类选择器「E:checked,E:enabled,E:disabled」

1 E:checked{do something} //匹配表单中被选中的单选按钮或复选按钮
2 E:enabled{do something} //匹配所有起用的表单元素
3 E:disabled{do something} //匹配所有禁用的表单元素

13.结构伪类选择器「E:first-child,E:last-child,E:root,E:nth-child(n),E:nth-last-child(n),E:nth-of-type(n),E:nth-last-of-type(n),E:first-of-type,E:last-of-type,E:only-child,E:only-of-type,E:empty」

13.1 [E:first-child]

用来选取特定元素的第一个子元素。

html:

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
css:

ul > li:first-child {do something} //用来选取ul中的第一个li元素

13.2 [E:last-child]

用来选取特定元素的最后一个子元素。

html:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
css:
ul > li:last-child {do something} //用来选取ul中的最后一个li元素

 

14.3 [E:nth-child()],[E:nth-last-child()]

用来选取某个父元素的一个或多个特定的子元素,其中的n可以是数值(从1开始),也可以是包含n的表达式,也可以是odd(奇数),even(偶数)。

E:nth-last-child()选择器的使用方法于E:nth-child()是相同的,不同的是E:nth-last-child()选择的元素是从父元素的最后一个子元素开始算起。

html:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
css:

ul > li:nth-child(2n+1) {do something} //用来选取ul中的第2n+1(奇数)个li元素

13.4  [E:root]

用来匹配元素E所在的文档中的根元素,在html文档中根元素就始终是html。

13.5 [E:nth-of-type(),E:nth-last-of-type()]

E:nth-of-type()只计算父元素中指定的某种类型的子元素,当某个元素的子元素类型不只是一种时,使用nth-of-type来选择会比较有用。

E:nth-last-of-type()的用法同E:nth-of-type()相同,不同的是:nth-last-of-type()也是从父元素的最后一个子元素开始算起。

li:nth-of-type(3)的话就会标识它只会选择第三个li元素,别的元素会忽略掉,如:

html:
<ul>
<li>1</li>
<li>2</li>
<div>3</div>
<div>4</div>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>

ul > li:nth-of-type(3){do something} //会选中内容为5的li元素

但是使用nth-child就会是这样:

html:
<ul>
<li>1</li>
<li>2</li>
<div>3</div>
<div>4</div>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>

ul > li:nth-child(3){do something} //会选中内容为3的div元素



posted @ 2016-02-24 00:26  Jacky_Kun  阅读(189)  评论(0编辑  收藏  举报