【发布时间】:2015-05-15 03:47:31
【问题描述】:
我换了一台新电脑,突然间 CSS :after 和 :before 选择器不再工作。
真正奇怪的是,我之前在另一台计算机上添加的:before/:after 选择器在我的新计算机上完全正常显示。但是我现在添加的任何新代码都不会显示,即使我将旧代码复制并粘贴到新 div 上也是如此。
比如这个:
html
<div id="wtf"></div>
css
#wtf {
width: 10px;
height: 20px;
background: red;
}
#wtf:after {
content: "";
position: absolute;
left: 100px;
top: 10px;
width: 20px;
height: 20px;
background: blue;
}
此代码在复制并直接粘贴到小提琴中时有效:(http://jsfiddle.net/rLnrtu0x/)但我的本地浏览器上只显示红色框。无论我做什么,蓝色框都不会显示。所有其他 CSS 行为正常。
有人知道我做错了什么吗?
在 Ubuntu 14.04 上的 Mozilla 35.0.1 和 Chrome 42.0.2311.152(64 位)上测试。我不能在我的旧电脑上重新测试它,因为它坏了,但我以前从未遇到过:before/:after 选择器的问题。
更新
我刚刚和我的检查员一起找到了选择器。它们实际上正常显示,但它们的定位是相对于html,而不是它们的父 div。同样,使用我在计算机更改之前添加的代码,:before/:after 选择器相对于父 div 定位。但是新代码,即使它是复制粘贴的,也会相对于html 定位选择器。为什么会这样?
【问题讨论】:
-
您可能做错了什么。因为这不太可能只发生在你身上。
-
什么版本的“Mozilla”?
-
您需要进行所谓的“故障排除”。这意味着系统地提出关于可能问题的假设,并一一测试它们。例如,在这种情况下,将编辑后的文件复制回之前的计算机,看看它是否有效。在两台机器上尝试不同的浏览器和版本。查看控制台。运行 CSS linter。
-
@Mr_Green 这就是问题所在。但我看不出我可能做错了什么,因为小提琴中的代码实际上是复制和粘贴的。
-
@misterManSam 我在上面添加了 mozilla 和 chrome 版本。
标签: html css pseudo-element