CSS3 实现特殊阴影 (学习笔记)

学习来源:慕课网http://www.imooc.com/view/240

先看效果图↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

HTML结构

 1 <body>
 2     <div class="wrap effect">
 3     <!-- effect类:是阴影类,其他元素也可以使用 -->
 4         <h1>Shadow Effect</h1>
 5     </div>
 6     <ul class="box">
 7         <li><img src="images/photo1.jpg" alt=""></li>
 8         <li><img src="images/photo2.jpg" alt=""></li>
 9         <li><img src="images/photo3.jpg" alt=""></li>
10     </ul>
11 </body>

CSS样式(省略了各浏览器前缀)

 1 /*通用类*/
 2 body { font-family: Arial; font-size: 20px;}
 3 body,ul {margin: 0; padding: 0; list-style: none;}
 4 .wrap {width:70%; height:200px; margin:50px auto; background: #fff; }
 5 .wrap h1 {font-size: 20px; text-align: center; line-height: 200px; }
 6
 7 /*弧度阴影*/
 8 .effect {
 9     position: relative;
10     box-shadow: 0px 1px 4px rgba(0,0,0,0.3),
11     0 0 10px rgba(0,0,0,0.1) inset;
12     /*添加一个范围=4px的小阴影;再添加一个范围=10px的内阴影;*/
13 }
14 .effect:before,.effect:after {
15     content: ‘‘;
16     background: #f00;
17     position: absolute;
18     z-index: -2;
19     top:50%; bottom:0; left:30px; right:30px;
20     /*设置四个方向值,然后浏览器自动计算盒子的大小;*/
21     box-shadow: 0px 0px 20px rgba(0,0,0,0.8);
22     /*设置添加的盒子的阴影;*/
23     border-radius: 100px/10px;
24     /*添加圆角:水平方向圆角大小是100px/垂直方向圆角大小是10px;*/
25 }
26
27 /*翘边阴影*/
28 .box{
29     width:980px;
30     height:auto;
31     clear:both;
32     overflow:hidden;
33     margin:20px auto;
34 }
35 .box li{
36     position: relative;
37     /*以li为定位基准;*/
38     width:300px;
39     height:210px;
40     float:left;
41     background: #fff;
42     margin:20px 10px;
43     border:2px solid #efefef;
44     box-shadow: 0px 1px 4px rgba(0,0,0,0.27);
45     /*给li添加一个小小的阴影;*/
46 }
47 .box li img {
48     display: block;
49     width:290px;
50     height:200px;
51     margin:5px;
52 }
53 .box li:before{
54     content: ‘‘;
55     position: absolute;
56     z-index: -3;
57     width:90%;
58     height:80%;
59     left:18px;
60     bottom:8px;
61     box-shadow: 0px 8px 20px rgba(0,0,0,0.6);
62     transform:skew(-12deg) rotate(-4deg);
63     /*图形向右倾斜12度;并逆时针旋转4度;*/
64 }
65 .box li:after{
66     content: ‘‘;
67     position: absolute;
68     z-index: -4;
69     width:90%;
70     height:80%;
71     right:18px;
72     bottom:8px;
73     box-shadow: 0px 8px 20px rgba(0,0,0,0.6);
74     transform:skew(12deg) rotate(4deg);
75     /*图形向左倾斜12度;并顺时针旋转4度;*/
76 }

之前在PS里用灰色图层叠加在其他图层下面做特殊阴影效果,相同思路应用到CSS里了。赞!

知识点补充↓↓↓↓↓↓↓

 1 1.box-shadow--添加一个或多个阴影
 2     >1.功能:box-shadow--添加一个或多个阴影;
 3     >2.语法:box-shadow:h-shadow v-shadow blur spread color inset;
 4     >3.参数:
 5         >>:h-shadow(必需):水平阴影的位置;允许负值;
 6         >>:v-shadow(必需):垂直阴影的位置;允许负值;
 7         >>:blur(可选):模糊距离;
 8         >>:spread(可选):阴影的尺寸;
 9         >>:color(可选):阴影的颜色;
10         >>:inset(可选):将外部阴影(outset)改为内部阴影;
11     >4.浏览器:IE9+/FF4
12
13 2.:before与:after
14     >1.:before选择器:在被选元素的内容前面插入内容;
15     >2.:after选择器:在被选元素的内容后面插入内容;
16     >3.说明:需要使用content属性来指定要插入的内容;
17     >4.浏览器:IE8及更早版本中的:after,必须使用<!DOCTYPE>;
18
19 3.transform--
20     >1.功能:向元素应用2D或3D转换
21     >1.语法:transform:none | transform-functions
22     >2.参数:
23         >>:skew(x-angle,y-angle):定义沿着X和Y轴的2D倾斜转换;
24         >>:skewX(angle):定义沿着X轴的2D倾斜转换;
25         >>:skewY(angle):定义沿着Y轴的2D倾斜转换;
时间: 2024-12-28 11:33:40

CSS3 实现特殊阴影 (学习笔记)的相关文章

CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运行平台还存在差异.屏幕分辨率不一样,大小不一样,比例不一样.兼容性主要可以分类为: 1).CSS兼容2).JavaScript兼容3).HTML兼容 这三类也是前端的主要组成部分,都存在一定的兼容性问题,知己知彼,百战百胜,我们先了解浏览器的发动机—内核. 多年前我们一直为IE6兼容烦恼,为它没少加

