作者:WangMin

格言:努力做好自己喜欢的每一件事

关于box-shadow属性,有的小伙伴可能用的时候直接复制已有的,并没有仔细了解过box-shadow属性的参数分别是什么含义,最后导致阴影的样式不能按照自己的需求自由控制,让自己很苦恼。接下就一起来好好学习这个属性吧!!

box-shadow属性的参数

此属性的基本语法:{ box-shadow:[inset] x-offset y-offset blur-radius spread-radius color }。

1、inset [ 阴影类型 ]

这个参数是一个可选参数。如不声明,默认阴影类型是外阴影;如果取它的唯一值 "inset" ,则阴影类型为内阴影。它可以作为第一个参数出现,也可以作为最后一个参数出现。默认情况下代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow: 0px 0px 15px 0px rgba(0,0,0,0.75);
-webkit-box-shadow: 0px 0px 15px 0px rgba(0,0,0,0.75);
-moz-box-shadow: 0px 0px 15px 0px rgba(0,0,0,0.75);
}

网页显示效果如下:



当设置了阴影类型为 "inset" 时,代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:inset 0px 0px 15px 0px rgba(0,0,0,0.75);
-webkit-box-shadow:inset 0px 0px 15px 0px rgba(0,0,0,0.75);
-moz-box-shadow:inset 0px 0px 15px 0px rgba(0,0,0,0.75);
}

网页显示效果如下:



2、x-offset [ 阴影水平偏移量 ]

这个参数的取值分为两种情况:可以是正值,也可以是负值。

为正值的情况下,代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:5px 0px 5px 0px rgba(0,0,0,0.75);
-webkit-box-shadow:5px 0px 5px 0px rgba(0,0,0,0.75);
-moz-box-shadow:5px 0px 5px 0px rgba(0,0,0,0.75);
}

网页显示效果如下:



从上述例子中可以得到一个结论:x-offset的取值如果为正值时,则阴影在元素的右边。

为负值的情况下,代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:-5px 0px 5px 0px rgba(0,0,0,0.75);
-webkit-box-shadow:-5px 0px 5px 0px rgba(0,0,0,0.75);
-moz-box-shadow:-5px 0px 5px 0px rgba(0,0,0,0.75);
}

网页显示效果如下:



从上述例子中可以得到一个结论:x-offset的取值如果为负值时,阴影在元素的左边。

3、y-offset [ 阴影垂直偏移量 ]

这个参数的取值与x-offset的取值是一样的。分为两种情况:可以是正值,也可以是负值。

为正值的情况下,代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:0px 5px 5px 0px rgba(0,0,0,0.75);
-webkit-box-shadow:0px 5px 5px 0px rgba(0,0,0,0.75);
-moz-box-shadow:0px 5px 5px 0px rgba(0,0,0,0.75);
}

网页显示效果如下:



从上述例子中可以得到一个结论:y-offset的取值如果为正值时,则阴影在元素的底部。

为负值的情况下,代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:0px -5px 5px 0px rgba(0,0,0,0.75);
-webkit-box-shadow:0px -5px 5px 0px rgba(0,0,0,0.75);
-moz-box-shadow:0px -5px 5px 0px rgba(0,0,0,0.75);
}

网页显示效果如下:



从上述例子中可以得到一个结论:y-offset的取值如果为负值时,则阴影在元素的顶部。

4、blur-radius [ 阴影模糊半径 ]

这个参数是一个可选参数,代表阴影的模糊半径,取值分为两种情况:0 或者正值。此外该值不支持负数。

值为0的情况下,代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:5px 5px 0px 0px rgba(0,0,0,0.75);
-webkit-box-shadow:5px 5px 0px 0px rgba(0,0,0,0.75);
-moz-box-shadow:5px 5px 0px 0px rgba(0,0,0,0.75);
}

网页显示效果如下:



从上述例子中可以得到一个结论:blur-radius的取值如果为0时,则阴影不具有任何模糊效果。

值为其他正数的情况下,代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:5px 5px 5px 0px rgba(0,0,0,0.75);
-webkit-box-shadow:5px 5px 5px 0px rgba(0,0,0,0.75);
-moz-box-shadow:5px 5px 5px 0px rgba(0,0,0,0.75);
}

网页显示效果如下:



从上述例子中可以得到一个结论:blur-radius的取值如果为正数时,则阴影具有模糊效果。并且这个值越大,阴影的边缘就越模糊。

5、spread-radius [ 阴影扩展半径 ]

