【发布时间】:2013-01-29 14:21:13
【问题描述】:
我有一个图像,当您将其悬停时,它会从菜单中向上滑动。因为它隐藏在菜单下,所以我想通过在底部添加暗淡来给图像底部一点深度。我认为实现这一目标的最佳方法是使用伪元素。我不太关心 IE 支持,因为这是一个小细节。
所以,这就是我所拥有的:
.header-section .trygg-ehandel-icon {
position: absolute;
top: 45px;
right: 280px;
z-index: 0;
display: block;
// Stripped out some transition style here
}
// Here's where the cool stuff begins!
.header-section .trygg-ehandel-icon::after {
position: absolute;
top: 0px; left: 0px;
height: 20px; width: 20px;
display: block;
content: '.';
z-index: -999999px;
background: red;
}
首先,我不确定在“之后”之前是使用双冒号还是单冒号。我一直用一个,但最近我注意到有人用两个,那该怎么办?两者似乎都有效!
你可以在这里看到它的实际效果:http://goo.gl/RupQa
这是标题菜单上方弹出的黄色徽标。为什么我在图像上方看不到 20x20 的红色框?父级 (.trygg-ehandel-icon) 是绝对定位的,所以伪元素应该相对于它显示,对吧?
我已经尝试解决这个问题一个多小时了,有什么建议吗?
【问题讨论】:
-
+1 用于美观的网站设计。
-
"首先,我不确定是使用双冒号还是单冒号" 如果您不关心 IE8,那么请使用双冒号,这样您就知道您正在使用伪元素(这就是双冒号的用途)。单冒号只能用于 IE8,因为它不理解伪元素的双冒号。
-
@BoltClock 你是对是错:w3.org/wiki/CSS/Selectors#Pseudo-classes。双冒号仅用于
first-line、first-letter、before和after。 -
@qwerty:差不多,虽然单冒号是以前唯一的选择;双冒号仅在 CSS3 中引入以区分伪元素和伪类。你说得对 - IE8(非常!)专注于 CSS2.1,到处都是 CSS3,所以有人可以说它故意忽略了规范,虽然很奇怪@987654330 @ 和高级属性选择器出现。
-
stackoverflow.com/questions/5843035/… 显然,使用带有
img标签的::before和::after伪元素在大多数浏览器中不起作用。即使是最简单的例子,我也完全无法让它在我的测试中工作。请注意,该链接中有一些被黑的变通办法,以及关于为什么它不能开箱即用的技术解释。
标签: css pseudo-element