2009-01-3 下午 - html/css/xml/xsl - position - 自适应
某些时候可能需要用到“高度的自适应”。今天又空,就专门去研究了一下,其实原理很简单。
利用position绝对定位容器,设置其高度的百分比,但要注意同时初始化<html><body>的高度值(一般100%),如以下代码。
html {height:100%; max-height:100%;}
body {height:100%; max-height:100%; overflow: hidden;}
一个简单的示例,可以下载文档查看。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- <style type="text/css">
- * { padding:0; margin:0;}
- html {height:100%; max-height:100%;}
- body {height:100%; max-height:100%; overflow: hidden;}
- .box { position:absolute; top:30px; bottom:15px; overflow:auto; background:#ccc; width:200px;}
- .inner { height:1000px;}
- </style>
- </head>
- <body>
- <div class="box">
- <div class="inner"></div>
- </div>
- </body>
- </html>
在具体的实例应用中,肯定是要牵涉到多个容器,那么就可能需要用到z-index来区分开层级显示。下面是我今天弄出来的一个具体的页面。时间仓促,尚有不足之处,见谅!如果你又兴趣,大可以“另存为”而进行研究。将来肯定是有一番用武之处的。
具体示例:一个高宽自适应100%,所有容器均用?%设置大小
1 Comment »
2008-07-4 下午 - html/css/xml/xsl - fixed - ie6 - position - 固定定位
原理:出去网页以及
原有的滚动条,用一个[div]模拟它。然后将要固定定位的区块置于这个模拟层之外,即可实现需要的效果。因为这时滚动条拖动的只是模拟的那个层,而固定定位的这个层根本就不在这个区块内,所以就不会跟随滚动条而动。
利用CSS控制行的属性:
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <style type="text/css">
- html,body { margin:0; padding:0; overflow:hidden;height:100%; width:100%; text-align:left;}
- .body { position:relative; width:100%; height:100%; overflow-y:scroll; overflow-x:auto; cursor:default;}
- .box { position:absolute; z-index:999; margin:0 auto; bottom:10px; left:40px; width:800px; height:40px; border:1px solid #369; background:#f7f7f7; line-height:40px;}
- </style>
- <div class="box">我是不会被你拖着走的!</div>
- <div class="body">
- <p style="margin:15px;">看屏幕底端的区块,再拖动浏览器的滚动条,结果怎么样?满意吧,惊喜吧!</p>
- <div style="height:1000px;"></div>
- </div>
如果不明白,就自己再多想想吧!
还有种方法就是利用js来实现了。在此也顺便贴出来吧!
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- .floatBar { width:100%; position:fixed; bottom:0!important;height:31px; background:#f7f7f7; border:1px solid #369;}
- .floatBar {
- _position:absolute;
- _top:expression(eval(document.compatMode &&
- document.compatMode=='CSS1Compat') ?
- documentElement.scrollTop
- +(documentElement.clientHeight-this.clientHeight) - 100
- : document.body.scrollTop
- +(document.body.clientHeight-this.clientHeight) - 100);
- }
-
- <div style="height:800px;">下面的层是不随滚动条而动的。</div>
- <div class="floatBar">
- 这个是利用js实现的固定定位。
- </div>
两个方法都不错哦!值得推荐的!
1 Comment »