这个参数是一个可选参数,代表着阴影的尺寸。这个值可以被看作是从元素到阴影的距离。如果正值会在元素的四个方向延伸阴影;负值会使阴影变得比元素本身尺寸还要小,甚至被元素遮住。

当为默认值“0”的时候,代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:0px 0px 5px 0px rgba(0,0,0,0.75);
-webkit-box-shadow:0px 0px 5px 0px rgba(0,0,0,0.75);
-moz-box-shadow:0px 0px 5px 0px rgba(0,0,0,0.75);
}

网页显示效果如下:



从上述例子中可以得到一个结论:spread-radius的取值为0时,则会让阴影变得和元素的大小一同等大小。

当为任意正值的时候,代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:0px 0px 5px 5px rgba(0,0,0,0.75);
-webkit-box-shadow:0px 0px 5px 5px rgba(0,0,0,0.75);
-moz-box-shadow:0px 0px 5px 5px rgba(0,0,0,0.75);
}

网页显示效果如下:



从上述例子中可以得到一个结论:spread-radius的取值为任意正值时,则会在元素的四个方向延伸对应大小的阴影

6、color [ 阴影颜色 ]

这个值是指定阴影的颜色,是一个可选参数。如不设定颜色,浏览器会取默认色,但各浏览器默认取色不一致。代码如下:

<div class="box color1"></div>
<div class="box color2"></div>
.box{
width:100px;
height:100px;
background:#69f;
margin:20px 0 0 20px;
}
.color1{
box-shadow:5px 5px 5px 0px rgba(0,0,0,0.75);
-webkit-box-shadow:5px 5px 5px 0px rgba(0,0,0,0.75);
-moz-box-shadow:5px 5px 5px 0px rgba(0,0,0,0.75);
}
.color2{
box-shadow:5px 5px 5px 0px #f00;
-webkit-box-shadow:5px 5px 5px 0px #f00;
-moz-box-shadow:5px 5px 5px 0px #f00;
}

网页显示效果如下:

使用box-shadow属性设置各种阴影效果

1、给一个元素四边设置阴影

如果需要给一个元素四边设置阴影时,需要将x-offset和y-offset的偏移量设置为0,只需要设置阴影模糊半径和阴影颜色,阴影扩展半径按照自己需求设置。代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:0px 0px 5px #f00;
-webkit-box-shadow:0px 0px 5px #f00;
-moz-box-shadow:0px 0px 5px #f00;
}

网页显示效果如下:

2、给一个元素四边设置不同颜色的阴影

如果需要给一个元素四边设置不同颜色的阴影时,阴影之间用逗号分隔。给对象四边设置不同的阴影效果,通过改变x-offset和y-offset的正负值来实现,左边阴影 将x-offset设置为负值;右边阴影 将x-offset设置为正值;底部阴影 将y-offset设置为正值;顶部阴影 将y-offset设置为负值。案例如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
box-shadow:-5px 0px 5px #f00,
5px 0px 5px blue,
0px -5px 5px yellow,
0px 5px 5px #000;
-webkit-box-shadow:-5px 0px 5px #f00,
5px 0px 5px blue,
0px -5px 5px yellow,
0px 5px 5px #000;
-moz-box-shadow:-5px 0px 5px #f00,
5px 0px 5px blue,
0px -5px 5px yellow,
0px 5px 5px #000;
}

网页显示效果如下:



3、给元素设置多重阴影

当给同一个元素使用多个阴影属性时,需要注意它的顺序,阴影将按照设置的顺序从里往外显示;还需要注意的一点是必须设置阴影扩展半径,并且按照设置的顺序,阴影扩展半径的值要依次递增。代码如下:

<div class="box"></div>
.box{
width:100px;
height:100px;
background:#69f;
margin:20px 0 0 20px;
box-shadow: 0px 0px 3px 3px pink,
0px 0px 3px 6px yellow,
0px 0px 3px 9px orange;
-webkit-box-shadow: 0px 0px 3px 3px pink,
0px 0px 3px 6px yellow,
0px 0px 3px 9px orange;
-moz-box-shadow: 0px 0px 3px 3px pink,
0px 0px 3px 6px yellow,
0px 0px 3px 9px orange;
}

网页显示效果如下:



4、其他特殊效果:立体投影

立体投影的关键点在于使用伪元素::before和::after生成大小与父元素相近的元素,然后对其进行 rotate 以及定位到合适位置,再给为元素设置阴影。

立体效果1,代码如下:

