CSS属性选择器

CSS选择器主要分为五大类:元素选择器,关系选择器,属性选择器,伪类选择器和伪元素选择器。平时用的最多的是元素选择器和关系选择器,而本文主要讲讲用得比较少的属性选择器。

首先亮出本文通用的例子:

<!--html-->
<p name="zhangsan">张三(zhangsan)</p>
<p name="liusanjie">刘三姐(liusanjie)</p>
<p name="zhang-ming">张明(zhang-ming)</p>
<p name="lisan">黎三(lisan)</p>
<p name="sandy lisan">李三(sandy lisan)</p>
<p>无名氏</p>

接下来分别举例讲讲七大属性选择器。

一、E[att],筛选具有att属性的元素

css代码:

p[name]{ color: #f00;}

显示结果:


p[name]

可以看出,只要具有name属性的元素都会被筛选出来,而不具有name属性的“无名氏”颜色没有变化。

二、E[att="val"],筛选att属性值为val的元素

css代码:

p[name="lisan"]{ color: #f00;}

显示结果:


p[name="lisan"]

可以看出,只要name属性值为“lisan”的元素都会被筛选出来,而name属性为“sandy lisan”的元素并不会被筛选。

三、E[att~="val"],属性值为用空格分隔的字词列表,其中一个等于val的元素(包含只有一个值且该值等于val的情况)

css代码:

p[name~=lisan]{ color: #f00;}

显示结果:


p[name~=lisan]

可以看出,除了可以筛选出name属性值为“lisan”的元素,name属性值为“sandy lisan”的元素同样也会被筛选出来。

四、E[att^="val"],筛选att属性值以val开头的元素

css代码:

p[name^=zhang]{ color: #f00;}

显示结果:


p[name^=zhang]

可以看出,只要是name属性值以“zhang”开头的元素都会被筛选出来。

五、E[att$="val"],筛选att属性值以val结尾的元素

css代码:

p[name$=san]{ color: #f00;}

显示结果:


p[name$=san]

可以看出,只要是name属性值以“san”结尾的元素都会被筛选出来。

六、E[att*="val"],筛选att属性值中包含val的元素

css代码:

p[name*=san]{ color: #f00;}

显示结果:


p[name*=san]

可以看出,只要是name属性值中包含“san”的元素都会被筛选出来。

七、E[att|="val"],筛选att属性值以val开头并且其后紧跟着 “-” 的元素

css代码:

p[name|=zhang]{ color: #f00;}

显示结果:


p[name|=zhang]

可以看出,只要是name属性值以“zhang”开头并且其后紧跟着 “-” 的元素都会被筛选出来,所以只有“张明”颜色变红,而“张三”颜色不变。

兼容性:以上七个属性选择器均兼容主流浏览器,IE兼容到IE7,可以放心使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • E[foo]:所有包含foo属性的E元素; E[foo=bar]: 属性foo值为bar的所有E元素; E[foo...
    雷谷阅读 519评论 0 0
  • 可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。CSS 选择器参考手册:[a...
    青春前行阅读 210评论 0 0
  • 选择器 元素选择符 关系选择符 属性选择符 伪类选择符 伪对象选择符 一、元素选择符 通配选择符 (*):选择所有...
    云外之境阅读 1,919评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,816评论 1 92
  • 插入样式的三种方法 内联样式表(行内) 内部样式表(style中) 外部样式表创建一个外部样式表在head中使用l...
    Zd_silent阅读 269评论 0 0