温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

CSS中怎么实现多重边框效果

发布时间:2021-08-07 17:01:24 来源:亿速云 阅读:134 作者:Leah 栏目:web开发

本篇文章为大家展示了CSS中怎么实现多重边框效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1 利用描边(outline)属性

方案1利用描边(outline)属性结合border属性实现双重边框。此方案实现简单,兼容性好,能兼容除IE6,7以外的浏览器。

1.1 核心代码

.borders {
  border: solid 6px #fff;
  outline: solid 6px #888;  
}

1.3 说明

  • 只能实现双重边框

  • 边框样式灵活,可以实现虚线等样式的边框

  • 描边在盒模型之外,会与外部元素发生重叠

2 利用额外的DIV

方案2利用额外的DIV嵌套的方式实现多重边框。这也是唯一不存在兼容性问题的方案。

2.1 核心代码

.outer {
    border: solid 6px #888;
    background: #fff;
}
.inner {
    background: #222;
    margin: 6px;
}

2.3 说明

  • 兼容性好

  • 可以实现多重边框,虚线边框等样式

  • 需要额外的DIV元素,增加了代码复杂性

3 利用伪元素

方案3利用伪元素(:before)的方式实现双重边框。实现代码略复杂,属于hack的实现方式,不推荐。

3.1 核心代码

.borders {
    border: solid 6px #fff;
    position: relative;
}
.borders:before {
    content: "";
    position: absolute;
    top: -12px;
    left: -12px;
    right: -12px;
    bottom: -12px;
    border: solid 6px #888;
}

3.3 说明

  • IE6,7,8不兼容

  • :after也可以

  • 同时应用:before:after可以实现三重边框

4 利用border-image属性

方案4利用CSS3border-image属性实现多重边框。实现方法简单,但需要制做一个额外的边框图片,兼容性较差。

4.1 核心代码

.borders {
    border: solid 12px transparent;
    border-image: url('borders.jpg') 12 12 12 12 repeat;
}

4.3 说明

本例中,利用border-image-slice将边框图片分成如下图所示的9个区域:

其中包括四个角(1,2,3,4),四条边(5,6,7,8)以及中间区域(9)。

repeat表示四条边都在相应的边框上重复的平铺。

5 利用box-shadow属性

方案5利用box-shadow属性实现多重边框。方案5是最简单,最直接的实现多重边框的方式。只有一行代码就可以实现多重边框效果。利用了阴影(box-shadow)实现边框多少有一些hack的味道。

5.1 核心代码

.borders {
    box-shadow: 0 0 0 6px #fff, 0 0 0 12px #888;
}

5.3 说明

为了用阴影模拟边框,本例中使用了两个阴影效果,设置偏移值和模糊值为0,并适当地设置阴影的尺寸,从而实现了双重边框的效果。因为一个阴影重叠在另一个阴影之上,第二个阴影的尺寸要设置成第一个阴影尺寸的两倍。关键部分是将模糊值设成0,从而产生像边框一样的纯色阴影,看起来和边框一样。

和描边(outline)属性一样,box-shadow属性可能会和周边元素发生重叠,因此要适当地设置元素的外边距。box-shadow兼容性一般。

上述内容就是CSS中怎么实现多重边框效果,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

css
AI