css选择器(2)——属性选择器和基于元素结构关系的选择器

在有些标记语言中,不能使用类名和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>

原文地址:https://www.cnblogs.com/goforwards/p/8457123.html

时间: 2024-08-02 22:00:11

css选择器(2)——属性选择器和基于元素结构关系的选择器的相关文章

结构伪类选择器的误解(nth-of-type,nth-child等等结构伪类选择器应用在孙子辈元素上出现错误)

结构伪类选择器适用的是父元素和子元素之间的选择,以前错误的理解为元素和后代元素 具体例子: html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <ul> <li><a>1</a></li> <li&g

CSS 定位 (Positioning) 属性允许你对元素进行定位。

CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务. 定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的位置.显然,这个功能非常强大,也很让人吃惊.要知道,用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪. 另一方面,CSS1 中首次提出了浮动,它以 Netscape 在 Web 发展初期增加的一个功能为

jQuery的简单用法(jQuery的简介,选择器,属性和css,文档处理)

一.jQuery简介 1.1.  JS库 JavaScript 库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度交互客户端页面, 并且兼容各大浏览器. 1.2.  当前流行的 JavaScript 库有: ① jQuery ,最流行 ② EXT JS,2.0开始收费 ③ Prototype,对js扩展,框架开发. ④ Dojo ⑤ Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使

CSS3新增(选择器{属性选择器,结构伪类选择器,伪元素选择器})

1.属性选择器 属性选择器,可以根据元素特定的属性来选择元素,这样就不用借助 类 或者 id选择器. E [ att ]   选择具有 att 属性的 E 元素   例如:input [ value ] E [ att = 'val' ]   选择具有 att 属性且属性值等于 val 的 E元素 E [ att = 'val' ]   选择具有 att 属性且属性值等于 val 的 E元素 E [ att ^= 'val' ]   选择具有 att 属性且属性值以 val 开头的 E元素 E

表单,音视频,语义化标签与属性选择器,结构伪类选择器,伪元素选择器(按钮禁止点击)

HTML5简介 万维网的核心语言,标准通用标记语言的写一个应用超文本标记语言(HTML)的第五次重大修改,作为新HTML语言,具有新的元素,属性和行为:广义的HTML是包含HTML5本身 + CSS3 + JavaScript,虽然不被所有浏览器所支持,但它是一种趋势: 新增语义化标签 <header></header> <!-- 头部标签 --> <nav></nav> <!-- 导航标签 --> <article>&l

CSS中display属性:block、inline和inline-block的区别

最近写HTML遇到一个问题:我想设置span的宽度和高度,但是在IE9和chrome下总是不起效果.代码和效果图如下: <head> <style> span{ background-color:#43be60; width:100px; height:50px; margin-top:20px; margin-left:20px; } </style> </head> <body> <div style="background-

Css3之高级-1 Css复杂选择器(兄弟选择器 、属性选择器、伪类选择器、伪元素选择器)

一.兄弟选择器 相邻兄弟选择器 - 相邻兄弟选择器匹配指定元素的相邻兄弟元素 - 如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器 - 使用加号(+)作为结合符 通用兄弟选择器 - 通用兄弟选择器匹配某元素后面的所有兄弟元素 - 使用符号(~)作为结合符,即 element1~element2 - 两种元素必须拥有相同的父元素,但是element2不必直接紧随element1 二.属性选择器 属性选择器 - 属性选择器能够将元素附带的属性用于选择器中,从而对带

jquery 选择器(name,属性,元素)大全

jQuery 选择器大体上可分为:基本选择器.层次选择器.过滤选择器.表单选择器. 其中过滤选择器可以分为:简单过滤选择器.内容过滤选择器.可见性过滤选择器.属性过滤选择器.子元素过滤选择器.表单对象属性过滤选择器.选择器是jQuery最基础的东西,下面向大家介绍jquery+%D1%A1%D4%F1%C6%F7/" target="_blank">jquery 选择器的用法 选择器是jQuery的核心组成部分,因为使用jQuery操作DOM时所做的每件事都和选择器密切

CSS学习_属性选择器

CSS选择器参考 [attribute]--选取带有指定属性的元素: [attribute=value]--选取带有指定属性和值的元素: [attribute~=value]--选取属性值中包含指定词汇的元素: [attribute|=value]--选取带有以指定值开头的属性值的元素,该值必须是整个单词: [attribute^=value]--匹配属性值以指定值开头的每个的元素: [attribute$=value]--匹配属性值以指定值结尾的每个的元素: [attribute*=value