位置固定的层_总在最上面和总在最下面和总在中间_这里的滚动条是div的不是body的

本文介绍了一种在不同浏览器中实现固定头部和尾部的布局技巧,通过使用绝对定位和特殊的CSS样式确保内容在IE6等旧版浏览器中也能正确显示。文中还展示了如何利用JavaScript动态生成列表。

 <!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>  
<style type="text/css" >

    *{padding:0;margin:0;}  
    html,body{_height:100%;_overflow:hidden;} 
    #header{top:0;} 
    #footer{bottom:0;} 
     
    #header,#footer  
    {  
        position:fixed;  
        _position:absolute;  
        z-index:1000;  
        width:100%;  
        background:#eee;  
        left:0px;  
    } 
    #content  
    {  
        background:#ccc;  
        _height:100%;  
        _overflow:auto;  
        position:relative;  
        padding:20px;   
    } 
 
    #Layer1    
    {    
        position:absolute;    
        left:319px;    
        top:57px;    
        width:500px;    
        height:88px;    
        z-index:1;    
        border:#FF0000  solid  2px;    
    }

</style>  
</head>  
<body>  
<div id="header">header,我就是不下去~!</div>  
 
<div id="content">  
    <script language="javascript">for(i=0;i<100;i++){document.write(i+"<br />");} </script>  
    <div style="position:absolute; top:50px;left:5px;text-align:right;border:1px solid #aaa;">   
        123<br />  
        123<br />  
        123<br />  
        123<br />  
        123<br />  
        123<br />  
        在ie6下,这里也可以表现出absolute的效果   
    </div>  
</div>  
 
<div id="Layer1">我也不上去,我也不下去,我就不动我的地方。</div>  
 
<div id="footer">footer,我就是不上去~!</div>  
 
</body>  
</html>

要实现让 CSS 中 div 里面下面的一个 div 受高度滚动条影响且一直在父 div 下方,可以使用以下几种方法: ### 方法一:使用 `position: absolute` ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .parent { position: relative; height: 200px; overflow-y: auto; border: 1px solid #ccc; } .content { padding-bottom: 50px; /* 为底部固定元素留出空间 */ } .fixed-bottom { position: absolute; bottom: 0; left: 0; width: 100%; background-color: #f0f0f0; padding: 10px; } </style> </head> <body> <div class="parent"> <div class="content"> <!-- 这里可以放置滚动内容 --> <p>滚动内容 1</p> <p>滚动内容 2</p> <p>滚动内容 3</p> <p>滚动内容 4</p> <p>滚动内容 5</p> </div> <div class="fixed-bottom"> 这是固定在底部的内容 </div> </div> </body> </html> ``` 在这个方法中,父元素 `.parent` 设置为 `position: relative`,作为定位的参考。底部元素 `.fixed-bottom` 使用 `position: absolute` 定位到父元素的底部。同时,为了避免滚动内容覆盖底部元素,在 `.content` 中添加了 `padding-bottom`。 ### 方法二:使用 Flexbox ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .parent { display: flex; flex-direction: column; height: 200px; border: 1px solid #ccc; } .content { flex: 1; overflow-y: auto; } .fixed-bottom { background-color: #f0f0f0; padding: 10px; } </style> </head> <body> <div class="parent"> <div class="content"> <!-- 这里可以放置滚动内容 --> <p>滚动内容 1</p> <p>滚动内容 2</p> <p>滚动内容 3</p> <p>滚动内容 4</p> <p>滚动内容 5</p> </div> <div class="fixed-bottom"> 这是固定在底部的内容 </div> </div> </body> </html> ``` 使用 Flexbox 布局时,父元素 `.parent` 设置为 `display: flex` `flex-direction: column`,使子元素垂直排列。`.content` 使用 `flex: 1` 占据剩余的空间,并添加 `overflow-y: auto` 实现滚动。底部元素 `.fixed-bottom` 会自然地位于底部。 ### 方法三:使用 Grid 布局 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .parent { display: grid; grid-template-rows: 1fr auto; height: 200px; border: 1px solid #ccc; } .content { overflow-y: auto; } .fixed-bottom { background-color: #f0f0f0; padding: 10px; } </style> </head> <body> <div class="parent"> <div class="content"> <!-- 这里可以放置滚动内容 --> <p>滚动内容 1</p> <p>滚动内容 2</p> <p>滚动内容 3</p> <p>滚动内容 4</p> <p>滚动内容 5</p> </div> <div class="fixed-bottom"> 这是固定在底部的内容 </div> </div> </body> </html> ``` 使用 Grid 布局时,父元素 `.parent` 设置为 `display: grid`,并使用 `grid-template-rows: 1fr auto` 将第一行设置为占据剩余空间,第二行根据内容自动调整高度。`.content` 添加 `overflow-y: auto` 实现滚动,底部元素 `.fixed-bottom` 会固定在底部。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值