成都创新互联网站制作重庆分公司

css中多种边框的实现方法

这篇文章主要介绍“css 中多种边框的实现方法”,在日常操作中,相信很多人在css 中多种边框的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css 中多种边框的实现方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联公司是一家专注于网站制作、成都网站设计与策划设计,崇义网站建设哪家好?创新互联公司做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:崇义等地区。崇义做网站价格咨询:028-86922220

一、多重边框[1]

背景知识:box-shadow,outline
鉴于使用场景的多元化,多重边框的设计越来越多,以往可以借助 border-image 属性应付一下,但是这个在css 代码层面并不是很灵活。现在我们借助 box-shadow 和 outline 两个属性来分别实现多重边框。
1、box-shadow 方案
思路:利用 box-shadow 的第四个参数(扩张半径)的大小,多重投影
代码示例:

    
        多重边框实现方案一:box-shadow
    
    .border-multiple {         margin: 50px auto;         padding: 20px;         width: 600px;          background-color: #fff;          box-shadow: 0 0 0 10px #f0f,                     0 0 0 15px #00f,                     0 2px 15px 15px rgba( 0, 0, 0, .8);     }

css 中多种边框的实现方法

多重边框--box-shadow

小结:

1、阴影并不影响布局,也不会受到box-sizing的影响
2、支持逗号分隔语法,可以创建任意数量的投影
3、缺点:只能实现实线的边框,不能实现其他样式的边框

2、outline 方案
代码示例:

    
        多重边框实现方案二:outline
    
    .border-outline {         margin: 200px auto;         padding: 20px;         width: 600px;         background-color: #ff0;         outline: 3px dashed #0f0;         outline-offset: -10px;     }

css 中多种边框的实现小窍门

多重边框--outline

小结:

1、前提是实现两层边框
2、可能需要 outline-offset 的属性值
3、outline 的描边默认是矩形,当有圆角时会认为是 bug , 不能贴合圆角
4、不支持逗号语法

二、边框内圆角[2]

背景知识:box-shadow,outline
为了解决上面例子小结3中的bug,可以用box-shadow 扩张半径来填补掉 圆角与outline 之间的空隙。http://www.changhai120.com/
代码示例:

    
         需要借助 box-shadow、outline、“多重边框”来实现 
         注意点 : box-shadow 的扩展半径应该是 圆角半径的 0.5倍
    
      .inner-rounding {         background-color: #ccc;         margin: 50px auto;         padding: 20px;         width: 600px;          padding: 20px;         border-radius: 20px;         box-shadow: 0 0 0 10px #f00;         outline: 10px solid #f00;     }

注意点 : box-shadow 的扩展半径应该是 圆角半径的 0.5倍;严格来说应该是(√2 - 1) 倍,这里取 0.5 倍是为了更好的计算

到此,关于“css 中多种边框的实现方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


文章名称:css中多种边框的实现方法
本文来源:http://cxhlcq.com/article/poghoo.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部