- 在一次学习别人的代码的时候,看到这种语法,从没有见过,后来在stackoverflow才找到答案,原来是叫css 选择器中的正则表达式。
2、
正则表达式在任何语言中都有使用,只是使用的形式不一样而已
css也是一门语言,也有自己的正则表达式
正则表达式中的一些通用规则:
1 ^ 表示字符串开始位置匹配
2 $表示字符串结束为止匹配
3 *表示字符串任意位置匹配
4 i表示字符串匹配不区分大小写
5 g 表示字符串全局匹配
css属性选择器与正则表达式:
1 [attr=“val”] 选择attr属性值只为val的元素
2[attr]选择有attr这个属性的元素(区分大小写)
3 [attr~=“val”] 选择属性为attr,并且属性值包含val单词的元素(区分大小写)
4 [attr$=“val”]选择属性attr的值结尾为val字符的元素 (区分大小写)
5[attr^=“val”]选择属性attr的值开头为val字符的元素 (区分大小写)
6 [attr*=“val”]选择属性attr的值任意位置包含val字符的元素(区分大小写)
7 [attr|=“val”] 选择属性attr的值开头为val的单词或者为val-单词的元素(区分大小写)div attr=“val”/>
8 [attr*=“val” I]或者[attr*=“val” i]选择属性attr的值任意位置包含val或者VAL或者 Val 或者vAl或者 vaL字符(不区分大小写)的元素
div attr=“Val”/>
目前Chrome, FireFox, Safari已支持i正则,但是ie不支持不区分大小写,别的属性选择器ie7+都都支持
ie7的一些特点:
1 ie7 不认识原生的[checked]属性
在ie7下解析[checked]为[CHECKED]全部大写化,这时候的属性应该是defaultChecked
2 ie7 不认识部分的只用属性选择器:[type=‘checkbox’] { display:none;} 这样定义是不起作用的,需要改成例如:input[type=‘checkbox’] { display:none;} 但是id就可以例如#demo{ display:none;}是起作用的
3 ie7中属性名是严格区分大小写的,在html和css中不区分的
4、原文链接:https://www.cnblogs.com/xiaofenguo/p/6134303.html