zoukankan      html  css  js  c++  java
  • 子选择符 、相邻选择符 、 兄弟选择符 、 伪类选择符

    子选择符:

    E>F

    选择所有作为E元素的子元素F

    <style>
    div>p{ color: red; }
    </style>
    <div>
    <h3>我是标题1</h3>
    <p>我第1个是p标签</p>
    <p>我第2个是p标签</p>
    <p>我第3个是p标签</p>
    <small>我是小标题</small>
    </div>

    显示效果:

                  

    相邻选择符:

    E+F

    选择紧贴在E元素之后F元素。

    <style>
    div+p{background: red;}
    </style>
    <div>
    <h3>我是标题1</h3>
    </div>
    
    <div>
    <small>我是小标题</small>
    <p>我第1个是p标签</p>
    </div>
    
    <p>我就是紧贴在div元素后面的p元素</p>
    <p>我第3个是p标签</p>
    </div>

    显示效果:

           

    兄弟选择符:

    E~F

    选择E元素所有兄弟元素F。

    <style> 
        div~p{ background: yellow; }
    </style>
    <div>
    <p>我第1个是p标签,我在div里</p>
    <p>我第2个是p标签,我在div里</p>
    </div>
    
    <p>我第3个是p标签,我不在div里</p>
    <p>我第3个是p标签,我不在div里</p>

    显示效果:

          

    伪类选择符:

         选择符       描述

    1、E:link          设置超链接a在未被访问前的样式。

    <style>
    a:link{
    background-color:yellow;
    color:blue;
    }     
    </style>
    <a href="http://www.daidu.com">百度</a>
    <a href="http://www.daidu.com">百度</a>
    <a href="http://www.daidu.com">百度</a>

    显示效果:未被访问前是黄色的背景色和字体是蓝色

    2、E:visited      设置超链接a在其链接地址已被访问过时的样式。

    3、E:hover       设置元素在其鼠标悬停时的样式。

    4、E:active       设置元素在被用户激活

    <style>
    a:visited {color:green;}
    a:hover   {color:red;}
    a:active  {color:yellow;}
    </style>

    <p>将鼠标移上并点击此链接: <a href="#">访问后是绿色的,鼠标悬停时时红色的,点击那刻是黄色的</a></p>

    5、E:focus         设置元素在成为输入焦点 (该元素的onfocus事件发生)时的样式。

    <style>
    input:focus{background-color:yellow;}
    </style>

    用户名:<input type="text" name="user" />

    效果:点击文本输入框表单可以看到黄色背景

        

    6、E:lang(fr)       匹配使用特殊语言的E元素。很少用

    <style>
    p:lang(abc) {
        color: #f00;
    }
    p:lang(d) {
        color: #ccc;
    }
    </style>
    
    
    <p lang="abc">(效果为红色的字体)</p>
    <p lang="d">(效果为灰色的字体)</p>

    7、E:not(s)         匹配不含有s选择符的元素E。

    <style>
    p:not(.abc) { color: #f00;}
    </style>
    
    <p class="abc">否定伪类选择符 E:not(s)</p>
    <p id="abc">否定伪类选择符 E:not(s)</p>
    <p class="abcd">否定伪类选择符 E:not(s)</p>
    <p>否定伪类选择符 E:not(s)</p>

    显示效果:

      

    8、E:root          匹配E元素在文档的根元素。常指html元素

    父类型中的子元素:

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

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

    11、E:only-child      匹配父元素仅有的一个子元素E。

    12、E:nth-child(n)      匹配父元素的第n个子元素E。

    13、E:nth-last-child(n)   匹配父元素的倒数第n个子元素E。

    父类型中的子元素拿以上几个例子来测试如下:

    <style> 
    div p:first-of-type {color: red;}/* 父类元素的第一个子元素 */
    div p:last-of-type {color: yellow;}/* 父类元素的最后一个子元素 */
    div p:nth-of-type(4) {color: blue;}/* 父类元素的第四个子元素 */
    </style>
    
    
    
    <div>
    <p>我是第一个p标签,是红色</p>
    <p>11111111</p>
    <p>11111111</p>
    <p>我是第四个p标签,是蓝色</p>
    <p>11111111</p>
    <p>我是最后一个p标签,是黄色</p>
    </div>

    效果显示:

    同类型中的同级兄弟元素:

    14、E:first-of-type     匹配同类型中的第一个同级兄弟元素E。

    15、E:last-of-type      匹配同类型中的最后一个同级兄弟元素E。

    16、E:only-of-type     匹配同类型中的唯一的一个同级兄弟元素E。

    17、E:nth-of-type(n)    匹配同类型中的第n个同级兄弟元素E。

    18、E:nth-last-of-type(n)匹配同类型中的倒数第n个同级兄弟元素E。

    拿以上同类型中的同级兄弟元素的几个例子测试如下:

    <style> 
    p:first-of-type {color: red;}/* 同类型中的第一个同级兄弟元素 */
    p:last-of-type {color: yellow;}/* 同类型中的最后一个 */
    p:nth-of-type(4) {color: blue;}/* 同类型中的第四个 */
    </style>
    
    
    
    <p>我是第一个p标签,是红色</p>
    <p>11111111</p>
    <p>11111111</p>
    <p>我是第四个p标签,是蓝色</p>
    <p>11111111</p>
    <p>我是最后一个p标签,是黄色</p>

    效果:

    19、E:empty       匹配没有任何子元素(包括text节点)的元素E。

    <style>
    p:empty {
        height: 25px;
        border: 1px solid #ddd;
        background: #eee;
    }
    </style>
    <div>
        <p>结构性伪类选择符 E:empty</p>
        <p><!--我是没文字的空标签--></p>
        <p>结构性伪类选择符 E:empty</p>
    </div>

    效果图:

        

    20、E:checked      匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时)

    <style> 
        input:checked{ width: 25px; height: 25px; }
    </style>
    
    
    <input type="radio"/><input type="radio"/>

    效果是被选中时宽高都变25px:

    21、E:enabled         匹配用户界面上处于可用状态的元素E。

    22、E:disabled        匹配用户界面上处于禁用状态的元素E。

    E:enabled、E:disabled测试如下:

    <style> 
    input[type="text"]:enabled
    {
        background:#ffff00;
    }
    input[type="button"]:disabled
    {
        background: ccc;
    }
    </style>
    
    
    
    <form action="">
    用户名: <input type="text" value="可用" /><br>
    用户名: <input type="text" value="可用" /><br>
    注 册: <input type="button" disabled="disabled" value="禁用了" /><br>
    </form>

    效果:

    23、E:target       匹配相关URL指向的E元素。

    <style> 
    .box ul{list-style: none;}    
    .box ul li{ float: left; margin-left: 20px;}
    a:target{ color: red; }
    </style>
    
    
    
    <div class="box">
        <ul>
            <li><a href="#nav1" id="nav1">导航一</a></li>
            <li><a href="#nav2" id="nav2">导航二</a></li>
            <li><a href="#nav3" id="nav3">导航三</a></li>
        </ul>
    </div>

    效果:鼠标点击那个导航时那个导航字体就变红。

        当点击在导航三看导航三的内容时,导航三的字体的红色可以当做标记来记住当前的位置

    注意:<a>标签的id要和href链接的地址一样。

  • 相关阅读:
    zjoj1706: [usaco2007 Nov]relays 奶牛接力跑
    bzoj1784: [Usaco2010 Jan]island
    [PKUSC2018]真实排名
    [PKUSC2018]主斗地
    回来了
    P4887 第十四分块(前体)
    P3604 美好的每一天
    Codeforces Round #660(CF1388)
    BOI2020 DAY2
    BZOJ 5281--[Usaco2018 Open]Talent Show(分数规划&单调队列&DP)
  • 原文地址:https://www.cnblogs.com/dadayang/p/5755221.html
Copyright © 2011-2022 走看看