前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【基础】CSS实现多重边框的5种方式

【基础】CSS实现多重边框的5种方式

原创
作者头像
毛瑞
修改于 2018-05-04 15:49:54
修改于 2018-05-04 15:49:54
1.9K7
举报
文章被收录于专栏:三十课三十课

简言

目前最优雅地实现多重边框的方案是利用CSS3box-shadow属性,但如果要兼容老的浏览器,则需要选择其它的方案。本文简要地列举了几种多重边框的实现方案,大家可以根据项目实际及兼容性要求等情况,选择最适合的实现方案。

CSS多重边框
CSS多重边框

1 利用描边(outline)属性

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

1.1 核心代码

代码语言:txt
AI代码解释
复制
.borders {
  border: solid 6px #fff;
  outline: solid 6px #888;  
}

1.2 演示程序

利用outline实现双重边框
利用outline实现双重边框

演示程序

1.3 说明

  • 只能实现双重边框
  • 边框样式灵活,可以实现虚线等样式的边框
  • 描边在盒模型之外,会与外部元素发生重叠

2 利用额外的DIV

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

2.1 核心代码

代码语言:txt
AI代码解释
复制
.outer {
    border: solid 6px #888;
    background: #fff;
}
.inner {
    background: #222;
    margin: 6px;
}

2.2 演示程序

利用额外的DIV嵌套实现双重边框
利用额外的DIV嵌套实现双重边框

演示程序

2.3 说明

  • 兼容性好
  • 可以实现多重边框,虚线边框等样式
  • 需要额外的DIV元素,增加了代码复杂性

3 利用伪元素

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

3.1 核心代码

代码语言:txt
AI代码解释
复制
.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.2 演示程序

利用伪元素实现双重边框
利用伪元素实现双重边框

演示程序

3.3 说明

  • IE6,7,8不兼容
  • :after也可以
  • 同时应用:before:after可以实现三重边框

4 利用border-image属性

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

4.1 核心代码

代码语言:txt
AI代码解释
复制
.borders {
    border: solid 12px transparent;
    border-image: url('borders.jpg') 12 12 12 12 repeat;
}

4.2 演示程序

利用border-image属性实现双重边框
利用border-image属性实现双重边框

演示程序

4.3 说明

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

border-image-slice示例图片
border-image-slice示例图片

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

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

5 利用box-shadow属性

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

5.1 核心代码

代码语言:txt
AI代码解释
复制
.borders {
    box-shadow: 0 0 0 6px #fff, 0 0 0 12px #888;
}

5.2 演示程序

利用box-shadow属性实现多重边框
利用box-shadow属性实现多重边框

演示程序

5.3 说明

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

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

6 参考

MDN border-image

MDN box-shadow

Multiple Borders with CSS

CSS-tricks Multiple Borders

7 结语

本文简述了5种多重边框的实现方式,各有优缺点,大家要根据实际情况进行取舍。

