淘先锋技术网

首页 1 2 3 4 5 6 7

序言

shadow字面含义——阴影;text-shadow和box-shadow就是文本阴影和盒子阴影了。text-shadow和box-shadow都是CSS3新增属性。

text-shadow(文本阴影)

目前市场上的所有主流浏览器都支持这个属性,IE的话得有10以上才支持。
主要是有四个属性值

  1. 阴影水平偏移值。可以为负值
  2. 阴影垂直偏移值。可以为负值
  3. 阴影模糊值。不允许负值
  4. 阴影的颜色。
    那么首先来个小案例看看效果
// html部分
<div class="text">
	text-shadow
</div>
// css部分
.text{
	font-size: 30px;
	text-shadow: 5px 5px 5px red;
}

效果图
在这里插入图片描述
可以看到在文本的右下角出现了像影子一样的阴影。此时的文本给人感觉就像是悬浮起来了一样。
有些时候会想要阴影在文本的四周均匀分布,那也很简单,只要不让文本阴影偏移就可以了,只需要设置text-shadow的前两个属性值都为0就可以了。
在这里插入图片描述
那又有些时候可能需要一些别(花)具(里)一(胡)格(哨)的感觉。比如想要文本四周都显示不同的阴影,怎么搞?
也很容易,设置阴影的时候不只是只能设置一个方向的阴影,意思就是可以在text-shadow后面写多个不同方向上的不同的阴影,怎么实现?看代码

.text{
	margin: 30px;
	font-size: 40px;
	text-shadow: 0px 10px 5px red,
				 10px 0px 5px blue,
				 0px -10px 5px yellow,
				 -10px 0px 5px green;
}

为了更好的展示效果,我调大了阴影的偏移量。
效果图
在这里插入图片描述
可以明显的看到文本四周出现了不一样颜色的阴影,是不是非常别(花)具(里)一(胡)格(哨)。这也说明了文本设置阴影不一定只能设置一个阴影。
阴影的出现可以是动画性的,阴影加在hover后,设置transition属性

.text{
	margin: 30px;
	font-size: 40px;
	transition: all 0.8s;
}
.text:hover{
	text-shadow: 0px 10px 5px red,
				 10px 0px 5px blue,
				 0px -10px 5px yellow,
				 -10px 0px 5px green;
}

看效果
在这里插入图片描述

box-shadow(盒子阴影)

盒子阴影的属性值比文本阴影的属性值多两个

  1. 阴影水平偏移值
  2. 阴影垂直偏移值
  3. 阴影模糊值半径
  4. 阴影外延值(可以不写)
  5. 阴影的颜色
  6. 属性值固定inset。定义元素的阴影类型为内阴影,默认不写就是外阴影

此属性在IE9以上支持,主流浏览器都支持

老规矩,先来打个样

// html部分
<div class="box"></div>
// css部分
.box{
	width: 100px;
	height: 100px;
	margin: 30px;
	background-color: blue;
	box-shadow: 5px 5px 5px red;
}

此时在横向上纵向上都设置了一定的偏移量,看效果
在这里插入图片描述
阴影处于盒子的左下方,此处第三个模糊值可以不用设置,不设置就是没有毛边,没有这种阴影的感觉,不设置这个没多大用处。
想要阴影在盒子四周展示和text-shadow一样,偏移量都设置为0就可以了,这里就不多写无用代码了。
再来看看他的另外两个值加上去之后的效果

.box{
	width: 100px;
	height: 100px;
	margin: 30px;
	background-color: blue;
	box-shadow: 5px 5px 5px 10px red inset;
}

在这里插入图片描述
可以看到原本没有毛边的蓝色盒子现在有了毛边,这就可以验证是向内的阴影,10px就是阴影的扩散值。直白点解释就是给阴影加宽,并且这个宽不算在阴影的过渡内。
那么既然text-shadow能设置四周不一样的阴影那么box-shadow肯定也是可以的,text-shadow能哟动画性,box-shadow也是可以的,代码都是一样,这里就不写上来了。

注意点

关于这两个属性要注意的地方其实没什么,主要一点就是不要搞混了,前两天写一个进度条上面小圆点的阴影,加上阴影后就是不显示,没有阴影效果,我在那找半天,最后发现设置成了text-shadow。通过这个案例,希望大家引以为戒,不要像我这个憨憨一样。这么低级的错误。但是也总结出来了 ,如果你的阴影没有效果,不妨先看看是不是设置错了属性。