如果我创建一个带有空选择器的元素,例如<div class="">
和另一个<div>
我可以以某种方式定位该特定元素,因为空白类?
在浏览器检查器中查看“div class
”
如果它没有创建任何与该元素相关联的类,它是否会导致存在任何问题或完全被忽略?
答案 0 :(得分:1)
实际上,有一种方法可以选择class=""
例如对于此
<div class=""></div>
使用
div[class=""]
工作演示: http://jsfiddle.net/JRP4n/
似乎具有空值或空值的类与根本没有定义类属性的类不同。
所以div[class=""]
有效,因为它真正针对一个空的定义类。
但正如评论中所提到的,空类属性不符合规范,但有趣的是它到目前为止在所有主流浏览器中都有效。它还意味着如果任何浏览器决定放弃对它的支持,它“可能”停止工作。
答案 1 :(得分:0)
据我所知,对于空类名see w3 HTML5 spec未指定行为,我的经验是浏览器只会忽略空属性。
答案 2 :(得分:0)
通常,以下内容适用于所有attributes:
除非另有说明,否则HTML元素的属性可能包含任何字符串值,包括空字符串。
在HTML5中有一个空的class
attribute:
如果指定了属性,则该属性必须具有一个空格分隔标记集的值,表示该元素所属的各种类。
set of space-separated tokens定义为:
一组空格分隔的标记是一个包含零个或多个单词(称为标记)的字符串,由一个或多个空格字符分隔,其中单词由一个或多个字符的任意字符串组成,这些都不是空格字符。
因此,您可以拥有包含零令牌的class
属性:
<div class="">This should be valid.</div>
你也可以omit the 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 "-" */
答案 3 :(得分:0)
我们质疑是否可以使用此功能,我找到了一个用途。
如果使用js从元素中删除所有类名,则元素将保留为“元素类”,因此使用[class =“”] {x;}可以定位先前从中删除类的元素。