我想为网页上的元素添加一些亮点。如果我不必向页面添加额外的 html,我会更愿意。我希望图像出现在元素的前面而不是后面。最好的方法是什么?
原文由 Himmators 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想为网页上的元素添加一些亮点。如果我不必向页面添加额外的 html,我会更愿意。我希望图像出现在元素的前面而不是后面。最好的方法是什么?
原文由 Himmators 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答839 阅读✓ 已解决
4 回答913 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答812 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答2.5k 阅读
要实现“前景图像”(无需额外的 HTML 代码),您可以使用伪元素(
::before
/:before
) 加上 CSSpointer-events
需要最后一个属性,以便用户可以实际单击图层“就好像它不存在一样”。这是一个示例(使用 alpha 通道为 50% 的颜色,以便您可以看到真正的元素实际上可以被聚焦)。 http://jsfiddle.net/JxNdT/
附言。我选择了
::before
伪元素,因为这自然会导致正确的定位。 If I pick::after
, then I have to addposition:relative;
to the real element (#cont
), andtop:0;left:0;
to the pseudo-element (::after
)。聚苯硫醚。要 在没有固定大小的元素上获得前景效果,需要一个额外的元素。此包装器元素需要
position:relative;display:inline-block;
样式。将伪元素的width
和height
设置为—,伪元素的100%
和height将拉伸到wrapper元素的width和height。演示:http: //jsfiddle.net/JxNdT/1/ 。