我得到的图像作为背景,并希望得到的效果,多个内部轮廓.轮廓应该是纯白色2 px,但在不同的位置-说-4px,-8px,-12px。目标是获得2个以上的轮廓。
我知道我可以使box-shadow和outline得到double outilne,但注意到我不能附加到div 3类与不同的outline-offset - div只应用了最后一个类。
我的代码:
<div class="imgfield effect1 effect2 effect3"> </div>
CSS示例:
.imgfield { background: url(someimage.jpg); ... width, height etc. }
.effect1 { outline: yellow 2px solid; outline-offset: -4px; }
.effect2 { outline: red 2px solid; outline-offset: -8px; }
.effect3 { outline: blue 2px solid; outline-offset: -12px; }
在这个例子中,只有蓝色的内部轮廓,但现在是红色和黄色。如何解决这个问题?
-----------编辑-----------------
所有的答案都是好的。我必须承认我尝试处理after
和before
,但我对它不够熟悉。Box-sizing: border-box
也很重要。
3条答案
按热度按时间1l5u6lss1#
完成@先生外星人演示/答案,我会使用边界的伪更好的兼容性。
DEMO
20jt8wwn2#
使用伪元素如何?在这里,我使用了一个
class
和一个元素,但是我定位了伪元素i。e:before
和:after
使用position: absolute;
。Demo
如果你对元素重叠有任何问题,你可以使用
z-index
。lh80um4z3#
清理代码。