zoukankan      html  css  js  c++  java
  • 两栏自适应布局

    第一种方法,采用左列 left 浮动,右列不浮动,采用 margin-left 定位的方式。此方法会有一个 ie6 3px bug . 另外,当浏览器框缩小到一定程度时,右侧会掉下来。
    #left{100px;height:100px;border:2px solid #333;float:left;}
    #right{height:300px;margin-left:104px; border:2px solid #333;background:#cccurl(http://www.baidu.com/img/baidu_logo.gif) no-repeat;
    }
    <div id="left"> left </div>
    <div id="right"> 1111<br />1111<br />1111<br />1111<br />1111<br />1111<br />111<br/>11</div>
     
     
    第二种方法:采用左列向左浮动,右列绝对定位。为解决 ie6 下右列不撑开问题,在右列中设置一元素右浮动 ( 不是个好方法 )。
    #sidebar{100px;height:100px;float:left;border:2px solid #333333;}
    #Wrap{position:absolute;left:113px;right:5px;height:300px;border:2px solid #333333;background:#ccc url(http://www.baidu.com/img/baidu_logo.gif) no-repeat;}
    #floatSpan {float:right;} //for ie6
    <div id="sidebar"> left </div>
    <div id="Wrap"> right<br />right<br />right<br />right<br />right<br />right<br />right<br />right<br />right<br /> <span id="floatSpan"><span>
    </div>
    此中 wrap 的 right:0; 本是为撑开右列而设置。无奈 ie6 下无效。故设置了 floatSpan。有此之后,去除 float:right 也无影响于效果。
     
     
    第三种方法,左列使用绝对定位,右列使用 margin-left 定位。
    .left{100px;height:100px;border:2px solid #333;position:absolute;left:0; top:0; }
    .right{height:300px;margin-left:104px;border:2px solid #333;background:#cccurl(http://www.baidu.com/img/baidu_logo.gif) no-repeat;}
    <div style="position:relative;overflow:hidden;100%;"> <!-- 使用width是为了解决ie6下的bug -->
       <div class="left"> left </div>
       <div class="right"> right<br />right<br />right<br />right<br />right<br />right<br />right<br />right<br />right</div>
    </div>
     
     
    纵观前面的几种方法,不是使用了 margin-left 定位,就是借助 position 的 left 定位,这两种定位方法,都需要事先知道 left 列的宽度,扩展性上不是很好。
     
     
    第四种方法,我们可以借助 ie 下的 haslayout 让 right 列触发 haslayout。而 FF 下则使用 overflow:hidden。
    #left{float:left;100px;height:100px;border:2px solid #333;
    }
    #right{overflow:hidden;zoom:1; border:2px solid #333;background:#cccurl(http://www.baidu.com/img/baidu_logo.gif) no-repeat;
    }
    <div id="left"> left </div>
    <div id="right"> 1111<br />1111<br />1111<br />1111<br />1111<br />1111<br />111<br />11</div>
  • 相关阅读:
    Qt实战6.万能的无边框窗口(FramelessWindow)
    Qt实战5.如何获取USB设备信息?
    Qt实战4.简单封装的文件监控
    Qt实战3.Qt仿Win10风格界面
    Linux下使用脚本让程序顺序启动
    项目经验1.软件的开发过程
    Qt实战2.老生常谈的文件传输
    mysql导入txt文件
    linux离线安装python3
    mysql知识点
  • 原文地址:https://www.cnblogs.com/chuangweili/p/5163112.html
Copyright © 2011-2022 走看看