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{
         width: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

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

猜你喜欢

转载自www.cnblogs.com/tianya-guoke/p/10231023.html