<div class="box"></div>
.box {
position: relative;
width: 350px;
height: 150px;
background: pink;
}
.box::before,.box::after{
content: "";
width: 300px;
height: 75px;
position: absolute;
top:60px;
z-index:-1;
background: palevioletred;
box-shadow: 0 0 10px 10px palevioletred;
-webkit-box-shadow: 0 0 10px 10px palevioletred;
-moz-box-shadow: 0 0 10px 10px palevioletred;
} .box::before {
left: 18px;
transform: rotate(-6deg);
-webkit-transform: rotate(-6deg);
-moz-transform: rotate(-6deg);
}
.box::after {
right: 18px;
transform: rotate(6deg);
-webkit-transform: rotate(6deg);
-moz-transform: rotate(6deg);
}

网页显示效果如下:



立体效果2,代码如下:

<div class="box"></div>
.box {
position: relative;
width: 350px;
height: 150px;
background: pink;
}
.box::before,.box::after{
content: "";
width: 150px;
height: 100px;
position: absolute;
top:26px;
z-index: -1;
background: palevioletred;
box-shadow: 0 0 10px 10px palevioletred;
-webkit-box-shadow: 0 0 10px 10px palevioletred;
-moz-box-shadow: 0 0 10px 10px palevioletred;
} .box::before {
left: 0px;
-webkit-transform: rotate(-8deg);
-moz-transform: rotate(-8deg);
transform: rotate(-8deg);
}
.box::after {
right: 0px;
-webkit-transform: rotate(8deg);
-moz-transform: rotate(8deg);
transform: rotate(8deg);
}

网页显示效果如下:



立体效果3,代码如下:

<div class="box"></div>
.box {
position: relative;
width: 350px;
height: 150px;
margin:25px;
background: pink;
}
.box::before,.box::after{
content: "";
width: 300px;
height: 100px;
position: absolute;
top:26px;
left:15px;
z-index: -1;
background: palevioletred;
}
.box::before {
-webkit-transform: rotate(-8deg);
-moz-transform: rotate(-8deg);
transform: rotate(-8deg);
box-shadow: 10px -10px 10px 10px palevioletred;
-webkit-box-shadow:10px -10px 10px 10px palevioletred;
-moz-box-shadow: 10px -10px 10px 10px palevioletred;
}
.box::after {
-webkit-transform: rotate(8deg);
-moz-transform: rotate(8deg);
transform: rotate(8deg);
box-shadow: 10px 10px 10px 10px palevioletred;
-webkit-box-shadow:10px 10px 10px 10px palevioletred;
-moz-box-shadow: 10px 10px 10px 10px palevioletred;
}

网页显示效果如下:

box-shadow属性的兼容性

为了兼容各主流浏览器并支持它们的较低版本,在基于Webkit的Chrome和Safari等浏览器上使用box-shadow属性时,需要在属性的名称前加上-webkit-,写成-webkit-box-shadow的形式。Firefox浏览器则需要在属性的名称前加上-moz-,写成-moz-box-shadow的形式。上面的案例中,我将box-shadow的两种兼容格式都写上了,所以在使用中不要忘记加上。以下是box-shadow在各个浏览器的兼容性。


以上仅是个人见解,若有不足之处欢迎在下方评论指出,那就先分享到这里!! 后续继续更新!!

