用CSS3的box-reflect来制作倒影效果


Posted in HTML / CSS onNovember 15, 2016

兼容性

既然是CSS3的属性,我们当然要来看看兼容性:点击查看

接下来,我们来了解box-reflect如何使用?

语法如下:

-webkit-box-reflect:none | <direction> <offset>? <mask-box-image>?
  box-reflect:none | <direction> <offset>? <mask-box-image>?

属性说明:

none:此值为默认值,表示无倒影;

direction:生成倒影的方向

above:指定倒影在对象的上边 below:指定倒影在对象的下边 left:指定倒影在对象的左边 right:指定倒影在对象的右边

offset:图片与倒影间隔

length:用长度值来定义倒影与对象之间的间隔。可以为负值 percentage:用百分比来定义倒影与对象之间的间隔。可以为负值

mask-box-image:用来设置倒影的遮罩效果;

值可以是:

none:无遮罩图像 url:使用绝对或相对地址指定遮罩图像。 linear-gradient:使用线性渐变创建遮罩图像。 radial-gradient:使用径向(放射性)渐变创建遮罩图像。 repeating-linear-gradient:使用重复的线性渐变创建背遮罩像。 repeating-radial-gradient:使用重复的径向(放射性)渐变创建遮罩图像。

光是纸上谈兵可不行,我们还是要通过实例来看看效果。

倒影的方向

在这个例子中,我弄了三个img:

<div class="box1">   
  <img src="http://7s1r1c.com1.z0.glb.clouddn.com/t_sdfsdfs123.jpg" alt="" />   
</div>   
<div class="box2">   
  <img src="http://7s1r1c.com1.z0.glb.clouddn.com/t_sdfsdfs123.jpg" alt="" />   
</div>   
<div class="box3">   
  <img src="http://7s1r1c.com1.z0.glb.clouddn.com/t_sdfsdfs123.jpg" alt="" />   
</div>

css如下:

.box1,.box2,.box3{   
  width:120px;   
  float:left;   
  margin-right:180px;   
}   
img{   
  width:100%;   
}   
.box1 img{   
  -webkit-box-reflect:right;   
  box-reflect:right;   
}   
.box2 img,.box3 img{   
  -webkit-box-reflect: above;   
  box-reflect:above;   
}   
.box3{   
  padding-top:200px;   
}

效果图如下:

用CSS3的box-reflect来制作倒影效果

在这里有一个疑问,box2和box3中的图片都设置了box-reflect:above,都是在顶部生成投影,为什么box2看不到效果呢?原因就是我给box3设置了padding-top:200px,而box2没有,初步估计是因为没有空间让其显示生成的倒影。

倒影与对象之间的距离

了解了生成倒影的方向后,我们来看第二个属性,还是看例子:

依旧用三张图片,不过样式改变一下:

.box1 img{   
  -webkit-box-reflect:below 30px;   
  box-reflect:below 30px;   
}   
.box2 img{   
  -webkit-box-reflect:below -30px;   
  box-reflect:below -30px;   
}   
.box3 img{   
  -webkit-box-reflect:below 5%;   
  box-reflect:below 5%;   
}

效果图如下:

用CSS3的box-reflect来制作倒影效果

接下来我们学习最后一个属性。

遮罩效果

(1)使用渐变给倒影添加遮罩效果

.box1 img{   
  -webkit-box-reflect:below 0 -webkit-linear-gradient(top,rgba(250,250,250,0),rgba(250,250,250,.0) 30%,rgba(250,250,250,.3));   
  box-reflect:below 0 linear-gradient(top,rgba(250,250,250,0),rgba(250,250,250,.0) 30%,rgba(250,250,250,.3));   
}

效果如下:

用CSS3的box-reflect来制作倒影效果

使用背景图给倒影添加遮罩效果

首先我们需要一张五角星的png图片:

用CSS3的box-reflect来制作倒影效果

.box2 img{   
  -webkit-box-reflect:below 0 url(http://7s1r1c.com1.z0.glb.clouddn.com/t_star.png);   
  box-reflect:below 0 url(http://7s1r1c.com1.z0.glb.clouddn.com/t_star.png);   
}

效果如下:

用CSS3的box-reflect来制作倒影效果

总结

好了,到这里,本文关于CSS3的box-reflect属性的语法和使用已经介绍完了。希望本文的内容对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

HTML / CSS 相关文章推荐
CSS3对图片照片进行边缘模糊处理的实现
Aug 08 HTML / CSS
简单介绍CSS3中Media Query的使用
Jul 07 HTML / CSS
利用纯CSS3实现tab选项卡切换示例代码
Sep 21 HTML / CSS
CSS3实现多背景模拟动态边框的效果
Nov 08 HTML / CSS
10分钟理解CSS3 FlexBox弹性布局
Dec 20 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
May 15 HTML / CSS
移动端html5 meta标签的神奇功效
Jan 06 HTML / CSS
Html5新增标签有哪些
Apr 13 HTML / CSS
canvas里面如何基于随机点绘制一个多边形的方法
Jun 13 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
Jun 20 HTML / CSS
如何给HTML标签中的文本设置修饰线
Nov 18 HTML / CSS
html2canvas截图空白问题的解决
Mar 24 HTML / CSS
CSS3毛玻璃效果(blur)有白边问题的解决方法
Nov 15 #HTML / CSS
CSS3实现多背景模拟动态边框的效果
Nov 08 #HTML / CSS
CSS3实现同时执行倾斜和旋转的动画效果
Oct 27 #HTML / CSS
CSS3 :not()选择器实现最后一行li去除某种css样式
Oct 19 #HTML / CSS
CSS3点击按钮实现背景渐变动画效果
Oct 19 #HTML / CSS
CSS3实现各种图形的示例代码
Oct 19 #HTML / CSS
利用CSS3实现平移动画效果示例代码
Oct 12 #HTML / CSS
You might like
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
PHP7 弃用功能
2021/03/09 PHP
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
Python中多线程及程序锁浅析
2015/01/21 Python
Python中的pack和unpack的使用
2018/03/12 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
使用python计算三角形的斜边例子
2020/04/15 Python
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
物业经理求职自我评价
2013/09/22 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
pytorch实现ResNet结构的实例代码
2021/05/17 Python
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
利用Python实现模拟登录知乎
2022/05/25 Python