zoukankan      html  css  js  c++  java
  • 几种经典布局

    圣杯布局其实和双飞翼布局是一回事。

    它们实现的都是三栏布局两边的盒子宽度固定,中间盒子自适应,差别在于其实现的思想。

    本质都是利用float后的margin-left负值,形成布局。

    1.圣杯布局

    html:

    <div id="container">
        <div id="main" class="col">
        #main
        </div>
        <div id="left" class="col">
        #left
        </div>
        <div id="right" class="col">
        #right
        </div>
    </div>

    css:

    .col {position: relative;float: left;}
    
    #container {padding: 0 190px 0 190px;}
    
    #main {width: 100%;height: 400px;background-color: #ccc;}
    
    #left {width: 190px;height: 400px;margin-left: -100%;left: -190px;background-color: #0000FF;}
    
    #right {width: 190px;height: 400px;margin-left: -190px;right: -190px;background-color: #FF0000;}

    2.双飞翼布局

    <div id="container">
        <div id="main" class="col">
            <div id="main-wrap">
                #main
            </div>
        </div>
        <div id="left" class="col">
        #left
        </div>
        <div id="right" class="col">
        #right
        </div>
    </div>

    因为装main内容的div宽度是适应变化的,因此不能给它加上100%,所以考虑给main多嵌套了一层,使得可以在这层用100%,经过margin-left的移动后,不再需要position:relative+left定位的帮助

    3.三列等高布局

    实现了无论其中一列内容多高,其余2列都会跟着变高。
    HTML:
    <div id="wrap">
            <div id="left">
                left
            </div>
            <div id="center">
                center<br />
                center<br />
                center<br />
                center<br />
                center<br />
            </div>
            <div id="right">
                right
            </div>        
    </div>
    核心css代码:
    #wrap
    {
        overflow: hidden;
        width: 1000px;
        margin: 0 auto;
    }
    #left, #center, #right
    {
        margin-bottom: -10000px;
        padding-bottom: 10000px;
    }

    padding-bottom把每个盒子顶高,然后用负的margin-bottom将其收回来,对于最高的那列这个就刚好抵消了,毫无意义,但是对于较矮的那两列,父元素的可见区还是漏了一些padding出来,漏出来的padding就是它们与最高列之间的高度差了。

    所以说这里设置的几列之间最大的高度差不能超过10000px,当然我们可以修改css来增大它。

  • 相关阅读:
    如何在winform的numericUpDown中显示小数点
    Jquery attr 和removeAttr 的简单使用
    Linux下的多进程编程初步(转载)
    扩展GCD和线性模方程组
    05、Flutter常用组件
    12、Flutter组件装饰
    10、Flutter资源和图片
    09、Flutter手势控制
    04、FlutterDart语法
    07、FluterCupertino
  • 原文地址:https://www.cnblogs.com/amiezhang/p/8277095.html
Copyright © 2011-2022 走看看