zoukankan      html  css  js  c++  java
  • css实现等高布局 两栏自适应布局 三栏自适应布局

    等高布局:

    HTML结构如下:

    <div class="wrapper">
        <div class="box">
            <h1>...</h1>
            <p>...</p>
            <div class="bottom"></div>
        </div>        
    </div>


    1.padding补值法

    css代码如下:

    .wrapper{
                width: 100%;
                overflow: hidden;
            }
            .box{
                width: 250px;
                margin-left: 20px;
                float: left;
                display: inline;
                padding: 20px;
                background: #89ac10;
                margin-bottom: -500px;
                padding-bottom:500px;
                border: 2px solid #f0c;
            }

    运行结果如下:

    缺点:等高的div没有底边的边框,常用解决方法是使用背景图模仿底部边框或者使用div来模仿底部边框。

    2.

    css代码如下:

    .wrapper{
                width: 100%;
                overflow: hidden;
                position: relative;
                background: #98f59e;
            }
            .box{
                width: 250px;
                padding: 20px;
                padding-bottom: 220px;
                margin-bottom: -200px;
                margin-left: 20px;
                float: left;
                display: inline;
                background: #89ac10;
                border: 2px solid red;
            }
            .bottom{
                position:absolute;
                bottom: 0;
                height: 2px;
                width: 290px;
                background: red;
                margin-left: -20px;
            }

    运行结果如下:

     3.flex弹盒布局法:(简单-推荐)

    css代码如下:

    .wrapper{
                width: 100%;
                display: flex;
                background: #98f59e;
                align-items: stretch;
            }
            .box{
                width: 250px;
                margin-left: 20px;
                background: #89ac10;
            }

     运行结果如下:

    4.设置display值为table-cell

    css代码如下:

    .wrapper{
                width: 100%;
                background: #98f59e;
            }
            .box{
                width: 250px;
                background: #89ac10;
                display: table-cell;
                border: 1px solid red;
                /*margin 无效*/
            }

    在此设置margin值是不起作用的,运行结果如下:

    两栏自适应布局:

    HTML代码如下:

    <div class="left">
            left
        </div>
        <div class="right">
            right
        </div>

    1.浮动布局:

    css代码如下:

    .left{
                float: left;
                width: 300px;
                height: 400px;
                background: #41d844;
            }
            .right{
                margin-left: 310px;
                height: 400px;
                background: #41d800;
            }

    运行结果如下:

    2.绝地定位布局:

    css代码如下:

    .left{
                position: absolute;
                margin-right: -100%; 
                width: 300px;
                height: 400px;
                background: #925;
            }
            .right{
                margin-left: 310px;
                height: 400px;
                background: #41d800;
            }

     运行效果如下:

    三栏自适应布局:

    1.float+负margin实现

     HTML代码如下:

    <div class="container">
            <div class="center">center</div>
        </div>
        <div class="left">left</div>
        <div class="right">right</div>

    css代码如下:

    .container{
                width: 100%;
                height: 300px;
                float: left;
            }
            .center{
                background: #16ea74;
                height: 300px;
                margin-left: 250px;
                margin-right: 250px;
            }
            .left{
                background: #16ea26;
                float: left;
                width: 200px;
                height: 300px;
                margin-left: -100%;
            }
            .right{
                background: #16ea26;
                float: left;
                width: 200px;
                height: 300px;
                margin-left: -200px;
            }

     实现效果如下:

    2.float方法:

    HTML代码如下:

    <div class="left">left</div>
        <div class="right">right</div>
        <div class="container">
            <div class="center">center</div>
        </div>

    css代码如下:

    .center{
                background: #16ea74;
                height: 300px;
                margin-left: 250px;
                margin-right: 250px;
            }
            .left{
                background: #16ea26;
                float: left;
                width: 200px;
                height: 300px;
            }
            .right{
                background: #16ea26;
                float: right;
                width: 200px;
                height: 300px;
            }

    运行效果如下:

    与第一种方法差距在元素书写顺序上,左右浮动后脱离文档流设置中间元素margin左右值。

  • 相关阅读:
    javascript:让表单 文本框 只读,不可编辑的方法
    javascript从url中获取请求参数
    jQuery 效果函数,jquery文档操作,jQuery属性操作方法,jQuerycss操作函数,jQuery参考手册-事件,jQuery选择器
    IIS中添加MIME类型
    谷歌工作方法流程相关4本书
    发财、升职带来的幸福感很快会消失,量化研究幸福的5+3本书
    棉纺织品的历史就是工业革命和资本主义的历史:5星|《棉花帝国:一部资本主义全球史》(上)
    (严重剧透)被川岛芳子包养的民国老军医:3.5星|麦家《人生海海》
    3星|《医疗创业与投资启示录》:相关资料汇编
    3星|秦朔《文明寻思录第三辑》:时事点评文集,观点多事实少
  • 原文地址:https://www.cnblogs.com/CooLLYP/p/7767648.html
Copyright © 2011-2022 走看看