当ID为数字时,Div不会出现

时间:2015-09-02 01:43:54

标签: html css attributes css-selectors

当我将数字设为div idclass时,css中指定的图像不会显示。

(但是当我写了一封信时,确实如此)

我需要将div idclass作为一个数字(它不能是一个字母)

我该怎么做?

<div id="88"></div>

<style>
#88 {
  content: url('http://bithumor.co/144115662788085.gif');
  width: 30px;
  height: 30px;
  display: inline;
  z-index: 999999;
  position: absolute;
}

</style>

3 个答案:

答案 0 :(得分:2)

您不能使用数字作为ID HTML 4.它必须以字母开头。我可以建议你制作类似a88的东西,然后你正在做的任何代码都会在开头删除a。如果您有关于您要做什么的更多详细信息,我们可以提供更有帮助的答案。

获得doctype的有效ID后,将显示背景图片。

答案 1 :(得分:2)

  1. 如果没有伪选择器::after::before,则无法使用Content属性。请改用background属性。
  2. 使用[id='88']#\38\38访问元素,其中\3正在转义数字。
  3. #\38\38 {
      background: url('http://placehold.it/300x300');
      width: 300px;
      height: 300px;
      display: block;
      z-index: 999999;
    }
    <div id="88">Test</div>

    其他信息:

    感谢@ torazaburo的评论。

      

    如果浏览器支持HTML5,则该ID有效,否则为   浏览器不符合要求。它可能是分裂头发,但CSS没有   遵守有关命名的HTML规则。那么问题就在于此   HTML ID无效,除非转义

    ,否则CSS无效

    ID属性可以采用以下文章中提到的任何形式,即W3C Recommendation。

    Reference

      

    ID可以采取什么形式没有其他限制;在   特别是,ID可以只包含数字,以数字开头,开始   带下划线,仅包括标点符号等。

答案 2 :(得分:2)

其他答案指出了使用数字ID的问题。它们在理论上是正确的,但实际上所有现代浏览器都支持数字ID。因此,例如,getElementById('88')将起作用。

问题不在于HTML,而在于CSS。 CSS具有 CSS标识符的概念, 与HTML ID的规则相同。使用无效CSS标识符作为ID(#88)的规则无效,因此会被忽略。这是,因为它是无效的HTML ID;这是因为它是一个无效的CSS标识符。

因此,正如@Manoj Kumar正确指出的那样,您可以通过以#\38\38形式转义ID来解决此问题。

对于包含冒号的类名,可以使用同样的技巧。你可能会说,这是无效的。从技术上讲可能是这样,但它在HTML中运行良好。问题是如何逃避结肠;在这种情况下,您可以使用单个反斜杠执行此操作,如a\:b

关于您的示例的另一个令人困惑的事情是,您使用content属性的选择器不是::before::after伪选择器。那也是&#34;无效&#34;。你应该解决它。我决不会依赖于所有浏览器的工作。然而,事实证明,它至少在Chrome中有用(但不是在FF中)。

同样,您为content属性赋予的值的语法无效。正确的值包括字符串或attr()语法。所以你也应该解决这个问题。这是非标准的。它只能偶然发挥作用。您应该使用background-image代替。