[attr="val" i] 必须将小写i紧贴右引号写在]前,仅对当前属性值ascii字母忽略大小写,ie和xml/xhtml不支持,且无法处理空格等非字母字符。

用 [attr="val" i] 忽略大小写,不是 [attr="val"] i
必须把 i 写在右括号 ] 前面、紧贴引号内容,中间不能有空格或换行。写成 [type="submit" i] ✅,写成 [type="submit"] i 或 [type="submit" i ] ❌——浏览器直接丢弃整条规则,不报错也不生效。
i 只对当前属性选择器起作用,不影响前面的标签名或后面的类名;它只处理 ASCII 字母(a–z / A–Z),对中文、数字、符号无影响;i 必须是小写,I 无效。
[attr~="val"] 不是大小写忽略,是空格分词匹配
很多人误以为 [class~="btn"] 能绕过大小写问题,其实它只是把属性值按空格拆开、逐个比对单词,仍严格区分大小写:class="Btn primary" 不会匹配 [class~="btn"]。
-
[class~="btn"]→ 匹配class="btn"、class="btn primary"、class="primary btn secondary" -
[class~="Btn"]→ 才匹配class="Btn",但不会匹配class="btn" -
[type~="submit"]等价于[type="submit"],因为type是单值属性,没空格可分,加~没实际意义
IE 不支持 i 标志,现代浏览器都支持
Edge 16+、Chrome、Firefox、Safari 均支持 [attr="val" i];IE 完全不识别,遇到带 i 的选择器会整个规则失效。若项目需兼容 IE,只能靠 JS 统一标准化属性值(比如 el.setAttribute('data-role', el.getAttribute('data-role').toLowerCase())),再用标准写法匹配。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
注意:XML/XHTML 文档中 i 无效,因为 XML 本身区分大小写,CSS 规范不在此类文档中启用该标志。
真正“忽略大小写”的前提是属性值干净
哪怕用了 i,如果服务端模板输出了 type=" Text "(前后带空格)或 JS 动态设置时没 trim(),[type="text" i] 依然不匹配——因为空格是值的一部分,而 i 不处理空格。
所以关键不在选择器多“聪明”,而在源头控制:data-id 尽量不用拼接字符串;class 用单一语义值而非 class="Btn-lg Active" 这种混合写法;动态设置属性前先 .trim() 和 .toLowerCase()。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










