zoukankan      html  css  js  c++  java
  • css3选择器补充

    一、关系选择器

    1、E+F   (E元素下一个满足条件的兄弟元素节点)

     1 <style>
     2      div + p{
     3          background-color:red;// 第一个p元素变色
     4      }
     5 </style>
     6 <body>
     7     <div>div</div>
     8     <p>1</p>
     9     <p>2</p>
    10     <p>3</p>
    11 </body>
     1 <style>
     2      div + .demo{
     3          background-color:red;// 第一个p元素变色
     4      }
     5 </style>
     6 <body>
     7     <div>div</div>
     8     <p class="demo">1</p>
     9     <p>2</p>
    10     <p>3</p>

    2、E~F  (E下所有满足条件的兄弟元素节点)

    二、属性选择器

    1、E[att~=“val”]

    2、E[att | =“val”] (以val为开头 或 以val- 为开头的元素)

    <style>
         div[class|='a']{
             background-color:red; //1、2变色
         }
    </style>
    <body>
        <div class="a">1</div>
        <div class="a-test">2</div>
        <div class="b-test">3</div>

    3、E[att^=“val”] 

    4、E[att$=“val”]

    5、E[att*=“val”]

    三、伪元素选择器

    1、E::placeholder (注意兼容性)

    <style>
         input{
             border:1px solid black;
         }
         input::placeholder{
             color:orangered; //改变一下“请输入用户名”字体颜色
         }
    </style>
    <body>
        <input type="text" placeholder="请输入用户名">
    </body>

    2、E::selection

    四、伪类选择器  (被选择元素的一种状态)

    1、E:not (s)    :root (跟标签选择器,包含html)   E:target

    <style>
         div:not(.test){
             background-color:red;
         }
    </style>
    <body>
        <div class="demo">1</div>
        <div class="demo">2</div>
        <div class="test">3</div>
    </body>
         //或写成
         div:not([class="demo"]){
             background-color:red;
         }

    not应用实例:

    <style>
         *{
             margin:0;
             padding:0;
         }
         ul{
             300px;
             border:1px solid #999;
         }                                                        
         li{
             height:50px;
             margin:0 5px;
         }
         li:not(:last-of-type){
             border-bottom:1px solid black;
         }
    </style>
    <body>
        <ul>
            <li>content</li>
            <li>content</li>
            <li>content</li>
            <li>content</li>
            <li>content</li>
            <li>content</li>
            <li>content</li>
        </ul>
    </body>  
    //效果如下
    
    
    <style>
         div:target{
            border:1px solid black;
         }
         /* location.hash = xxx   (被标记成锚点之后) */
    </style>
    <body>
        <a href="#box1">div1</a>
        <a href="#box2">div2</a>
        <div id="box1">1</div>
        <div id="box2">2</div>
    </body>

    小练习:

    2、E:first-child    E:last-child    E:only-child   E:nth-child (n)    E:nth-last-child (n)   (这些元素都考虑其他子元素的影响)

    <style>
         P:first-child{
             background-color:red;
         }
    </style>
    <body>
        <div>
            <p>1</p>
            <p>2</p>
            <p>3</p>
        </div>
    </body>
    <style>
         P:first-child{
             background-color:red;//第一个p元素不会变红,因为第一个子元素是span
         }
    </style>
    <body>
        <div>
            <span>5</span>
            <p>1</p>
            <p>2</p>
            <p>3</p>
        </div>
    <style>
        p:nth-child(2n+1){
            background-color:red;//1、3、5变色 (css从1开始查)
        }
    </style>
    <body>
        <div>
            <p>1</p>
            <p>2</p>
            <p>3</p>
            <p>4</p>
            <p>5</p>
        </div>

    3、E:first-of-type      E:last-of-type        E:only-of-type  (不受其他类型元素干扰)

    4、E:nth-of-type(n)     E:nth-of-last-type(n)     (不受其他类型元素干扰)  (常见)

    5、E:empty(元素为空,无节点,注释也算做空)    E:checked     E:enabled       E:disabled

    <style>
       input:checked + span{
           background:greenyellow;
       }
       input:checked + span::after{
           content:"恭喜中奖";
       }
    </style>
    <body>
        <label>
            一个小惊喜
            <input type="checkbox">
            <span></span>
        </label>
    </body>

    6、E:read-only      E:read-write

  • 相关阅读:
    通过枚举enum实现单例设计
    hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等
    hibernate框架学习第一天:hibernate介绍及基本操作
    struts2框架之重复提交问题
    struts2框架之标签
    struts2框架之文件下载(参考第三天学习笔记)
    struts2框架之文件上传(参考第三天学习笔记)
    struts2框架之OGNL(参考第三天学习笔记)
    struts2框架学习之第三天
    struts2框架之拦截器(参考第二天学习笔记)
  • 原文地址:https://www.cnblogs.com/tianya-guoke/p/10231023.html
Copyright © 2011-2022 走看看