代码之家  ›  专栏  ›  技术社区  ›  Mocky

IE6中的固定页面布局

  •  3
  • Mocky  · 技术社区  · 16 年前

    页眉、页脚和侧栏具有固定位置。在中间有一个内容区域,其中有两个滚动条。浏览器上没有外部滚动条。我有一个在IE7和FF中工作的布局。我需要添加IE6支持。我怎样才能做到这一点?

    这里是我当前的CSS的近似值。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    
    <head>
      <title>Layout</title>
      <style>
        * {
          margin: 0px;
          padding: 0px;
          border: 0px;
        }
    
        .sample-border {
          border: 1px solid black;
        }
    
        #header {
          position: absolute;
          top: 0px;
          left: 0px;
          right: 0px;
          height: 60px;
        }
    
        #left-sidebar {
          position: absolute;
          top: 65px;
          left: 0px;
          width: 220px;
          bottom: 110px;
        }
    
        #right-sidebar {
          position: absolute;
          top: 65px;
          right: 0px;
          width: 200px;
          bottom: 110px;
        }
    
        #footer {
          position: absolute;
          bottom: 0px;
          left: 0px;
          right: 0px;
          height: 105px;
        }
    
        @media screen {
          #content {
            position: absolute;
            top: 65px;
            left: 225px;
            bottom: 110px;
            right: 205px;
            overflow: auto;
          }
          body #left-sidebar,
          body #right-sidebar,
          body #header,
          body #footer,
          body #content {
            position: fixed;
          }
        }
      </style>
    </head>
    
    <body>
      <div id="header" class="sample-border"></div>
      <div id="left-sidebar" class="sample-border"></div>
      <div id="right-sidebar" class="sample-border"></div>
      <div id="content" class="sample-border"><img src="/broken.gif" style="display: block; width: 3000px; height: 3000px;" /></div>
      <div id="footer" class="sample-border"></div>
    </body>
    
    </html>
    
    5 回复  |  直到 7 年前
        2
  •  1
  •   palotasb    16 年前

    <head>

    <!--[if lte IE 6]>
    <style type="text/css">
    html, body {
        height: 100%;
        overflow: auto;
    }
    .ie6fixed {
        position: absolute;
    }
    </style>
    <![endif]-->
    

    ie6fixed position: fixed;

        3
  •  1
  •   Mocky    16 年前

    <!--[if lt IE 7]>
    <style>
    body>div.ie6-autoheight {
      height: 455px;
    }
    body>div.ie6-autowidth {
      right: ;
      width: 530px;
    }
    </style>
    <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script>
    <script type="text/javascript">
    
    function fixLayout() {
       if (document.documentElement.offsetWidth) {
          var w = document.documentElement.offsetWidth - 450;
          var h = document.documentElement.offsetHeight - 175;
          var l = document.getElementById('left-sidebar');
          var r = document.getElementById('right-sidebar');
          var c = document.getElementById('content');
    
          c.style.width = w;
          c.style.height = h;
          l.style.height = h;
          r.style.height = h;
       }
    }
    window.onresize = fixLayout;
    fixLayout();
    </script>
    <![endif]-->
    
        4
  •  0
  •   Cade    16 年前