垂直三列中间元素自动宽度布局

1.最常见的垂直三列布局

html代码:
<body>
<div id="">
    <div>
    <div class="left_div">
    left
    </div>
    <div class="mid_div">
        现在可能还可以在很多老的站点上可以看到这样的代码,相当暴力有效的解决浮动的问题。但是这个用法有一个致命伤,就是每次清除浮动的时候都需要增加一个空标签来使用。
        这种做法如果在页面复杂的布局要经常清楚浮动的时候就会产生很多的空标签,增加了页面无用标签,不利于页面优化。但是我发现大型网站中 居然还在使用这种清楚浮动的方法。有兴趣的同学可以上他们首页搜索一下他们的.blank0这个样式名称。
    </div>
    <div class="right_div">right</div>
    </div>
</div>
</body>
CSS代码:
<style>
     /*
    name:zhiqiang21
    date:2015-05
    des:垂直三列居中,中间div自适应
    */
    body {margin: 0;padding: 0;}
    #body_main{
        margin: 0 auto;
        width: 1280px;
        height: 768px;
        background-color: #3091E5;
        position: relative;
    }

    .left_div {
        width: 200px;
        height:300px;
        position: absolute;
        background-color: #374e0c;
        border: 1px solid #ff0000;
        top: 0;
        left: 0;
        margin-left:200px;
    }

    .mid_div {
        margin:0px 410px 0px 410px;
        background-color: #88E500;
        height: 300px;
    }
    .right_div{
        width: 200px;
        height:300px;
        position: absolute;
        background-color: #374e0c;
        border: 1px solid #ff0000;
        right:0 ;
        top: 0;
        margin-right:200px;
    }
</style>
效果如下图:

这里写图片描述

还有一种应用场景就是左边固定宽度,右边内容区域宽度自适应,但是右边的内容区域的宽度可能跟左边的 sidebar高度是不一致的,效果如图:

这里写图片描述

上面的布局的难点主要就是左边的高度不定,需要将底部的 foot给撑开

具体的 css代码实现如下:

.item1 {
            background-color: rgb(107, 233, 176);
            width: 200px;
            height: 400px;
            float: left;
        }

        .item2 {
            background-color: rgb(189, 249, 81);
            height: 300px;
            /*margin-left: -205px;*/
            margin-left:205px;
        }

        .fotter {
            height: 100px;
            background-color: rgb(121, 42, 233);
        }

        .clearfix::after {
            display: block;
            height: 0;
            content: "\200B";
            clear: both;
        }

        .clearfix {
            *zoom: 1;    /*兼容 ie6/7*/
        }

总结:

主要实现原理就是div的默认宽度是100%。当使用绝对定位,定位好左右两边的div之后,使用margin属性设置div的外边框。之后的div的宽度还是会撑满除去左右两边的margin值的部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值