CSS学习笔记(七)阴影

1.简单CSS阴影

将一个大的阴影图像应用于容器div的背景,然后使用负值的空白边偏移这个图像,从而显出阴影。

<div class="img-wrapper"><img src="dunstan.jpg" width="300" height="300" alt="qixing"/></div>

.img-wrapper{

  background:url(images/shadow.gif) no-repeat bottom left;

  clear:right;

  float:left;

}

为了露出阴影图像并显出阴影效果,需要使用负值的空白边偏移这个图像

img-wrapper img{

  margin:-5px 5px 5px -5px;

}

还可以给图像添加边框和一些填充,从而产生类似照片的边框的效果。

.img-wrapper img{

  background-color:#fff;

  border:1px solid #a9a9a9;

  padding:4px;

  margin:-5px 5px 5px -5px;

}

但要在IE6中能够显示正确的效果,还需添加两个简单的规则:

.img-wrapper{

  background:url(images/shadow.gif) no-repeat bottom right;

  clear:right;

  float:left;

  position:relative;

}

.img-wrapper img{

  background-color:#fff;

  border:1px solid #a9a9a9;

  padding:4px;

  display:block;

  margin:-5px 5px 5px -5px;

  position:relative;

}

2.Clagnut的阴影方法

这种阴影技术不使用负值的空白边,而是使用相对定位来偏移图像。

.img-wrapper{

  background:url(images/shadow.gif) no-repeat bottom right;

  float:left;

  line-height:0;

}

.img-wrapper img{

  background-color:#fff;

  border:1px solid #a9a9a9;

  padding:4px;

  position:relative;

  left:-5px;

  top:-5px;

}

3.模糊阴影

通过使用PNG和蒙版并添加一个无语义的div,可以实现模糊阴影。

这种技术创建一个具有alpha透明度的PNG来盖住阴影图像的边缘。

首先是创建一个800x800的左和上边缘由白色到透明渐变的5px的透明图像mask.png

但是,由于IE6不支持PNG的alpha透明度,为了适应这部分浏览器,需要创建一个替代图像,即创建一个gif蒙版,左和顶5px填充白色

<div class="img-wrapper">

  <div>

    <img src="dunstan.jpg" width="300" height="300" alt="Qixing"/>

  </div>

</div>

首先,将阴影图像应用于img-wrapper div,将它对准右下角:

.img-wrapper{

  background:url(images/shadow.gif) no-repeat bottom right;

  float:left;

}

接下来,将蒙版图像应用于内层div的左上角,所以这两个背景图像都被主图像盖住了,要进行偏移,只需在内层div的底部和右边应用一些填充。

.img-wrapper div{

  background:url(images/mask.png) no-repeat left top !important;

  background:url(images/mask.gif) no-repeat left top;

  padding:0 5px 5px 0;

}

将PNG和gif都应用于这一规则,是为了适应不同浏览器(如:IE6)对PNG的alpha透明度的支持,通过使用!important,比较现代的浏览器将显示PNG,而IE用户会看到gif

幸运的是,IE5.5或更高版本提供了一些专有的CSS,可以实现PNG的透明度

为了避免使用这些专有的CSS而使CSS文件失效,更适合的方式是将规则放在一个单独CSS,然后对除IE之外的浏览器隐藏它,为此创建一个ie55.css并添加代码:

.img-wrapper div{

  filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/shadow2.png',sizingMethod='crop');

  background:none;

}

在页面开头添加以下代码:

<!--[if gte ie 5.5000]>

  <link rel="stylesheet" type="text/css" href="ie55.css"/>

<![end]-->

原文地址:https://www.cnblogs.com/qixing/p/2860078.html