CSS3实现曲线阴影和翘边阴影
网站建设 2021-07-03 08:15www.dzhlxh.cn网站建设
本文实例为大家分享了CSS3实现曲线阴影和翘边阴影的效果,原来不用ps技术也可以实现阴影效果,很棒的效果,供大家参考,具体内容如下
效果图如下:
index.html
XML/HTML Code复制内容到剪贴板
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>CSS3实现曲线阴影和翘边阴影</title>
- <style>
- /*源于imooc的学习*/
- body {
- font-family: "微软雅黑", "Microsoft YaHei";
- font-size: 20px;
- }
- body, ul, li, h1 {
- padding: 0;
- margin: 0;
- }
- ul {
- list-style: none outside none;
- }
- .wrap {
- width: 70%;
- height: 200px;
- margin: 50px auto;
- background-color: #fff;
- }
- .wrap h1 {
- font-size: 40px;
- text-align: center;
- line-height: 200px;
- }
- /**
- * box-shadow
- * 功能:添加一个或多个阴影
- * 语法:box-shadow: h-shadow v-shadow blur spread color inset;
- * 参数:
- * h-shadow(必需):水平阴影的位置。允许负值。
- * v-shadow(必需):垂直阴影的位置。允许负值。
- * blur(可选):模糊程度,值越大越模糊。
- * spread(可选):阴影的尺寸。一般不推荐设置。
- * color(可选):阴影的颜色。请参阅CSS颜色值。
- * inset(可选):将外部阴影(outset)改为内部阴影。
- * 浏览器兼容:
- * IE9+、Firefox 4、Chrome、Opera以及Safari 5.1.1支持box-shadow属性。
- */
- .effect {
- position: relative;
- /*box-shadow: h-shadow v-shadow blur color [inset];*/
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
- -o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
- }
- /**
- * :after选择器:在被选元素的内容后面插入内容
- * :before选择器:在备选元素额内容后面插入内容
- * 说明:需要使用content属性来指定要插入的内容
- * 浏览器兼容:
- * 对于IE8及更早版本的:after,必须声明<!DOCTYPE>。
- *
- * content属性用于定义元素之前或之后放置的生成内容。默认地,这往往是行内内容,不过该内容创建的
- * 框类型可以用属性display控制。
- */
- .effect::after,.effect::before {
- content: '';
- background: #f00;
- position: absolute;
- top: 50%;
- bottom: 0;
- left: 20px;
- right: 20px;
- -webkit-box-shadow: 0 0 20px rgba(0,0,0,0.8);
- -moz-box-shadow: 0 0 20px rgba(0,0,0,0.8);
- -o-box-shadow: 0 0 20px rgba(0,0,0,0.8);
- box-shadow: 0 0 20px rgba(0,0,0,0.8);
- border-radius: 100px/10px; /*水平半径/垂直半径*/
- z-index: -1;
- }
- .box {
- width: 980px;
- height: auto;
- clear: both;
- overflow: hidden;
- margin: 20px auto;
- }
- .box li {
- width: 300px;
- height: 210px;
- float: left;
- margin: 20px 10px;
- border: 2px solid #EFEFEF;
- -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 60px rgba(0,0,0,0.1) inset;
- -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 60px rgba(0,0,0,0.1) inset;
- -o-box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 60px rgba(0,0,0,0.1) inset;
- box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 60px rgba(0,0,0,0.1) inset;
- position: relative;
- background-color: #FFF;
- }
- .box li img {
- display: block;
- width: 290px;
- height: 200px;
- margin: 5px;
- }
- .box li:before {
- content: '';
- position: absolute;
- width: 90%;
- height: 80%;
- left: 20px;
- bottom: 8px;
- /*background-color: #F00;*/
- background-color: transparent;
- box-shadow: 0 8px 20px rgba(0,0,0,0.6);
- -webkit-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
- -moz-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
- -o-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
- /**
- * transform
- * 功能:向元素应用2D或3D转换
- * 语法:transform: none|transform-functions
- * 参数:
- * skew(x-angle,y-angle) 定义沿着X和Y轴的2D倾斜转换
- * skewX(angle) 定义沿着X轴的2D倾斜转换。
- * skewY(angle) 定义沿着y轴的2D倾斜转换。
- * 浏览器兼容:
- * Internet Explorer 9支持替代的-ms-transform属性(仅适用于2D转换)
- * Safari和Chrome支持替代的-webkit-transform属性(3D和2D转换)
- * Opera只支持2D转换。
- */
- -webkit-transform: skewX(-11deg) rotate(-4deg);
- -moz-transform: skewX(-11deg) rotate(-4deg);
- -ms-transform: skewX(-11deg) rotate(-4deg);
- -o-transform: skewX(-11deg) rotate(-4deg);
- transform: skewX(-11deg) rotate(-4deg);
- z-index: -1;
- }
- .box li:after {
- content: '';
- position: absolute;
- width: 90%;
- height: 80%;
- right: 20px;
- bottom: 8px;
- background-color: transparent;
- box-shadow: 0 8px 20px rgba(0,0,0,0.6);
- -webkit-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
- -moz-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
- -o-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
- -webkit-transform: skewX(11deg) rotate(4deg);
- -moz-transform: skewX(11deg) rotate(4deg);
- -ms-transform: skewX(11deg) rotate(4deg);
- -o-transform: skewX(11deg) rotate(4deg);
- transform: skewX(11deg) rotate(4deg);
- z-index: -1;
- }
- </style>
- </head>
- <body>
- <div class="wrap effect">
- <h1>Shadow Effect</h1>
- </div>
- <ul class="box">
- <li><img src="images/1.jpg" alt="1.jpg"></li>
- <li><img src="images/2.jpg" alt="2.jpg"></li>
- <li><img src="images/3.jpg" alt="3.jpg"></li>
- </ul>
- </body>
- </html>
以上就是本文的全部内容,希望对大家的学习有所帮助。
上一篇:浅析CSS等高布局的6种方式
下一篇:CSS3让登陆面板3D旋转起来