CSS3与页面布局学习笔记(四)——页面布局大全

一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能如下: 1.1.1.向上移动 当多个元素同时从标准流中脱离开来时,如果前一个元素的宽度为100%宽度,后面的元素通过负边距可以实现上移.当负的边距超过自身的宽度将上移,只要没有超过自身宽度就不会上移,示例如下: <!DOCTYPE html> <html> <head> &

CSS3与页面布局学习笔记(一)——概要、选择器、特殊性与刻度单位

web前端开发者最最注的内容是三个:HTML.CSS与JavaScript,他们分别在不同方面发挥自己的作用,HTML实现页面结构,CSS完成页面的表现与风格,JavaScript实现一些客户端的功能与业务.当然内容与用户资源也是不能忽视的.尽量不要跨职责范围使用,有点“SRP单一职责”的意思,如字体大小应该是CSS控制的,就不应该使用HTML标签完成,如果CSS能解决的问题尽量不要用JavaScript完成. 一.CSS3概要 CSS(Cascading Style Sheet)是层叠样式表的

CSS3与页面布局学习笔记(七)——前端预处理技术(Less、Sass、CoffeeScript、TypeScript)

CSS不像其它高级语言一样支持算术运算.变量.流程控制与面向对象特性,所以CSS样式较多时会引起一些问题,如修改复杂,冗余,某些别的语言很简单的功能实现不了等.而javascript则是一种半面向对象的动态语言,有java的影子,有C的味道,中间有比其它语言多的糟粕,使用预处理办法可以解决这些问题.其中Less[les]与Sass是CSS的预处理技术,而CoffeeScript.TypeScript则是javascript的预处理技术. 一.Less 1.1.概要 Less是一种动态样式语言,L

《HTML5与CSS3基础教程》学习笔记 ——Two Day

第七章 1.  样式表:选择器和生命块 2.  !important: 某条声明的重要程度比其他高,在末尾添加 3.  属性值:inherit;  是强制继承 4.  1em=16px; 5.  可以接受不带单位的属性:line-height.z-index.opacity 6.  background-color/color/border/box-shadow/text-shadow: rgba(89,0,127,.2);最后一个是透明度 7.  属性:hsl(95,10%,28%) 色相.饱

CSS3伸缩布局Flex学习笔记

如果需要使用伸缩布局首先得把display:flex;对于兼容还得加前缀display:-webkit-display:flex;等其他浏览器前缀,但我本机Chrome测试已经不需要加前缀了,其实这些还好,关键移动端竟然不支持这个属性,移动端支持的还是老版本的display:-webki-box;不过对于学习来说,也不管它支持不支持了,学了再说吧,更何况Chrome已经把flex的前缀去了,说明flex多少还是有些稳定的. 下面列出了关于CSS与flex一起使用的一些属性 display 显示方

《HTML5与CSS3基础教程》学习笔记 ——Four Day

第十六章 1.    输入和元素 电子邮件框 <input type="email"> 搜索框 <input type="search"> 电话框 <input type="tel"> URL 框 <input type="url"> 以下元素得到了部分浏览器的支持 日期 <input type="date"> 数字 <input type=

《HTML5与CSS3基础教程》学习笔记 ——补充

在HTML5中,空元素结尾处的空格和斜杠是可选的,但是在XHTML中,必须有斜杠,所以最好每次都把斜杠写上去. disabled和required可以要属性值,也可以不要属性值 1)        有属性值:disabled=” disabled”  required=” required” 2)        无属性值:disabled.required,但是审查元素时是:disabled=””  required=”” 文件命名: 1)        文件名全部使用小写,这样方便访问者访问

CSS3属性之transform学习笔记

transform的属性包括:1.rotate(旋转) 2.skew(斜切) 3.scale(缩放) 4.translate(位移变化),其中还有x,y之分,比如:rotateX,rotateY,以此类推. transform:rotate(); 如: @keyframes icon_3 { 0% { transform: rotate(0deg); } 50% { opacity: 1 } 100% { transform: rotate(360deg); opacity: 0.2 } } 含