多个边界

使用伪元素

您可以将伪元素放置在元素的后面,并使其更大,以其自身的背景产生边框效果,或者使其更小且位于内部(但请确保内容位于顶部)。

需要多个边界的元素应具有自己的边界和相对位置。

.borders {
  position: relative;
  border: 5px solid #f00;
}

次边界添加了伪元素。 通过绝对定位进行设置,并使用上/左/下/右值进行插入。 它也将带有边框,并通过为其赋予负的z-index值而保留在内容下方(例如,保留文本的选择性和链接的可单击性)。 小心负Z索引,如果它在另一个具有其自身背景色的元素内,则可能无法工作。

.borders:before {
  content: " ";
  position: absolute;
  z-index: -1;
  top: 5px;
  left: 5px;
  right: 5px;
  bottom: 5px;
  border: 5px solid #ffea00;
}

CodePen上查看Chris Coyier@chriscoyier )的Pen gbgRqZ

您也可以使用:after伪类来做第三个边框。 需要特别注意的是,Firefox 3(3.6之前的版本)通过支持:after:before ,但不允许它们被绝对定位(因此看起来很奇怪)。

使用轮廓

虽然边框比边框要受限制(无论如何都围绕整个元素),轮廓是额外的自由边框。

.borders {
  border: 5px solid blue; 
  outline: 5px solid red;
}

使用盒子阴影

您可以通过使阴影偏移并使用0模糊来使用盒阴影来产生边框效果。 另外,通过用逗号分隔值,您可以根据需要拥有任意多个“边界”:

.blur {
  box-shadow:
    0 0 0 10px hsl(0, 0%, 80%),
    0 0 0 15px hsl(0, 0%, 90%);
}

请参阅CodePen上的Chris Coyier@chriscoyier )的Pen xbgreX

使用裁剪的背景

您可以使元素的背景在填充之前停止。 这样,元素的普通边框在某种程度上可以看起来像是双重边框。

.borders {
  border: solid 1px #f06d06;
  padding: 5px;
  background-clip: content-box; /* support: IE9+ */
  background-color: #ccc;
}

在输入上:

看到笔上<输入>双边界效应由Chris Coyier( @chriscoyier上) CodePen

翻译自: https://css-tricks.com/snippets/css/multiple-borders/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值