Archive for Posts Tagged 高度:

一个另类的height:100%,width:100%的方法

07月 30th

这个方法是在做项目时候使用YUI,参考它对于阴影的做法得到的。
兼容性:
FF,IE7。IE6上不好用,虽然有hack的方法可以达到类似的效果,但是和实现的原理不一致。
IE6下设置bottom的值不能达到我们预想的效果,必须要设置height:100%。但是多数情况下,我们的父层container的元素会是自动适应内容高度而不是指定的高度,所以他的使用范围就打了一个折扣了。
代码如下:

#container{
width:200px;
height:300px;
border:1px solid red;
position:relative
}
#item{
position:absolute;
top:0px;
left:0px;
right:0px;
bottom:0px;
background:#ccc;
}
<div id="container">
<div id="item">this div id is item</div>
</div>

这样我们可以看到item的高度是和container的高度一致的。如果我们改变一下top和left等的值,就可以做出阴影一类的效果。
我用在哪里?
在wui项目中,需要用一个阴影的遮盖层来遮盖网页的部分内容,但是这个遮罩的大小又是不固定的,需要自动适应。半透明滤镜的方法大家都知道,在此就不多说。最初我们设置了一个大小固定的,足够大的遮盖层来处理,这样所有的内容都可以被遮盖到。但是由于ie对滤镜的渲染有问题,导致这样处理之后,页面奇慢无比。
当然最优的方案是遮盖层需要多大,我们就给他多大,这样可以最大程度的避免性能的损耗。而在项目中由于时间所限,又没办法使用脚本操作。所以就用了上述这个自动适应的办法。这样ff和ie7都满足了需求,而在处理ie6的时候,使用了一个适当大小的层来遮盖住一部分内容,这样兼顾了部分性能,以满足交互的需要。
主要问题在于YUI的另外一个观点:性能更优越的浏览器,我们应该让它更好。而不是一味兼顾所有浏览器上一致的表现。

Size

Colors