在接下来的一段时间学习看云上购买的一本Web开发实战书籍,来提升自己的软实力。
本部分为css实战部分。
白光划过效果
创建模板
我们要放置一张图片,用一个div包裹起来:
设置CSS样式
定义初始样式:
接着让我们来制作白光,我们不需多余的元素,只需使用:before选择器.position为伪类定位:
我们使用渐变(linear-gradient)来实现白光效果,同时为了斜向划过,使用transform: rotate(45deg)将其旋转45度。
上面的height、width、top和left,你也可以使用具体的像素值,不过建议采用百分比,这样可以重复使用,而不需手动改变太多值。
触发白光(hover伪类和css3动画):
截图效果(鼠标划入时的效果)
3D立方体
随着CSS3的出现,实现3D效果已经不是难事,这一节就来看看3D立方体是如何实现的。
创建模板
首先来放置一个父div.cude,然后在其里面放置6个div,分别表示立方体的6个面。
设置CSS样式
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
.cude { width:300px; height:300px; position:relative; margin:100px auto; transform-style:preserve-3d; -webkit-transform-style:preserve-3d;}.surface { position:absolute; top:0; left:0; width:300px; height:300px; background:#666; opacity:0.8; font-size:60px; text-align:center; line-height:300px; font-weight:bold; color:#fff; border:1px solid #fff; -webkit-transition:all .3s; transition:all .3s;}.surface img { width:100%;}.front { transform:rotateY(0) translateZ(150px);}.back { transform:translateZ(-150px) rotateY(180deg);}.left { transform:rotateY(-90deg) translateZ(150px);}.right { transform:rotateY(90deg) translateZ(150px);}.top { transform:rotateX(90deg) translateZ(150px);}.bottom { transform:rotateX(90deg) translateZ(-150px);}@-webkit-keyframes rotate { from { transform: rotateX(0deg) rotateY(0deg); } to { transform: rotateX(360deg) rotateY(360deg); }}
总结:
- 使用了before和after伪类
- linear-gradient-api的使用
- animation
- transform(分为2D转换和3D转换)
- 2d转换:translate(x,y)、translateX(x)、translateY(y)、scale(x,y)、scaleX(x)、scaleY(y)、rotate(angle)、skew(x-angle,y-angle)、skewX(angle)
- 3d转换:translate3d(x,y,z)、translateZ(z)、scale3d(x,y,z)、scaleZ(z)、rotate3d(x,y,z,angle)、rotateX(angle)、rotateY(angle)、rotateZ(angle)
参考文档