【发布时间】:2011-10-27 06:17:40
【问题描述】:
我以前从未尝试过。我创建了一个包含两个图标的图像精灵。每个图标的宽度和高度均为 26 像素。所以精灵是 26x52px。
我有一个元素位于 div.something 或 div.anything 中。根据它所在的班级,我想在左侧或右侧添加一个角帽。
因此,我将 .element 相对定位,将 :before 伪类应用于 img 并将其绝对定位,高度和宽度为 26px,因此只有一个精灵图标适合。我还应用“溢出” :hidden" 以隐藏精灵上的第二个图标。
.element {
position:relative;
}
.element:before{
content: url("../images/sprite.png");
position: absolute;
height:26px;
width:26px;
overflow:hidden;
}
.something .element:before {
top: -2px;
left: -2px;
}
anything .element:before {
top: -28px;
right: -2px;
}
这适用于我在精灵中使用第一个顶部图标的左角。 但是现在我想知道如何在精灵中只显示“anything .element”的第二个图标。
所以实际上“蒙版”应该定位在-2px,-2px,但是里面的精灵img应该从-26px开始,所以第二个图标会显示出来。
我现在正在做的 css 是否可以做到这一点?
【问题讨论】:
-
你能展示一个jsfiddle.net 演示你目前所拥有的吗?据我所知,
:before不适用于img元素:jsfiddle.net/thirtydot/CWXS3。所以,你的问题相当混乱。 -
将我的问题编辑为 .element 而不是 img。只是想让它更容易理解。不知道它不适用于 img
-
嗯,这是有道理的。你得到的答案是正确的。读一读:tinyurl.com/so-hints。我喜欢这部分:
"Don't give me code which is "something like" the real code but which clearly isn't the real code".
标签: css sprite css-sprites pseudo-class