下划线和破折号不可见

时间:2014-04-10 11:16:40

标签: html css3

我正在使用Zend的SocialEngine4应用程序,我的css是这样的:

#1_1_17-element {
  border: 1px solid #FF0000;
  height: 215px;
  width: 200px;
}

但它不影响页面上的预期元素。

Here's an example of the selector not working

2 个答案:

答案 0 :(得分:1)

urbz有一个有趣的答案。无论技术上是否允许它们,下划线和连字符通常用于CSS类和生活记忆中我从来没有遇到过这个问题。例如,相当受欢迎的BEM pattern强制要求使用下划线和连字符来描述CSS类中的语义结构。

ID更具限制性。作为Mathias Bynens elucidates in this excellent article,HTML规范最多4.01要求ID 必须以字母开头(不是数字,正如您当前使用的那样) - 而且我已经遇到了这个问题过去。 HTML5已删除此任意限制。

As you can see in this fiddle,在ID前面加上一个字母(在HTML和CSS中)使样式有效:

#1_1_17-element { /* won't work */ }
#e1_1_17-element { /* will work */ }

答案 1 :(得分:-1)

[已更新] 建议不要使用ID名称中的下划线,CSS2不支持

  

...“CSS2,1998年出版,也禁止在类和ID名称中使用下划线。”

参见参考:https://developer.mozilla.org/en-US/docs/Underscores_in_class_and_ID_Names

我建议你重命名它,也许更类似于这个(没有_):

#global-page-user-signup-fields form #a1-1-17-element {
  border: 1px solid #FF0000;
  height: 215px;
  width: 200px;
}