2016-11-20 45 views
4

我想为以空格开头的类创建CSS选择器,但我不知道如何。例如:<table class=" example">…</table>针对以空格开头的类值

+0

你为什么要这样做(你不能)? – 2016-11-20 02:34:39

+1

@torazaburo:可能没有多少选择。有关可能的原因,请参阅cale_b对Michael_B答案的评论。 – BoltClock

回答

3

对于定位目的,类属性值的任何前导或尾随空格都是没有意义的。这个:class=" example"相当于这个:class="example"

没有必要在空间中考虑因素。

从HTML 5规格:

2.4.7 Space-separated tokens

含有一组空间分隔的标记可以具有领先 或尾随空格字符的字符串。

但是,空格字符是必需的,用于分隔类属性中的多个值。

3.2.5.7 The class attribute

的属性时,如果指定,则必须有一个值,该值是一组表示该 元素属于各种类别 空格分隔的标记。

+1

当你看到类似的东西时,通常HTML(包括类属性)就是这样,因为它是由服务器端脚本生成的,该脚本旨在处理和“粘合”多个类,并且编码器没有打扰清理前/后空白。 –

3

CSS classnames是单个单词;空格只是分隔不同的类名。

你想要.example

+0

因此,原始HTML类中的空白并不重要,@SLaks? –

+1

虽然我明白你的意思,但“单词”一词并不完全清楚。可能会扩展一点(连字符,下划线等) –

+0

@Dumb Noob:属性开始和结束处的空白不是。 – BoltClock

3

对于类选择器而言,类属性值的开始和结束处的空白不重要。对于.example类选择器,class=" example"是有效的HTML并且等效于class="example",class="example "甚至class=" example "

因此,您正在寻找的选择器只是.example

选择器的唯一区别是属性选择器:[class~="example"]将匹配所有给出的示例,但[class="example"]只匹配class="example"。 (这意味着,如果你有一些深奥的理由,只有当它的类属性有一个前导空格时才能匹配元素,你可以使用[class^=" example"][class=" example"],但你很可能只是想要一个普通的类选择器。)