如果我创建一个带有空选择器的元素,例如<div class="">
另一个<div>
由于空白类,我可以以某种方式定位该特定元素吗?
在浏览器检查器中查看“ div class
”
如果它没有创建任何与元素关联的类,它是否会导致任何问题或完全被忽略?
实际上,有一种方法可以选择一个元素class=""
例如为此
<div class=""></div>
利用
div[class=""]
工作演示:http: //jsfiddle.net/JRP4n/
具有空值或 null 值的类似乎与根本没有定义类属性不同。
之所以有效,div[class=""]
是因为它真正针对的是一个空的已定义类。
但正如评论中提到的,一个空的类属性不符合规范,但有趣的是,到目前为止它已经在所有主要浏览器中工作。这也意味着如果任何浏览器决定放弃对它的支持,它“可能”会停止工作。
一般来说,以下适用于所有属性:
除非另有说明,否则 HTML 元素上的属性可以具有任何字符串值,包括空字符串。
在 HTML5中有一个空class
属性是有效的:
该属性(如果指定)必须具有一个值,该值是一组以空格分隔的标记,表示该元素所属的各种类。
一组以空格分隔的标记定义为:
一组以空格分隔的标记是包含零个或多个单词(称为标记)由一个或多个空格字符分隔的字符串,其中单词由一个或多个字符的任何字符串组成,其中没有一个是空格字符。
所以你可以有一个class
包含零标记的属性:
<div class="">This should be valid.</div>
您也可以省略 value:
空属性语法
只是属性名称。该值隐含地是空字符串。
所以你可以有一个class
没有值的属性(它等于一个带有空字符串的值):
<div class>This should be valid.</div>
在 CSS 中,您可以通过以下方式选择这些元素:
[class] {color:red;} /* would select all elements with the class attribute, no matter which value */
[class=""] {color:red;} /* would select only elements with empty or no value */
[class|=""] {color:red;} /* would select elements that have an empty class value, no class value or a class value beginning with "-" */
我们质疑此功能是否有任何用途,我找到了用途。
如果使用 js 从元素中删除所有类名,元素将保留为“元素类”,因此使用 [class=""] {x;} 可以定位您以前从中删除类的元素。
到目前为止,我已经阅读了空类名的行为未指定,请参阅 w3 HTML5 规范,我的经验是浏览器只会忽略空属性。