[css 揭秘]:CSS揭秘 技巧(二):多重边框

我的github地址:https://github.com/FannieGirl/ifannie/

源码都在这上面哦!

喜欢的给我一个星吧

多重边框

问题:我们通常希望在css代码层面以更灵活的方式来调整边框样式

方案一:box-shadow

目前为止,我们大多数人可能已经用过(或者滥用过)box-shadow来生成投影,不太为人之的是,它还接受四个参数(扩张半径),通过制定正值或负值,可以让投影面积加大或者减小,

用它的好处是它支持逗号分隔语法,我们可以创建任意数量的投影

知识背景:box-shadow 属性向框添加一个或多个阴影。
提示:请使用 border-image-* 属性来构造漂亮的可伸缩按钮!

语法:box-shadow: h-shadow v-shadow blur spread color inset;

注释:box-shadow 向框添加一个或多个阴影。该属性是由逗号分隔的阴影列表,每个阴影由 2-4 个长度值、可选的颜色值以及可选的 inset 关键词来规定。省略长度的值是 0。

h-shadow 必需。水平阴影的位置。允许负值。
v-shadow 必需。垂直阴影的位置。允许负值。
blur 可选。模糊距离。
spread 可选。阴影的尺寸。
color 可选。阴影的颜色。请参阅 CSS 颜色值。
inset 可选。将外部阴影 (outset) 改为内部阴影。

创建多重边框,代码如下

效果图:

实例演示地址:https://jsfiddle.net/Fannie/06sjmL6n/5/

方案二:outline

在某种情况下,你可能只需要两层边框,那就可以设置一层常规边框,再加上outline(描边) 属性来产生外层的边框,这种方法的优点是边框的样式十分灵活,不像上面的box-shadow方案 模拟实线边框(假设我们需要的产生虚线边框效果,box-shadow 就不可做到)

知识背景:outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
注释:轮廓线不会占据空间,也不一定是矩形。

语法:outline:outline-color outline-style outline-width inherit

outline-color 规定边框的颜色。
outline-style 规定边框的样式。
outline-width 规定边框的宽度。
inherit 规定应该从父元素继承 outline 属性的设置。

创建多重边框,代码如下

效果对比图

实例演示地址:https://jsfiddle.net/Fannie/06sjmL6n/6/

还想说一点的是改变outline-offset值,可以实现很简单的缝边效果

是不是很奇妙!(就我这个智障这样想吧!),我想说的是多去思考,多去尝试,一切皆有可能啊!
这种outline方案,只适合双层边框的场景,outline不接受用逗号分隔多个值,边框不一定会贴合border-radius 属性产生的圆角,因此如果元素是圆角,它的描边可能是直角的。在绝大多数的情况下,描边都是矩形的。

后言:
如果你对基础的知识点已经很熟悉,你可以自动跳过。写上去的原因是查漏补缺,巩固一下基础。
如果有不对的地方,欢迎你来吐槽。
本文主要参考《CSS 揭秘》一书 以及w3school;
参考链接 :http://www.w3school.com.cn/cssref/pr_background-clip.asp

时间: 2024-10-27 06:25:09

[css 揭秘]:CSS揭秘 技巧(二):多重边框的相关文章

CSS揭秘—多重边框(二)

前言: 所有实例均来自<CSS揭秘>,该书以平时遇到的疑难杂症为引,提供解决方法,只能说秒极了,再一次刷新了我对CSS的认知 该书只提供了关键CSS代码,虽然有在线示例代码链接,但访问速度较慢.下面示例代码是我自己写的,若有错误,欢迎指正 注:我会在每个示例最后附上书中提供的在线示例代码链接:在最开头附上每个相关示例所需CSS属性链接作为补充,以供查阅和学习 CSS需知: box-shadow outline 场景: 如果让你实现下图多重边框的效果,你会怎么做呢? 可能聪明的你首先想到利用 o

[css]《css揭秘》学习(二)-多重边框

