使用空选择器创建元素

时间:2013-06-10 22:56:36

标签: html css html5

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

我可以以某种方式定位该特定元素,因为空白类?

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

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

4 个答案:

答案 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;}可以定位先前从中删除类的元素。