CSS3是最近兴起的一种技术,就是因为css2之前的功能太局限,不能满足需求,所以有关组织研究出了css3这门技术。其实也就是在原来的css基础上增加了很多扩展功能,不过功能确实是很强大。今天先来看两个知识点,不过这里的例子一定要用版本较高的浏览器运行哦,推荐chrome。
好了,废话不多说,闲来看第一个例子,圆角盒子:
html:
<!DOCTYPE html> <head> <meta charset="utf-8" /> <title>盒子圆角和阴影</title> <link href="style.css" rel="stylesheet" /> </head> <body> <p>圆角盒子</p> <div class="box1"></div> <p>四个角还能分别设置</p> <div class="box2"></div> </body>check the result
css:
.box1 { width : 100px; height : 100px; background-color : pink; border-radius : 20px; } .box2 { width : 100px; height : 100px; background-color : pink; border-top-right-radius : 10px; border-bottom-right-radius : 20px; border-bottom-left-radius : 30px; border-top-left-radius : 40px; }
其实很简单,可以通过border-radius设置圆角半径,还能分别设置4个角的圆角半径。
觉得没什么用,那是没有发挥想象,看看下面这个例子,一个奥运五环:
html:
<!DOCTYPE html> <head> <meta charset="utf-8" /> <title>盒子圆角和阴影</title> <link href="style.css" rel="stylesheet" /> </head> <body> <ul class="flag"> <li class="circle blue"></li> <li class="circle blue blueRightBorder"></li> <li class="circle yellow"></li> <li class="circle yellow yellowTopBorder"></li> <li class="circle black"></li> <li class="circle black blackRightBorder"></li> <li class="circle green"></li> <li class="circle green greenTopBorder"></li> <li class="circle red"></li> </ul> </body>check the result
css:
.flag { position : relative; } .circle { list-style-type : none; width : 80px; height : 80px; border : 10px solid; border-radius : 50px; position : absolute; top : 0px; left : 0px; } .blue { border-color : blue; } .yellow { border-color : yellow; top : 50px; left : 55px; } .black { border-color : black; top : 0px; left : 110px; } .green { border-color : green; top : 50px; left : 165px; } .red { border-color : red; top : 0px; left : 220px; } .blueRightBorder { z-index : 4; border-bottom-color : transparent; } .yellowTopBorder { z-index : 3; border-right-color : transparent; } .blackRightBorder { z-index : 2; border-bottom-color : transparent; } .greenTopBorder { z-index : 1; border-right-color : transparent; }
首先,如果圆角半径就等于宽度的一半,那么不就可以形成圆形吗?而由之前的盒子模型,要把border的厚度也考虑进去。然后再通过left和top的偏移设置就可以定位五环。最后也是最复杂的,就是相互覆盖的关系,这里我们把需要覆盖的圆形复制了一份,然后通过设置z-index和一些边的透明,来实现了五环的效果。
还有一个特别不错的属性就是box-shadow,可以用来设置盒子的阴影,来看看例子:
html:
<!DOCTYPE html> <head> <meta charset="utf-8" /> <title>盒子圆角和阴影</title> <link href="style.css" rel="stylesheet" /> </head> <body> <div class="shadowBox">我有阴影</div> <div class="multiShadowBox">我有多个阴影</div> <div class="spreadShadowBox">扩展半径</div> <div class="innerShadowBox">内阴影</div> </body>check the result
css:
.shadowBox { width : 100px; height : 100px; background-color : pink; box-shadow : 10px 10px 20px black; } .multiShadowBox { width : 100px; height : 100px; margin-top : 30px; background-color : pink; box-shadow : 2px 2px 10px red, 10px 10px 20px black; } .spreadShadowBox { width : 100px; height : 100px; margin-top : 30px; background-color : pink; box-shadow : 10px 10px 20px 10px black; } .innerShadowBox { width : 100px; height : 100px; margin-top : 30px; background-color : pink; box-shadow : inset 0px 0px 20px 5px black; }
这个box-shadow可以设置6个属性,分别是投影方式,x的偏移,y的偏移,模糊半径,扩展半径和颜色,也可以设置多重阴影,中间用逗号隔开。投影方式默认外投影,如果设置为inset则为内投影。
阴影能干什么?再来看个实际例子:
html:
<!DOCTYPE html> <head> <meta charset="utf-8" /> <title>盒子圆角和阴影</title> <link href="style.css" rel="stylesheet" /> </head> <body> <div class="border"><img src="pic.png"/></div> </body>check the result
css:
.border { width : 120px; height : 120px; text-align : center; box-shadow : 0px 0px 5px black; } .border img { margin-top : 10px; }
这样一设置,照片是不是就显得高大上了呢?用它来显示petshow中的照片岂不是效果会好很多?