怎么用CSS做图层的投影效果?

html-css021

怎么用CSS做图层的投影效果?,第1张

用CSS做图层的投影效果,css2是做不到的,在css3中,我们可以通过box-shadow 内阴影与外阴影来实现,用法是,E {box-shadow:inset x-offset y-offset blur-radius spread-radius color},对象选择器 {text-shadow:投影方式 X轴偏移量 Y轴偏移量 阴影模糊半径 阴影扩展半径 阴影颜色};这里我们通过代码来理解:

<html>

<head>

<style>

#nav{

width:900px

height:30px

-moz-box-shadow:5px 5px 5px #999 inset           

-webkit-box-shadow:5px 5px 5px #999 inset       

box-shadow:5px 5px 5px #999 inset

}

</head>

<body>

<div class="nav" >

</div>

     

</body>

</html>

效果如图:

CSS3的动画的优点:

1.在性能上会稍微好一些,浏览器会对CSS3的动画做一些优化(比如专门新建一个图层用来跑动画)

2.代码相对简单

但其缺点也很明显:

1.在动画控制上不够灵活

2.兼容性不好

3.部分动画功能无法实现(如滚动动画,视差滚动等)

JavaScript的动画正好弥补了这两个缺点,控制能力很强,可以单帧的控制、变换,同时写得好完全可以兼容IE6,并且功能强大。但想想CSS动画的transform矩阵是C++级的计算,必然要比javascript级的计算要快。另外对库的依赖也是一个很让人头疼的问题。

所以,对于一些复杂控制的动画,使用javascript会比较靠谱。而在实现一些小的交互动效的时候,就多考虑考虑CSS吧。

完全可以,不过效果和ps出来的还是会有差距的。

<style>

.gaguang{width:300pxtext-align:center}

.box{width: 300px

height: 100px

background: #3B4C2C

border: 4px solid white

box-shadow: 0 0 10px #333

border-radius: 10px

opacity: 0.8}

.gg{width: 400px

height: 200px

border-radius: 45%

margin-top: -265px

z-index: 1

background: white

opacity: 0.1

margin-left: -45px}

.wz{z-index:0position:absolutetop:40pxcolor:#fffwidth:300px}

</style>

<div class="gaguang">

<div class="box"></div>

<div class="wz">这里是内容,这里是内容,</div>

<div class="gg"></div>

</div>