[attribute |= value] 与 [attribute ^= value] 的联系与区别:

一、联系:

1. 两个选择器的 attribute 属性值等于 value 时都可以匹配

<div class="first_test">The first div element.</div>
<div class="second">The second div element.</div>
<div class="test">The third div element.</div>
<p class="test">This is some text in a paragraph.</p>
<div class="vue">vuevuevuevue.</div>
div[class^="test"]{
background:#ff0;
}
div[class|="vue"]{
background:#0f0;
}

2. 两个选择器的 attribute 属性值以 value 开头且后面都跟上"-"时都可以匹配

<!-- html 中 class 名改变 -->
<div class="first_test">The first div element.</div>
<div class="second">The second div element.</div>
<div class="test-test">The third div element.</div>
<p class="test">This is some text in a paragraph.</p>
<div class="vue-test">vuevuevuevue.</div>
/* css 不变 */
div[class^="test"]{
background:#ffff00;
}
div[class|="vue"]{
background:#00ff00;
}

它们的结果不变:

二、区别:

1. 两个选择器的 attribute 属性值以 value 开头且后面都不跟上"-",而是随意添上其它字母时,[attribute ^= value] 可以匹配,而 [attribute |= value] 不能匹配

<!-- html 中 class 名改变 -->
<div class="first_test">The first div element.</div>
<div class="second">The second div element.</div>
<div class="testss">The third div element.</div>
<p class="test">This is some text in a paragraph.</p>
<div class="vuess">vuevuevuevue.</div>
/* css 不变 */
div[class^="test"]{
background:#ffff00;
}
div[class|="vue"]{
background:#00ff00;
}

结果也改变:

其它情况下,比如后面添加 "_"等其它符号,和上面一样的结果。

总结:

1. [attribute ^= value] 可以同 attribute 值等于 value,或者 attribute 值以 value 开头后面跟任意字符的情况匹配;

2. [attribute |= value] 可以同 attribute 值等于 value,或者 attribute 值以 value 开头且后面只能紧跟 "-" 字符的情况匹配;

3. 可以说 [attribute |= value] 限定跟严格。只要 [attribute |= value] 能匹配到的情况,[attribute ^= value] 都能匹配到。[attribute |= value] 是 [attribute ^= value] 的"子集"。


[attribute ~= value] 与 [attribute *= value] 的联系与区别:

一、联系:

1. 两个选择器的 attribute 属性值等于 value 时都可以匹配

<div class="test">这是第一个 div 元素。</div>
<div class="second">这是第二个 div 元素。</div>
<p class="test">这是段落中的文本。</p>
div[class*="test"]{
background:#ff0;
}
p[class~="test"]{
background:#0ff;
}

2. 两个选择器的 attribute 属性值包含一个 value 单词时都可以匹配

<!-- html 中 class 名改变 -->
<div class="test ss">这是第一个 div 元素。</div>
<div class="second">这是第二个 div 元素。</div>
<p class="test ss">这是段落中的文本。</p>
/*  css 不变 */
div[class*="test"]{
background:#ff0;
}
p[class~="test"]{
background:#0ff;
}

结果也不变:

二、区别:

1. [attribute ~= value] 选择器的 attribute 属性值 value 后面跟上其它的字符时不能匹配;而[attribute *= value] 选择器的 attribute 属性值 value 后面跟上其它的字符时能匹配;

<!-- html 中 class 名改变 -->
<div class="testss">这是第一个 div 元素。</div>
<div class="second">这是第二个 div 元素。</div>
<p class="testss">这是段落中的文本。</p>
/* css 不变 */
div[class*="test"]{
background:#ff0;
}
p[class~="test"]{
background:#0ff;
}

结果改变:

2. 不仅如此,[attribute *= value] 选择器 attribute 的值 value 的在前面或后面添加任意字符都能匹配,只要有 value 这个字符串就行:

<div class="sstestss">这是第一个 div 元素。</div>
<div class="second">这是第二个 div 元素。</div>
<p class="testss">这是段落中的文本。</p>
div[class*="test"]{
background:#ff0;
}
p[class~="test"]{
background:#0ff;
}

总结:

1. [attribute ~= value] 可以同 attribute 值等于 value,或者 attribute 值有 value 这个单词就能匹配;

2. [attribute *= value] 可以同 attribute 值等于 value,或者 attribute 值有 value 这个单词,或者在 attribute 值的前后添加任意字符,只要其中包含 value 这个字符串都能匹配;

3. 可以说 [attribute ~= value] 限定更严格。只要 [attribute ~= value] 能匹配到的情况,[attribute *= value] 都能匹配到。[attribute ~= value] 是 [attribute *= value] 的"子集"。

