zoukankan      html  css  js  c++  java
  • CSS3属性选择器总结

    CSS3中使用了很多的属性选择器,通过这些属性选择器,可以根据我们自己的设计来定义元素的样式,制作精美的网页。

    CSS3属性选择器

    下面是CSS3的属性选择器的语法,及使用。

    元素名字[元素类型=“类型名字”]:选择器名字{
      属性:值;
      属性:值;
    }

      在元素类型匹配时,就可以使用类似正则的匹配方法。

      [att=val] 指定特定名字的元素

      [att*=val] 匹配val*的元素,

      [att^=val] 匹配val开头的元素,比如id为val1、val432432都可以。

      [att$=val] 匹配val结尾的元素,比如id为1213val、fdajlval等等。

    伪元素选择器

      通常,CSS中会有一些已经定义好的元素选择器,我们通过

    选择器:伪元素{属性名:值}

      来定义。

      常用的伪选择器有:

    first-line 伪元素选择器:某个元素的第一行

    first-letter:某元素的首字母

    after:某元素之后插入内容,如

    <p>:before{
      content:123
    }

    before:某元素之前插入内容

    常用选择器

      root:整个DOM的元素定点,也就是html

      not:排除特定的元素

      empty:比如一个列表空的那个元素

      target:链接指定的目标

    <html>
    <head>
        <style type="text/css">
            :target{
                background-color:yellow;
            }
        </style>
    </head>
    <body>
        <p id="menu">
            <a href="#text1">示例1</a>|
            <a href="#text2">示例2</a>|
            <a href="#text3">示例3</a>|
            <a href="#text4">示例4</a>|
            <a href="#text5">示例5</a>
        </p>
        <div id="text1">
            <h2>示例文字1</h2>
            <p>..此处省略..</p>
        </div>
        <div id="text2">
            <h2>示例文字2</h2>
            <p>..此处省略..</p>
        </div>
        <div id="text3">
            <h2>示例文字3</h2>
            <p>..此处省略..</p>
        </div>
        <div id="text4">
            <h2>示例文字4</h2>
            <p>..此处省略..</p>
        </div>
        <div id="text5">
            <h2>示例文字5</h2>
            <p>..此处省略..</p>
        </div>
    </body>
    </html>

    点击图片就可以看到效果

      first-child:选择第一个子元素

      last-child:选择最后一个子元素

      nth-child:选择第n个子元素,这个还可以根据奇偶来制定,比如:

    <子元素>:nth-child(even){
    ...
    }
    <子元素>:nth-child(odd){
    ...
    }//也可以通过在括号内使用2n+1来,指定奇偶

    nth-last-child:选择倒数第n个子元素

      only-child:单个子元素时,指定样式

    元素状态选择器

      hover:当鼠标浮在元素上方时,触发

      active:当鼠标按下,还没有离开时,触发。因为chrome不支持,所以没有进行测试。

      focus:编辑焦点时,触发

      enabled:可以使用时,触发

      disabled:不可以使用时,触发

      read-only:只读时,触发

      read-write:可读可写时,触发

      checked:被勾选触发

      selection:选择时,触发

    <html>
    <head>
        <style type="text/css">
            p::selection{
                background:red;
                color:#FFF;
            }
            input[type="text"]::selection{
                background:gray;
                color:#FFF;
            }
            td::selection{
                background:green;
                color:#FFF;
            }
        </style>
    </head>
    <body>
        <p>hello!xingoo</p>
        <hr/>
        <input type="text" value="hello!xingoo" />
        <hr/>
        <table border="1" cellspacing="0" cellpadding="0" >
            <tr>
                <td>
                    hello!
                </td>
                <td>
                    xingoo!
                </td>
            </tr>
            <tr>
                <td>
                    123!
                </td>
                <td>
                    456!
                </td>
            </tr>
        </table>
    </body>
    </html>

      default:比如多选框,页面刷新时,默认选择触发

      indeterminate:比如多选框,都没选时的样式

    <html>
    <head>
        <script>
            function radio_onchange()
            {
                
                var radio = document.getElementById("radio1");
                var text = document.getElementById("text1");
                console.log(text.disabled);
                if(radio.checked){
                    console.log("checked");
                    text.disabled = "";
                }else{
                    console.log("unchecked");
                    text.value = "";
                    text.disabled = "disabled";
                }
            }
        </script>
        <style type="text/css">
            input[type="text"]:enabled{
                background-color:yellow;
            }
            input[type="text"]:disabled{
                background-color:purple;
            }
            input[type="text"]:hover{
                background-color:skyblue;
            }
            input[type="text"]:focus{
                background-color:red;
            }
            input[type="text"]:read-only{
                background-color:gray;
            }
            
            input[type="checkbox"]:checked{
                outline:2px solid blue;
            }
            
            input[type="checkbox"]:indeterminate{
                outline:2px solid red;
            }
        </style>
    </head>
    <body>
        <form>
            <input type="radio" id="radio1" name="radio" onchange="radio_onchange();">可用</radio>
            <input type="radio" id="radio2" name="radio" onchange="radio_onchange();">不可用</radio><br/>
            <input type=text id="text1" disabled />
            <p>
                姓名:<input type="text" name="name" /><br/>
                Email:<input type="text" name="email" value="http://www.cnblogs.com/xing901022/" readonly="readonly" />
            </p>
            
            兴趣:<input type="checkbox">阅读</input>
            <input type="checkbox">电影</input>
            <input type="checkbox">游戏</input>
            <input type="checkbox">上网</input>
            <br/>
            
            
        </form>
    </body>
    </html>

     invalid:不符合元素范围的

      valid:符合元素范围校验的

    <html>
    <head>
        <style type="text/css">
            input[type="text"]:invalid{
                background-color:red;
            }
            input[type="text"]:valid{
                background-color:white;
            }
        </style>
    </head>
    <body>
        <form>
            <p>必须输入文字:<input type="text" required /></p>
        </form>
    </body>
    </html>

    不合法时

    合法时

      required:支持这个属性,并且定义了required的

      optional:支持requried属性,但是没有定义的

    <html>
    <head>
        <style type="text/css">
            input[type="text"]:required{
                border-color:red;
                border-width:3px;
            }
            input[type="text"]:optional{
                border-color:blue;
                border-width:3px;
            }
        </style>
    </head>
    <body>
        <form>
            姓名:<input type="text" required placeholder="必须输入" /><br/>
            年龄:<input type="text" />
        </form>
    </body>
    </html>

      in-range:在范围内的

      out-of-range:超出范围的

    <html>
        <head>
            <style type="text/css">
                input[type="number"]:in-range{
                    background-color:white;
                }
                input[type="number"]:out-of-range{
                    background-color:red;
                }
            </style>
        </head>
        <body>
            test number 1-100<input type=number min=0 max=100>
        </body>
    </html>

    正常范围时

    超出范围时

  • 相关阅读:
    阿里巴巴公布合伙人名单,董建华成为独董,俞永福未进入合伙人
    android cookie
    在Android的webview中定做js的alert,confirm和prompt对话框的方法
    浅谈WebView的使用 js alert
    Android的移动存储之SharedPreferences
    [android]-如何在向服务器发送request时附加已保存的cookie数据
    layout_weight
    我们是如何认识世界的
    挣钱和花钱
    时刻牢记“我是谁、为了谁、依靠谁” 始终践行党的群众观点和群众路线
  • 原文地址:https://www.cnblogs.com/duhuo/p/5404380.html
Copyright © 2011-2022 走看看