CSS边框阴影效果如何用box-shadow属性实现
Admin 2022-09-24 群英技术资讯 629 次浏览
定义:box-shadow是css3新增的一个属性。在W3School里,定义box-shadow是向框添加一个或者多个阴影的属性。
语法:box-shadow: h-shadow v-shadow blur spread color inset. 可理解为定义阴影:右边阴影(负数则相反) ,下边阴影(负数则相反),模糊半径,阴影半径,颜色
h-shadow: 阴影的水平位置 v-shadow:阴影的垂直位置 blur:阴影的模糊半径 spread:阴影的半径 color:阴影的颜色 inset:将外部阴影改成内部阴影【outset反过来】 |
根据box-shadow的定义,我们可以为一个框设置一个阴影,也可以设置多个阴影。当我们需要设置多个阴影时,中间需要将每个阴影用逗号隔开。
举个例子:
/*html代码*/ <div class="test"></div> /*对应的css代码*/ .test{ width: 100px; height: 100px; background: yellow; margin: 100px auto; border-radius: 50%; box-shadow: 10px 10px 20px 10px rgba(255,255,0,0.5), -10px 10px 10px 10px rgba(255,255,255,0.5) }
这里我们用border-radius属性设置了一个圆形,并且为这个圆形添加了一个浅黄色阴影和一个白色的阴影。
以第一个阴影:box-shadow: 10px 10px 20px 10px rgba(255,255,0,0.5)为例,有五个参数:
第一个表示阴影的水平位置为右移10px,如果为负数则表示阴影左移; 第二个表示垂直位置为下移10px,如果为负数则表示阴影上移; 第三个参数代表阴影的模糊程度blur,我们也将它设置成20px; 第四个10px是阴影半径的意思; 最后一个规定了阴影的颜色为rgba(255,255,0,0.5), 0.5表示透明度 |
也就是说,我们为class为test的div元素添加了一个偏离框,并且向右距离为10px、向下距离为10px、模糊半径为10px、阴影半径为10px的浅黄色的阴影。
根据上面的CSS代码,我们看一下同时设置了两个阴影的效果:
为了更直白地观察到上述阴影设置的效果,我们将第二个阴影删除,只保留第一个阴影:
效果是不是还不错?
根据前面的语法规则,box-shadow可以有六个值。接下来我们来聊一聊box-shadow属性里的每个值都怎么用
这个值代表的是阴影在x轴上的阴影位置。可以是负值。
当它为正值的时候表示向右位移一定的距离【出现在元素的右边】,负值表示向左位移【出现在元素的左边】。这个距离的单位可以是px、em或者rem;
需要注意的是:h-shadow是必需的,不能省略!
box-shadow: 10px 0px 10px rgba(0,0,0,0.9) /*阴影出现在元素的右侧*/ box-shadow: -10px 0px 10px rgba(0,0,0,0.9) /*阴影出现在元素的左侧*/
这个值表示阴影在y轴上的位置。也可以是负值。
当值为负的时候表示向上偏移一定的距离【出现在元素的上方】;值为正的时候表示向下偏移一定的距离【出现的元素的下方】
box-shadow: 0px -20px 10px rgba(0,0,0,0.9)/*阴影出现在元素上方*/ box-shadow: 0px 20px 10px rgba(0,0,0,0.9)/*阴影出现在元素下方*/
blur指的是阴影的模糊半径。这个值使得阴影部分的过渡看起来更柔和。我们可以试一试不同blur值对阴影效果的影响:
box-shadow: 10px 10px 5px rgba(0,0,0,0.9) /*blur值为5px*/ box-shadow: 10px 10px 10px rgba(0,0,0,0.9)/*blur值为10px*/ box-shadow: 10px 10px 15px rgba(0,0,0,0.9)/*blur值为15px*/
将blur值为5px、10px、15px 的效果图依次从左往右排列,可以看出来随着模糊半径数值的增大,阴影的模糊程度越高。
spread表示的是阴影的半径。我在网上看到有人对spread和blur的区别发出疑问,其实很简单:blur用于描述模糊半径,它的值决定了阴影的模糊程度;而spread是表示阴影所占区域的大小,这是两个不同的概念。
我们来试试其他属性值相同的情况下,spread不同时阴影的表现:
box-shadow: 10px 10px 10px 5px rgba(0,0,0,0.9);/*阴影半径为5px*/ box-shadow: 10px 10px 10px 15px rgba(0,0,0,0.9);/*阴影半径为15px*/ box-shadow: 10px 10px 10px 25px rgba(0,0,0,0.9);/*阴影半径为25px*/
将spread的值为5px、15px、25px的效果图依次 从左向右排列,很明显阴影在逐渐变大
阴影的颜色可以用任何颜色单位来表示。当我们没有设置color值的时候,默认就是黑色。
box-shadow: 10px 10px 10px 5px rgba(0,0,0,0.9);/*黑色阴影,用rgba表示,透明度为0.9*/ box-shadow: 10px 10px 10px 5px rgb(255,0,0);/*红色阴影,用rgb表示*/ box-shadow: 10px 10px 10px 5px #afe;/*浅蓝色阴影,用十六进制颜色表示法*/ box-shadow: 10px 10px 10px 5px blue;/*蓝色阴影,用颜色单词表示*/
默认情况下,我们设置的阴影都是外部阴影,而这个属性值的作用是将外部阴影转换成内部阴影。
box-shadow: 10px 10px 10px 5px blue; /*默认为外部阴影*/ box-shadow: 10px 10px 10px 5px blue inset;/*将外部阴影切换为内部阴影*/
了解了box-shadow之后,我们可以用来做一些有趣的事情。比如给阴影添加动画,对元素添加:hover伪元素,形成鼠标悬浮在元素上时,阴影扩大的效果
.test{ width: 100px; height: 100px; background: yellow; margin: 100px auto; border-radius: 50%; box-shadow: 0px 0px 10px 5px rgba(0,0,0,0.9); transform: scale(1); transition: box-shadow 0.6s, transform 0.5s; } .test:hover{ width: 100px; height: 100px; background: yellow; margin: 100px auto; border-radius: 50%; box-shadow: 0px 0px 50px 15px rgba(0,0,0,0.9); transition: box-shadow 0.5s; }
怎么样,box-shadow属性是不是挺有意思的?
好了,今天关于边框阴影box-shadow 属性的总结就写到这里了。鉴于刚刚做上面这个鼠标悬浮效果的时候用到了CSS3的另外两个新属性transition和transform,我打算下次来写一些这两个属性。
原文来自:https://my.oschina.net/u/4188243/blog/3092621
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
网站按钮在网站开发中是必不可少的,其实我们在按钮开发的时候会分成文字的和带图标的按钮,下文是css实现纯文字和带图标的按钮的代码
今天我们一起来了解css3中的滤镜filter的使用,滤镜filter还是比较实用的,利用filter滤镜能够实现更改图片颜色的效果,那么具体是怎样实现呢?方法是什么?下面我们一起了解看看。
data-*自定义数据属性首先讲一下语法格式:data-*=“值”data-*属性包括两部分:属性名不应该包含任何大写字母,并且在前缀"data-"之后必须有至少一个字符属性值可以是任意字符串其实data-*加在标签里并没有任何含义,只不过,起到一个存放值的一个方式。在jQuery中,有一个专门的方法可以获得data-的值:data(参数) ,此方法参数为data-后
css兼容问题兼容问题1.文字本身的大小不兼容。同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白1px,下留白3px。解决方案:给文字设定line-height。确保所有文字都有默认的line-height值。2.ff下容器高度限定.即容器定义了height之后,容器边框的外形就确定了
css等比例分割父级容器的方法有什么?当父级容器的宽度一定,我们先要实现子元素等比例分割父级容器有很多种方法,本文给大家分享五种方法,有需要的朋友可以参考,接下来就跟随小编一起学习一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008