[attribute |= value] 与 [attribute ^= value],[attribute ~= value] 与 [attribute *= value] 的联系与区别的更多相关文章

  1. [WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored (webxml attribute is missing from war task, or ignoreWebxml attribute is specified as 'true')

    WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored (webxml attribu ...

  2. JSP中,EL表达式向session中取出一个attribute和JSP脚本访问session取出一个attribute,写法有何不同?(转自百度知道)

    EL表达式使用起来会更简洁,假如session中有一个属性A(attrA),那么EL和jsp脚本取值的方式如下: EL表达式:${ sessionScope.attrA } JSP脚本:<%=s ...

  3. [C#] 剖析 AssemblyInfo.cs - 了解常用的特性 Attribute

    剖析 AssemblyInfo.cs - 了解常用的特性 Attribute [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5944391.html 序 ...

  4. Unity中使用Attribute

    Attribute是c#的语言特性 msdn说明如下: The Attribute class associates predefined system information or user-def ...

  5. 理解Attribute

    注:本文转载自http://kb.cnblogs.com/page/87531/ Attribute与Property 的翻译区别 Attribute 一般译作“特性”,Property 仍然译为“属 ...

  6. C#基础---Attribute(标签) 和 reflect(反射) 应用

    1.Attribute的定义与作用: 公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法和属性等.Attributes和Micros ...

  7. Attribute和自定义Property

    property(属性) attribute(特性) property和attribute的同步 id href value class/className 旧IE的趣事 attribute作为DOM ...

  8. Attribute

    Attribute介绍 咱们来说Attribute,他是一个类,所以自定义的Attribute都是继承自System.Attribute,一般命名的时候都是以Attribute结尾.在使用的时候我们可 ...

  9. 通过声明Attribute属性改变不同类的输出效果

    ConsoleApplication--控制台应用程序 首先创建基类: using System; using System.Collections.Generic; using System.Lin ...

  10. C#学习笔记 -- Attribute

    学习参考: http://www.cnblogs.com/dudu/articles/4449.html http://www.cnblogs.com/anytao/archive/2007/04/1 ...

随机推荐

  1. SQL Serever学习14——存储过程和触发器

    存储过程 在数据库中很多查询都是大同小异,编写他们费时费力,将他们保存起来,以后执行就很方便了,把SQL语句“封装”起来. 存储过程的概念 存储过程是一组SQL语句集,经过编译存储,可以”一次编译,多 ...

  2. LINQ-Group子句、Into子句及orderby子句

    1. Group子句 LINQ表达式必须以from子句开头,以select或Group子句结束,所以除了使用select子句也可以使用Group子句来返回元素分组后的结果.Group子句用来查询结果分 ...

  3. [linux] shell脚本编程-ubuntu创建vsftpd服务

    1.  useradd -s /bin/bash -m 用户名 ,  创建用户,自动创建家目录 , 设置登录shell 2.  echo 用户名:密码 | chpasswd ,非交互式设置密码 3.  ...

  4. jquery appendTo用法

    $("#top_cartWarp").appendTo($("#top_main_right")).css('position','relative').css ...

  5. 基于Spark GraphX计算二度关系

    关系计算问题描述 二度关系是指用户与用户通过关注者为桥梁发现到的关注者之间的关系.目前微博通过二度关系实现了潜在用户的推荐.用户的一度关系包含了关注.好友两种类型,二度关系则得到关注的关注.关注的好友 ...

  6. HDU 2199 (二分法)

    主要思想就是两端逼近,最后得到结果,0MS #include <iostream> #include <cstdlib> #include <cstdio> #in ...

  7. JSP总结摘要

    一 概述 1.什么是JSP? Java Server Pages,服务器端负责页面展示的技术,可以嵌套java语言,以取代使用Servlet生成页面的方式,底层被转化为Servlet. 二 路径 1. ...

  8. drupal7 jquery脚本忽然不运行

    jquery脚本经过调试,确认没有错误,但是最最近一次,调整了引入的次序,目的是方便我识别哪些js是我自己写的,哪些是前端给的,便于后期维护时,迅速找到自己写的部分. 调整引入次序前: 调整后(调整后 ...

  9. Vue.js小案例(2)

    即时搜索 这个例子主要应用了vue.js的自定义过滤器,可以通过Vue.filter()注册一个全局过滤器,具体用法可以参考这里,vue.js也提供了一些内置过滤器. CSS代码: [v-cloak] ...

  10. 在linux中给你的应用做压力测试

    在linux中给你的应用做压力测试 作者: 立地 邮箱: jarvin_g@126.com QQ: 511363759 一.webbench 1.在Ubuntu中安装webbench —支持get,h ...