CSS选择器问题

时间:2015-09-02 13:34:08

标签: html css css-selectors

这是我的HTML代码:

<label for="tx_alterneteducationcatalog_subscriberadd[newSubscriber][gender]" 
class="error" id="tx_alterneteducationcatalog_subscriberadd[newSubscriber]
[gender]-error">This field is required.</label>

这是我的css代码:

#tx_alterneteducationcatalog_subscriberadd[newSubscriber][gender]-error{
    display: none !important
}

出于某种原因,浮动权不起作用。即使在萤火虫中也没有表明我放了float:right !important。为什么呢?

4 个答案:

答案 0 :(得分:3)

选择器

#tx_alterneteducationcatalog_subscriberadd[newSubscriber][gender]-error

无效。方括号表示属性选择器,所以你拥有的是

#tx_alterneteducationcatalog_subscriberadd
[newSubscriber]
[gender]

...其次是-error中的语法错误,因为在那里不会出现标识符。

如果转义所有方括号,将正确解析整个ID选择器:

#tx_alterneteducationcatalog_subscriberadd\[newSubscriber\]\[gender\]-error

...但我更喜欢使用属性选择器来匹配ID:

[id="tx_alterneteducationcatalog_subscriberadd[newSubscriber][gender]-error"]

您也可以选择for属性和.error类而不是id,但我不清楚为什么会在{{1}中标记验证错误首先是元素。例如,该文本完全没有说明它正是“标记”的字段;它只是表明它是必需的。

我刚注意到您的label属性中有换行符。如果这是您的实际标记的确切显示方式,那么您的标记无效。话虽如此,您仍然可以使用转义序列id在CSS中对其进行说明(请参阅规范的section 4.3.7):

\a
#tx_alterneteducationcatalog_subscriberadd\[newSubscriber\]\a\[gender\]-error

答案 1 :(得分:1)

因为[]用于表示CSS选择器中的属性,所以除非使用属性选择器匹配字符串,否则不能将它们用作类名或ids:

&#13;
&#13;
*[id="a[b]-c(d)"]{ color: yellow; }
&#13;
<div id="a[b]-c(d)">Selected</div>
&#13;
&#13;
&#13;

不推荐这样做,最好使用,并将它们约束到相关约定。

答案 2 :(得分:0)

我终于使用此代码设法完成了这项工作:

label[for="tx_alterneteducationcatalog_subscriberadd[newSubscriber][gender]"]‌​{
      float: right !important
}

并且存在FTP问题。上传后,它给我一些奇怪的字符。删除后。它的工作原理

答案 3 :(得分:-1)

方括号不是css标识符的有效字符:http://www.w3.org/TR/CSS21/syndata.html#characters