在有些标记语言中,不能使用类名和id选择器,于是css2引入了属性选择器。

3.属性选择器

  a)根据是否存在该属性来选择

    如果希望选择有某个属性的元素,例如要选择有class属性的所有h1元素,使其文本为银色,可以这样写:

/*根据单个属性来选择*/
h1[class]{
color:sliver;
}
/*还可以根据多个属性来选择*/
h1[class][id]{
  color:yellow;
}

  b)根据具体属性值来选择 

  <style>

    /*也可以利用多个属性值来选择,第二段变成了红色*/

    p[class='one'][alt='two']{
      color:red;
    }
  </style>
  <body>
    <p class='one'>一个class属性</p>
    <p class='one' alt='two'>一个class属性加上一个alt属性</p>
  </body>

  c)根据部分属性值来选择

  ~=:如果属性能够接受词列表,可以根据其中的任意一个词进行选择。

  *=word1:选择属性值中包含word1的所有元素

  ^=start:选择属性值中以start开头的所有元素

  $=end:选择属性值中以end结尾的所有元素

<style>
p[class~='bar']{
color:red;
}
p[class*='wo']{
color:blue;
}
p[class^='th']{
color:yellow;
}
p[class$='ur']{
color:purple;
}
</style>
<body>
<p class='one bar'>one</p><!--红色-->
<p class='one bard'>与上一段作为对比</p><!--默认颜色-->
<p class='two ok'>two</p><!--蓝色-->
<p class='three'>three</p><!--黄色-->
<p class='four'>four</p><!--紫色-->
</body>

  d)特定属性选择器

    直接看例子:

/*选择src属性等于figure或者以figure-开头的元素*/
img[src|='figure']{
border:1px;
}

4.基于文档结构的选择器

  a)后代选择器——使用空格分隔:

    选择h1中的所有em元素:

h1 em{
color:gray;
}
/*当然并不限于两个选择器,例如:*/
/*将p标签下的所有span标签下的所有em元素的文本颜色设置为灰色*/
p span em{
  color:em
}

  b)子元素选择器——使用>号分隔

   选择h1的子元素而不是后代元素

<style>
h1 > em{
color:red;
}
</style>
<body>
<h1>sjfsl<span><em>不会被选择到</em></span><em>会被选择到</em></h1>
</body>

  c)相邻兄弟(不能是堂兄弟,即拥有相同的父元素)选择器——使用+号分隔 

<style>
p + h1{
color:red;
}
</style>
<body>
<p>第一段</p>
<h1>第二段</h1><!--颜色变红-->
<h1>第三段</h1><!--颜色不变--> </body>

最新文章

  1. 在windows平臺下使用cygwin獲取root用戶權限
  2. phpwind9.0模板制作教程——制作论坛风格
  3. entity.Student@150f3932, entity.Student@1a740c6b 没有实体中的数据
  4. java.lang.UnsupportedClassVersionError
  5. Gender, Genre, and Writing Style in Formal Written Texts
  6. ASP.NET IIS发布WebService成功了,但是不显示参数界面
  7. 完全自制的五子棋人机对战游戏(VC++实现)
  8. BZOJ3401: [Usaco2009 Mar]Look Up 仰望
  9. Delphi使用Windows API函数AnimateWindow实现窗体特效
  10. JS基础知识(五)
  11. SAP RFC函数远程调试跟踪管理软件
  12. hibernate 多对一(级联)操作
  13. windows 注册表讲解
  14. CF1096G Lucky Tickets
  15. 洛谷 P4284 [SHOI2014]概率充电器 解题报告
  16. JAVA随笔(一)
  17. springboot maven
  18. matplotlib删除地图投影上的等值线及风场
  19. L06-Ubuntu系统中部署Vagrant和VirtualBox
  20. Excel数据透视表

热门文章

  1. js锚点
  2. 继续(3n+1)猜想 (25)
  3. cmd - 批量重命名文件
  4. Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) C
  5. Testing Round #12 C
  6. 英文ubuntu中的乱码,输入法问题 集合
  7. javascript简单的表单验证
  8. 517 Super Washing Machines 超级洗衣机
  9. 【solr filter 介绍--转】http://blog.csdn.net/jiangchao858/article/details/54989025
  10. Python读取文件行数不对