怎样给边框添加阴影?CSS3属性box-shadow帮你搞定!的更多相关文章

  1. 让ie支持placeholder属性,一段js搞定

    placeholder属性真的是超级好用的新属性,可惜,只有新版浏览器才支持,为了写出输入框贴心提示,老方法就是加span标签覆盖,营造出placeholder提示的感觉,现在安利一款好用的js,好用 ...

  2. Sprite添加阴影摇摆动画(Unity3D开发之九)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=575 今天看到一个很简单的摇摆动 ...

  3. CSS3属性 box-shadow 向框添加一个或多个阴影

    CSS3属性 利用box-shadow制作网页页眉背景 box-shadow 浏览器支持 IE9+.Firefox 4.Chrome.Opera 以及 Safari 5.1.1 支持 box-shad ...

  4. IT兄弟连 HTML5教程 CSS3属性特效 边框

    通过CSS3,我们能够创建圆角边框,向矩形添加阴影,使用图片来绘制边框.并且不需使用设计软件,比如photoshop. 1  边框图片border-image border-image为边框应用图片, ...

  5. CSS3 --添加阴影(盒子阴影、文本阴影的使用)

     CSS3 - 给div或者文字添加阴影(盒子阴影.文本阴影的使用)CSS3定义了两种阴影:盒子阴影和文本阴影.其中盒子阴影需要IE9及其更新版本,而文本阴影需要IE10及其更新版本.下面分别介绍两种 ...

  6. PIE使IE浏览器支持CSS3属性(圆角、阴影、渐变)

    http://www.360doc.com/content/12/1214/09/11181348_253939277.shtml PIE使IE浏览器支持CSS3属性(圆角.阴影.渐变) 2012-1 ...

  7. IT兄弟连 HTML5教程 CSS3属性特效 盒模型阴影

    除了为文字添加阴影,我们还可以为盒模型添加阴影.盒模型阴影的属性名称为box-shadow,此属性与text-shadow一样有4个值,前两个值分别表示水平方向位移距离和垂直方向的位移距离,第三个值表 ...

  8. css3新增边框、阴影、边框、背景、文本、字体

    css3和css有什么区别?简单来讲css3是css(层叠样式表)技术的升级版本,css3新特征有很多,例如圆角效果.图形化边界.块阴影与文字阴影.使用RGBA实现透明效果.渐变效果.使用@Font- ...

  9. 用Emmet写CSS3属性会自动添加前缀

    CSS3的很多属性都包含浏览器厂商前缀,用Emmet写CSS3属性会自动添加前缀,比如输入trs 会展开为: -webkit-transition: prop time; -moz-transitio ...

  10. CSS3 一、文本阴影text-shadow属性

    文本阴影text-shadow属性特效: 1.右下角阴影,左下角阴影,左上角阴影,右上角阴影 <!DOCTYPE html> <html lang="en"> ...

随机推荐

  1. Swift函数调用方式浅析

    函数的调用机制   函数的调用机制是在函数调用时通过那种路径走到最终调用函数地址的机制. 在编程语言中,函数的调用机制有三种 1.静态调用:编译期就确定了函数内存地址,执行效率最高,还可以使用编译器优 ...

  2. CSRF与SSRF

    CSRF与SSRF CSRF(跨站请求伪造) 跨站请求伪造(Cross-site request forgery,CSRF),它强制终端用户在当前对其进行身份 验证后的Web应用程序上执行非本意的操作 ...

  3. 前端Vue自定义开屏启动广告组件,点击广告图跳转广告详情

    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身. 通过组件化开发,可以有 ...

  4. Element-ui源码解析(二):最简单的组件Button

    好家伙,为了有足够的能力去开发组件,先研究一下别人的组件 开始抄袭模仿我们的行业标杆element-ui   找到Button组件的源码  只有三个文件,看上去非常易读,开搞  其中最重要的部分,自然 ...

  5. 解决win10/ubuntu端口占用问题

    win10解决方案 首先打开cmd命令行 命令行里输入 netstat -ano|findstr 被占用端口号 然后可以看到占用该端口号的pid 输入taskkill -f -pid pid号即可 u ...

  6. 知识图谱(Knowledge Graph)- Neo4j 5.10.0 Docker 安装

    知识图谱(Knowledge Graph)- Neo4j 5.10.0 Docker 安装 知识图谱(Knowledge Graph)- Neo4j 5.10.0 CentOS 安装 https:// ...

  7. 「学习笔记」扩展 KMP(Z 函数)

    对于个长度为 \(n\) 的字符串 \(s\).定义 \(z[i]\) 表示 \(s\) 和 \(s[i,n-1]\)(即以 \(s[i]\) 开头的后缀)的最长公共前缀(LCP)的长度.\(z\) ...

  8. 《Kali渗透基础》11. 无线渗透(一)

    @ 目录 1:无线技术 2:IEEE 802.11 标准 2.1:无线网络分层 2.2:IEEE 2.3:日常使用标准 2.3.1:802.11 2.3.2:802.11b 2.3.3:802.11a ...

  9. TDengine 用户案例合集 | 智能环保项目的时序数据处理难点与优化实践

    智能环保系统通常涉及大量的传感器和监测设备,以收集环境数据并对其进行分析和处理,这些数据通常是时序数据,即在一段时间内按时间顺序生成的数据,规模庞大且要求快速准确地进行分析和处理.也因此时序数据处理是 ...

  10. ArcGIS将遥感影像的0值设置为NoData

      本文介绍在ArcMap软件中,将栅格图层中的0值或其他指定数值作为NoData值的方法.   在处理栅格图像时,有时会发现如下图所示的情况--我们对某一个区域的栅格数据进行分类着色后,其周边区域( ...