1

如果我创建一个带有空选择器的元素,例如<div class="">另一个<div>

由于空白类,我可以以某种方式定位该特定元素吗?

在浏览器检查器中查看“ div class

如果它没有创建任何与元素关联的类,它是否会导致任何问题或完全被忽略?

4

4 回答 4

1

实际上,有一种方法可以选择一个元素class=""

例如为此

<div class=""></div>

利用

div[class=""]

工作演示:http: //jsfiddle.net/JRP4n/

具有空值或 null 值的类似乎与根本没有定义类属性不同。

之所以有效,div[class=""]是因为它真正针对的是一个空的已定义类。

但正如评论中提到的,一个空的类属性不符合规范,但有趣的是,到目前为止它已经在所有主要浏览器中工作。这也意味着如果任何浏览器决定放弃对它的支持,它“可能”会停止工作。

于 2013-06-10T23:55:54.943 回答
0

一般来说,以下适用于所有属性

除非另有说明,否则 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 "-" */
于 2013-06-11T08:42:11.213 回答
0

我们质疑此功能是否有任何用途,我找到了用途。

如果使用 js 从元素中删除所有类名,元素将保留为“元素类”,因此使用 [class=""] {x;} 可以定位您以前从中删除类的元素。

于 2013-06-16T15:36:00.677 回答
0

到目前为止,我已经阅读了空类名的行为未指定,请参阅 w3 HTML5 规范,我的经验是浏览器只会忽略空属性。

于 2013-06-10T23:05:52.993 回答