zoukankan      html  css  js  c++  java
  • css学习之——选择器

    css3在原来的原则器基础上增加了很多类型的选择器,下面总结一下css3提供的选择器,当做一个复习。

    一、基础选择器

    1、* :通配选择器,选择HTML文档中的所有元素。

    2、#idValue :id选择器,选择id为idValue的元素。

    3、.classValue :类选择器,选择类为classValue的元素

    4、E: 标签选择器,选择所有E元素

    5、E,#idValue,.classValue :群组表达式,选择所有的E元素和id为idValue的元素,类为classValue的元素。

    二、层次结构选择器

    1、E F :后代选择器,选择以E为父元素,后代中的F元素,如下图:

    1  <div>
    2         <p>
    3             <span>我被选中了</span>
    4         </p>
    5     </div>
    6 
    7 div span{}选中的即为div里的span元素

    2、E>F :子选择器,选择以E为父元素,子元素为F的元素,注意只能选择E的子元素F,E的孙子元素F是不能被选中的。如下图:

    1 <div>
    2         <span> 我是子元素</span>
    3         <p>
    4             <span>我是子元素的子元素</span>
    5         </p>
    6     </div>
    7 div >span{}选中的是内容是我是子元素的span

    3、E+F:相邻兄弟选择器,选择跟E在同一层级的F元素,如下图:

    1 <div>
    2         <p> 我是子元素</p>
    3     </div>
    4     <p>我是兄弟元素</p>
    5  div  +p选中的是内容为我是兄弟元素的p元素

    4、E~F :通用选择器,选择排在E后面的所有兄弟元素,跟兄弟原则器不同的是它只选择后面的兄弟元素,前面的不选择,如下图:

    1  <span>我是前面兄弟元素</span>
    2     <div>
    3         <p><span>我是子元素的子元素</span> </p>
    4         <span>我是子元素</span>
    5     </div>
    6     <span>我是后面兄弟元素</span>
    7 
    8 div ~span{}选中的是内容为我是后面兄弟元素的span元素

    三、属性选择器

    1、[attr]:选择有attr属性的所有元素

    2、[attr=value]:选择有attr属性且属性的值为value的元素

    2、[attr^=value]:选择有attr属性且属性值以attr开头的元素,如下图:

    1  <div class="divFirst">class以div开头</div>
    2  <div class="divSecond">class以div开头</div>
    3  <div class="three">class不以div开头</div>
    4 
    5 div[class^="div"]{
    6             color: red;
    7         }
    8 匹配到的是前两个div

    3、[attr$=value]:选择有attr属性且属性的值以value为结尾。如下图:

    1 <div class="div">class以v结尾</div>
    2 <div class="div">class以v结尾</div>
    3 <div class="three">class不以v结尾</div>
    4 
    5 div[class$="div"]{
    6      color: red;
    7 }
    8 匹配到前两个div

    4、[attr*=value]:选择有attr属性且属性值包含value的元素,如下图:

    1 <div class="div"></div>
    2 <div class="div"></div>
    3 <div class="dthree"></div>
    4 
    5 div[class*="d"]{} 选中div元素中class属性中包含d的元素,上面三个div都选中

    5、[attr|=value]:选择有attr属性并且属性值以value开头的元素,其中value必须为一个完整的单词。

    6、[attr~=value]:选择有attr属性并且属性值包含value的元素,其中的value必须是完整的单词。

    四、UI状态伪类选择器

    1、E:checked:匹配选中的表单元素,比如选中的单选框,复选框。

    2、E:enabled:匹配启用的所有表单元素

    3、E:disabled:匹配被禁用的表单元素

    五、目标伪类选择器

    1、E:target:选择被url指向的E元素,如图:

    1 <div id="div1">111</div>
    2 <div id="div2">222</div>
    3 <a href="#div1">跳转到1</a>
    4 
    5 div:target{
    6             color: red;
    7 }
    8 当点击超链接时,第一个div的字体颜色变红。

    六、动态伪类选择器

    1、E:link:匹配定义了超链接且未被访问过的元素

    2、E:visited:匹配定义了超链接且超链接被访问过的元素

    3、E:active:匹配被激活的元素

    4、E:focus:匹配获得焦点的元素

    5、E:hover:匹配鼠标放在上面的元素

    七、否定伪类选择器

    1、E:not(F):选择所有不满足F条件的E元素。

    八、结构伪类选择器

    1、E:first-child:匹配E元素的父元素的第一个子元素是E的E元素,如下图:

    1 <div>
    2         <p>11111</p>
    3         <p>22222</p>
    4         <p>33333</p>
    5         <p>44444</p>
    6         <p>555555</p>      
    7 </div>
    8 pl:first-child匹配到的是第一个p元素,如果在第一个p元素前面加一个span元素,则不能匹配到任何元素。

    2、E:last-chilid:匹配E元素的父元素的最后一个子元素是E的E元素,如图:

    1 <div>
    2         <p>11111</p>
    3         <p>22222</p>
    4         <p>33333</p>
    5         <p>44444</p>
    6         <p>555555</p>      
    7 </div>
    8 p:lastt-child匹配到的是最后一个p元素,如果在最后一个p元素后面加一个span元素,则不能匹配到任何元素。

    3、E:nth-child(n):匹配E的父元素的处在第n个位置的子元素,如果第n个子元素为E,则匹配成功,否则匹配失败。

    4、E:nth-last-child:匹配E的父元素从后面数起的第n个子元素,如果第n个子元素为E,则匹配成功,否则匹配失败。

    5、E:only-child:匹配E的父元素中只有一个子元素,且该子元素是E的E元素。

    6、E:root:匹配元素E所在的文档的根元素。

    7、E:nth-of-type(n):匹配元素E的父元素中的第n个E元素,与E:nth-chilid不同的是,计算n的时候,nth-chilid是把所有的子元素都算在里面,而nth-of-type只计算子元素为E的元素。

    8、E:nth-of-last-type(n):匹配元素E的父元素中从最后算起的第n个E元素

    9、E:first-of-type:匹配元素E的父元素中的第一个子元素E。

    10、E:last-of-child:匹配元素E的父元素中的最后一个子元素E.

    11、E:only-of-type:匹配E的父元素中只有一个E子元素的E元素,与E:only-child不同的是,only-child中只有一个子元素,而only-of-type中可以有多个子元素,但子元素E只能有一个。

    12、E:empty:选择没有任何子元素的E元素。

  • 相关阅读:
    HashMap的C++实现
    MyString的简单实现
    C++智能指针实现
    static_cast 、const_cast、dynamic_cast、reinterpret_cast 关键字简单解释
    对数组取地址
    修改const变量
    红黑树简单总结
    MyInt的简单实现
    全排列之递归与非递归算法实现总结
    不用辅助空间的归并排序
  • 原文地址:https://www.cnblogs.com/qiaoyun/p/7519916.html
Copyright © 2011-2022 走看看