css属性选择器

接上篇css基础选择器,这部分主要总结一下css属性选择器的用法。

属性选择器的作用:对带有指定属性的HTML 元素设置样式。使用CSS3属性选择器,你可以只指定元素的某个属性,或者你还可以同时指定元素的某个属性和其对应的属性值。

话不多说:依然上代码。

.demo {
                margin: 50px auto;
                width: 300px;
                border: 1px solid #ccc;
                padding: 10px;
            }
            .over-flow{
                overflow: hidden;
            }

            li {
                float: left;
                height: 20px;
                line-height: 20px;
                width: 20px;
                -moz-border-radius: 10px;
                -webkit-border-radius: 10px;
                border-radius: 10px;
                text-align: center;
                background: aqua;
                color: green;
                margin-right: 5px;
                list-style: none;
            }
  <div class="demo">
                <ul class="over-flow">
                    <li id="first" class="first">1</li>
                    <li class="active important">2</li>
                    <li class="important items">3</li>
                    <li class="important">4</li>
                    <li class="items">5</li>
                    <li>6</li>
                    <li>7</li>
                    <li>8</li>
                    <li>9</li>
                    <li id="last" class="last">10</li>
                </ul>
            </div>

得到如下效果

1、 E[attr]:只使用属性名,但没有确定任何属性值;

 li[id]{
            background: red;
           }

选择li标签下面有id属性的元素,和这个属性值没关系

也可以使用多属性进行选择元素,如E[attr1][attr2], 这样只要是同时具有这两属性的元素都将被选中

   li[id][class]{
            background: red;
           }

2、E[attr="value"]

E[attr]只是选择了有对应的属性,并没有明确指其对应的属性值"value",而E[attr="value"]是指定了属性值“value”,从而缩小了选择 围,更能精确选择自己需要的元素。

  li[id="four"][class="important"]{
            background: red;
           }

E[attr="value"]属性选择器也可以多个属性并写,进一步缩小选择范围:

此功能易错点:属性和属性值必须完全匹配,特别是对于属性值是多个的形式时,属性值必须全部列出。

比如下面这段代码:

 li[id="two"][class="important"]{
            background: red;
           }

是没有效果的

只有全部列出属性值才可以,而且属性值的顺序也不能错。

 li[id="two"][class="active important"]{
            background: red;
           }

3、E[attr~="value"]:与E[attr="value"]不同的是,他们两者区别就是一个有“〜”号,一个没有“〜”号,E[attr="value"]是属性值需要完全匹配才会被选中,而

E[attr~="value"]则是属性值中只要有一个值匹配就可选中。

  li[class~="important"]{
            background: red;
           }

4、E[attr^="value"]指的是选择attr属性值以“value”开头的所有元素。

  li[class^="active"]{
            background: red;
           }

5、E[attr$="value"]如果明白了第四个属性选择器,那么这个选择器则刚好相反。

这个运用在给你一些特殊的链接加背景图片很方便的,比如说给pdf,png,doc等不同文件加上不同icon。

为了更好的说明,我们在结构中插入两个a连接

                     <li>8</li>
                    <li>9</li>
                    <li id="last" class="last">10</li>
                    <li> <a href="sites/file/test.jpg" class="links item" title="this is a link" lang="zh-cn">11</a></li>
                    <li><a href="sites/file/test.png" class="links item" target="_balnk" lang="zh-tw">12</a></li>
 li a[href$="jpg"]{
            background: red;
           }

a链接丑了一点,不过还是说明了问题。

6、E[attr*="value"]表示的是选择attr属性值中包含子串"value"的所有元素,

和E[attr~="value"]有相同的感觉。

 li[class*="important"]{
            background: red;
           }

7、E[attr|="value"]特定属性选择器,首先attr后面的是一个竖线“|”而不是l,这个选择器会选择attr属性值等于value或以value-开头的所有元素。

  li a[lang|="zh"]{
            background: red;
           }

至此,关于css属性选择器部分基本就这么多了,要说明的一点是,属性选择器除了IE6不支持外,其他的浏览器都能支持,

七种属性选择器中E[attr="value"]和E[attr*="value"]是最实用的,其中E[attr="value"]能帮我们定位不同类型的元素,特别是表单form元素的操作,比如说input[type="text"],input[type="checkbox"]等,而E[attr*="value"]能在网站中帮助我们匹配不同类型的文件,比如说你的网站上不同的文件类型的链接需要使用不同的icon图标,用来帮助你的网站提高用户体验,就像前面的实例,可以通过这个属性给".doc",".pdf",".png",".ppt"配置不同的icon图标。

下一节,主要总结下css选择器中第三部分。伪类选择器。

 

posted @ 2016-05-20 17:05  半截铅笔  阅读(1561)  评论(0编辑  收藏  举报