html - 具有负轮廓偏移的 CSS 多轮廓

标签 html css

我以图片为背景,想得到多个内轮廓的效果。 轮廓应该是纯白色 2px,但在不同的位置——比如 -4px、-8px、-12px。 目标是获得 2 个以上的轮廓。

我知道我可以制作 box-shadow 和 outline 以获得双轮廓,但注意到我无法附加到具有不同 outline-offset 的 div 3 类 - 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; }

在这个例子中,只有蓝色的内部轮廓,但现在是红色和黄色。如何解决这个问题?

------------编辑----------------

所有答案都很好。我必须承认我尝试处理 afterbefore 但我对它还不够熟悉。 Box-sizing: border-box 也很重要。

最佳答案

为了完成@Mr.Alien demo/answer ,我会使用 border's pseudo 以获得更好的兼容性。

    .effect {
        height: 200px;
        width: 200px;
        outline: 1px solid #000;
        position:relative;/* pick as reference for pseudo absolute */
        -moz-box-sizing:border-box; /* keep box within size given */
        box-sizing:border-box;
    }
/* size pseudo within from coordonates */
    .effect:before {
        content:"";
        top:2px;
        left:2px;
        right:2px;
        bottom:2px;
        border: green 2px solid;
        position: absolute;
    }
    .effect:after {
        content:"";
        top:6px;
        left:6px;
        right:6px;
        bottom:6px;
        border: red 2px solid;
        position: absolute;
    }

DEMO

关于html - 具有负轮廓偏移的 CSS 多轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23109613/

相关文章:

html - 在 bootstrap 3 中使背景元素成为绝对元素?

html - Android 设备的媒体查询行为

javascript - 输入检查更改按钮类

php - Codeigniter 防止重复数据

jquery - 使用 Jquery 为 $this.children 制作动画

JavaScript 不会隐藏文本,只会隐藏图像

javascript - 如何防止元素保持活跃?

html - 如何防止在 HTML 元素的新行中只有一个悬词?

html - 使用 5 个圆弧创建具有星形效果的圆(图片)

javascript - 在指令中单击按钮时打开 ngDialog