一.box-shadow属性 box-shadow除了生成投影,还可以用来生成边框:它接受第4个值作为扩张半径,0的x轴偏移+0的y轴偏移+0的模糊值+0的扩张半径,得到的显示效果和边框是一样的:但是注意,投影的行为和边框的行为不同,投影不影响布局:“假”边框在元素外面,不影响元素的点击(可以给box-shadow属性加上inset元素,来投影到原色内部). 1 <html> 2 <head> 3 <meta charset="utf-8"> 4 &

CSS实现多重边框和内凹圆角

CSS实现多重边框 1 <!DOCTYPE html> 2 <html lang="zh-cn"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>CSS实现多重边框</title> 6 <style> 7 div { 8 width: 100px; 9 height: 150px; 10 margin: 40px auto; 11 text-a

CSS技巧二

元素缩写 font中属性的放置顺序是严格遵守的,否则不会生效. Font:font-style font-weight font-size font-familiy;(注:font-size和font-family是font的必须属性,并且font-size一定要放在font-family的前面) Margin:margin-top margin-right margin-bottom margin-bottom ; Padding:padding-top padding-right paddi

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

原文:[基础]CSS实现多重边框的5种方式 简言 目前最优雅地实现多重边框的方案是利用CSS3 的 box-shadow属性,但如果要兼容老的浏览器,则需要选择其它的方案.本文简要地列举了几种多重边框的实现方案,大家可以根据项目实际及兼容性要求等情况,选择最适合的实现方案. 1 利用描边(outline)属性 方案1利用描边(outline)属性结合border属性实现双重边框.此方案实现简单,兼容性好,能兼容除IE6,7以外的浏览器. 1.1 核心代码 .borders { border: s

神奇的CSS技巧探秘——关于边框特效

一.半透明的边框实现 加入我们有这样一个需求:在一个背景图片的区域中,定义一个带有半透明白色边框的白色div.这个的实现方法最先想到的就是可以为边框定义透明度,代码如下: div{ background:white; border:20px solidhsla(0,0%,100%,.5); } 这里hsla为一种定义颜色的方法,它的各个参数含义如下: H:Hue(色调).0(或360)表示红色,120表示绿色,240表示蓝色,也可取其他数值来指定颜色.取值为:0 - 360 S:Saturati

IT兄弟连 HTML5教程 CSS3揭秘 CSS简介

HTML使用标签将内容放到网页上,也可使用元素和属性来控制简单的文档外观.如果希望更全面地控制Web页面的外观和布局,则需要使用层叠样式表(简写为CSS).CSS规范的工作原理在于允许用户制定一些规则,描述文档中元素内容的表现形式,通过设置不同的规则控制页面中每一个元素的外观,包括字体的颜色和大小.线的宽度和颜色.页面中各项之间的空白量,以便使页面看上去更令人感兴趣.CSS和HTML一样是所有网页制作技术的核心与基础,是为HTML制定样式的机制,能控制浏览器如何显示HTML中的每个元素及其内容.

css学习归纳总结(二) 转

原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTML分隔符,而元素则是由一对开始结束标签构成的,用来包含某一些内容 子选择器和后代选择器的区别: 后代选择器的写法就是把外层的标记写在前面,内层的标记写在后面,之间用空格分隔. 子选择器只对直接后代有影响的选择器,而对“孙子后代”以及多层后代不产生作用. 注意:在IE6中,只支持后代选择器,不支持子选择器 链接

DIV CSS优化 CSS压缩技巧教程

DIV CSS优化 DIVCSS5为大家介绍简单的CSS优化.涉及优化内容:CSS代码优化.CSS重用优化.缩短字符.删除换行等处优化 目录 CSS样式单词简写优化 标点符号优化 删除换行 CSS重用优化 CSS代码优化简写总结 一.CSS样式属性单词代码简写优化 - TOP 1.border(CSS边框)简写: 1).4个边边框宽度为1px,颜色为#000 border-color:#000; border-style:solid; border-width:1px 可以简写为:体感音乐放松椅