文中所述部分文字及代码汇编于网络。因时间不足,能力有限等原因,存在文字阐述不准及代码测试不足等诸多问题。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
7 条评论
热度
最新
感谢分享!看起来效果还是非常不错的。
感谢分享!看起来效果还是非常不错的。
回复回复点赞举报
希望作者就就div布局可以写一篇文章,对div布局很迷
希望作者就就div布局可以写一篇文章,对div布局很迷
回复回复点赞举报
厉害
厉害
回复回复点赞举报
我选择box-shadow
我选择box-shadow
回复回复点赞举报
已收藏,谢谢分享
已收藏,谢谢分享
回复回复点赞举报
很好
很好
回复回复点赞举报
不错,解析的很深度
不错,解析的很深度
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
CSS实现多重边框的5种方式
目前最优雅地实现多重边框的方案是利用CSS3 的 box-shadow属性,但如果要兼容老的浏览器,则需要选择其他的方案。本文简要地列举了几种多重边框的实现方案,大家可以根据项目实际及兼容性要求等情况,选择最适合的实现方案。
Javanx
2019/09/04
1.4K0
CSS实现多重边框的5种方式
01-移动端开发教程-CSS3新特性(上)
根据文章内容总结撰写摘要,以json格式返回。
老马
2017/12/20
1.6K0
CSS实现8种炫酷按钮
在各种UI组件库大行其道的今天,大家已经很少自己用CSS去实现一些效果了,久而久之CSS的水平也越来越退步,所以有空还是得练练。今天给大家分享8种炫酷按钮的CSS实现。
MudOnTire
2019/08/05
3.8K0
CSS实现8种炫酷按钮
CSS 边框秘探
相信你以前肯定尝试过 CSS 中的半透明颜色,比如 rgba() 和 hsla()。
用户8921923
2022/10/24
2.2K0
CSS 边框秘探
【CSS】599- 9个很棒的CSS边框技巧
如果您是前端开发人员,那么几乎每天都会使用CSS边框。我发现了一些可以在您的项目中使用的有用的技巧。
pingan8787
2020/05/26
2.3K0
CSS3-边框和背景
CSS3中边框和样式得到了增强。例如:可以创建圆角边框,使用图像边框,为元素创建阴影。
奋飛
2019/08/15
1.4K0
第93天:CSS3 中边框详解
其中边框圆角、边框阴影属性,应用十分广泛,兼容性也相对较好,具有符合渐进增强原则的特征,我们需要重点掌握。
半指温柔乐
2018/09/11
9050
第93天:CSS3 中边框详解
CSS魔法堂:Box-Shadow没那么简单啦:)
前言  说起box-shadow那第一个想法当然就是用来实现阴影,其实它还能用于实现其他好玩的效果的,本篇就打算说说box-shadow的那些事。 二话不说看效果 3D小球 <style type
^_^肥仔John
2018/01/18
1.3K0
CSS魔法堂:Box-Shadow没那么简单啦:)
CSS3边框与圆角
1. CSS3 圆角 border-radius 属性 一个最多可指定四个border -*- radius属性的复合属性,这个属性允许你为元素添加圆角边框! 语法:border-radius: 1-4 length|% / 1-4 length|%; 兼容性:IE9+、FireFox4+、Chrome、Safari5+、Opera 多值 四个值:左上,右上,右下,左下 三个值:左上,右上和左下,右下 两个值:左上和右下,右上和左下 一个值:四个圆角值相同 扩展属性 bord
Leophen
2019/08/23
1.5K0
CSS3边框
1、border-radius 圆角是做网页永远绕不过的话题,以前基本是通过背景图片做的,有了CSS3后可以使用简单的属性搞定,可以通过border-radius设置元素的圆角半径。 border-radius: 5px; 对于正方形border-radius设置为边长的一半,就变成圆了。 width: 100px; height: 100px; border-radius: 50px; border-radius是缩写格式,其实border-radius和border属性一样,还可以把各个角单独拆分出来,
小胖
2018/06/27
1.9K0
CSS3与页面布局学习总结(六)——CSS3新特性(阴影、动画、渐变、变形、伪元素等)
CSS3在CSS2.1的基础上新增加了许多属性,这里选择了较常用的一些功能与大家分享,帮助文档中有很详细的描述,可以在本文的示例中获得帮助文档。 一、阴影 1.1、文字阴影 text-shadow <
张果
2018/01/04
3.3K0
CSS3与页面布局学习总结(六)——CSS3新特性(阴影、动画、渐变、变形、伪元素等)
Css 小技巧
在页面构建中,能明显提升页面显示质量的一些CSS小技巧。很多简洁美观的页面表现,可以使用CSS3代码即可实现,减少图片的使用。
grain先森
2019/04/18
1K0
Css 小技巧
哪些你知道或不知道的css,在这里或许都齐全 css编码技巧 css小技巧
暑假实习的时候带我的师傅,告诉我要注重基础,底层实现原理。才能在日新月异的技术行业站住脚跟,以不变应万变,万丈高楼平地起,所以我们应该不断的去学习,去交流。交流,不应该仅仅停留在技术方面,更多的应该是在思维方式。语言只是一种工具,编程的思想才是核心。我们只有在明白了编程的思想之后,才能去创造属于自己的东西,随意切换。授之以鱼不如授之以渔。在我们的时代应该是去创造而不是模仿。回到学校之后,我开始我学习的新旅程;读一本好书亦如交一个有趣的朋友。最近读了一本《CSS揭秘》,里面有很多有意思的CSS技巧,有时间有兴趣的朋友可以去读读这本书,读完之后我们可以一起交流,学习,一起解答你我的迷惑知识点,期待和你的交流。读完这本书的时候我也对书中的知识点进行了总结归纳:
sunseekers
2018/10/31
1.7K0
《CSS揭秘》读书总结:背景与边框
假设我们想给一个容器设置一层白色背景和一道半透明白色边框,body 的背景会从它的半透明边框透上来。我们最开始的尝试可能是这样的:
逆葵
2019/04/25
1.8K0
《CSS揭秘》读书总结:背景与边框
CSS——边框
定义 边框(Border)属性是对HTML元素的边框进行定义的CSS属性。 概述 通过边框的样式设置,给元素增加更丰富的外观 边框的设置包含以下内容: 边框的类型 边框的尺寸 边框的前景背景 圆角边框 列表 元素 描述 border border 属性是规定各种单独的边界属性的简写属性,可用于设置一个或多个以下属性的值:border-width,border-style,border-color。 border-bottom border-bottom 该属性是用来将下边框的所有属性:border-bott
Html5知典
2019/11/26
4K0
55 个提高你 CSS 开发效率的必备片段
这篇文章会记录我们平时常用到的 CSS 片段,使用这些 CSS 可以帮助我们解决许多实际项目问题中遇到的,墙裂建议点赞收藏再看,方便日后查找? 清除浮动 浮动给我们的代码带来的麻烦,想必不需要多说,我
wscats
2020/06/06
1.4K0
CSS 奇思妙想边框动画
今天逛博客网站 -- shoptalkshow[1],看到这样一个界面,非常有意思:
微芒不朽
2022/09/13
9240
CSS 奇思妙想边框动画
谈到边框,首先会想到 border,我们最常用的莫过于 solid,dashed,上图中便出现了 dashed。
Sb_Coco
2021/01/20
1.2K0
IT课程 CSS基础 024_边框、轮廓、阴影
border-top, border-right, border-bottom, border-left: 分别设置顶部、右侧、底部、左侧的边框。
zhaoJian.Net
2024/04/03
1330
IT课程 CSS基础 024_边框、轮廓、阴影
使用 CSS 的仿 GitHub 登录页面
在线演示地址:https://haiyong.site/demo/github.html 码上掘金地址:https://code.juejin.cn/pen/7130522560411729934
海拥
2022/09/28
1.8K0
使用 CSS 的仿 GitHub 登录页面
相关推荐
CSS实现多重边框的5种方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档