当我将数字设为div id
或class
时,css中指定的图像不会显示。
(但是当我写了一封信时,确实如此)
我需要将div id
或class
作为一个数字(它不能是一个字母)
我该怎么做?
<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>
答案 0 :(得分:2)
您不能使用数字作为ID HTML 4.它必须以字母开头。我可以建议你制作类似a88的东西,然后你正在做的任何代码都会在开头删除a。如果您有关于您要做什么的更多详细信息,我们可以提供更有帮助的答案。
获得doctype的有效ID后,将显示背景图片。
答案 1 :(得分:2)
::after
或::before
,则无法使用Content属性。请改用background属性。[id='88']
或#\38\38
访问元素,其中\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。
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
代替。