码迷,mamicode.com
首页 > 其他好文 > 详细

三栏布局-中栏流动布局的方式

时间:2020-06-03 20:18:40      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:位置   适应   右上角   back   idt   data   css3   content   绝对定位   

方法1

首先使用一个wrap包住左侧栏和中间栏,再用一个大的wrap包住左中右三个栏。

如下面代码所示

<div class="fuwrap">
    <div class="ziwrap">
        <div class="left">
            这是左边栏
        </div>
        <div class="middle">
           这是中间栏
        </div>
    </div>
    <div class="right">
        这是右边栏
    </div>
</div>

那么具体布局代码如下

        .fuwrap  {
            float: left;
            width: 100%;
        }
        
        .ziwrap{
            float: left;
            width: 100%;
            margin-right: -250px;
            height: 100px;
        }
        .left{
            float: left;
            width: 150px;
            background-color: red;
            height: 98px;
        }
        .middle{
            width: auto;
            background-color: green;
            height: 98px;
            margin-right: 250px;
            margin-left: 150px;
            word-wrap:break-word
        }
        .middle *{
            margin-left: 20px;
        }
        .right{
            float: left;
            width: 250px;
            background-color: peachpuff;
            height: 98px;
        }

这个方法的主要思想是布局中栏的时候,要把width设置为auto,保证中栏的宽度自适应。将中栏的左边margin设置为左边栏的宽度,留出左边栏的位置,同时将margin-right设置为ziwrap的margin-right的相反值,这样既能在ziwrap布局后留出右边栏的位置,还能保证中间栏的内容不被右边栏所遮挡住。

效果如下

技术图片

方法2

使用绝对定位

将三个栏用一个fuwrap包围住,然后将左栏定位到左上角,右边栏定位到右上角,不设置中间栏的宽度,设置其左右margin分别为左右栏的宽度,就可以了。

<div class="fuwrap">

    <div class="left">
        这是左边栏
    </div>

    <div class="middle">
        这是中间栏
    </div>

    <div class="right">
        这是右边栏
    </div>
</div>

布局代码为


       .fuwrap {
            position: relative;
            width: 100%;
        }
        .left{
            width: 150px;
            background-color: red;
            height: 98px;
            top: 0px;
            left: 0px;
            position:absolute;
        }
        .middle{
            background-color: green;
            height: 98px;
            word-wrap:break-word;
            margin-left: 150px;
            margin-right: 250px;
        }
        .middle *{
            margin-left: 20px;
        }
        .right{
            width: 250px;
            background-color: peachpuff;
            height: 98px;
            top: 0px;
            right: 0px;
            position:absolute;
        }

效果图同方法1

方法3

这种方式是使用css3 display:table-cell


<div class="fuwrap">

    <div class="left">
        这是左边栏
    </div>

    <div class="middle">
        这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏
    </div>

    <div class="right">
        这是右边栏
    </div>
</div>

布局代码


.fuwrap{
            width: 100%;
        }
        .left{
            width: 150px;
            background-color: red;
            height: 98px;
            display:table-cell
        }
        .middle{
            background-color: green;
            height: 98px;
            word-wrap:break-word;
            display:table-cell;

        }

        .right{
            width: 250px;
            background-color: peachpuff;
            height: 98px;
            display:table-cell
        }

这种方式虽说也能实现中栏流动布局,但是中间栏中必须有内容撑开中间栏。

效果图:
技术图片

如果没有足够的内容撑开,就会出现下面的情况

技术图片

三栏布局-中栏流动布局的方式

标签:位置   适应   右上角   back   idt   data   css3   content   绝对定位   

原文地址:https://www.cnblogs.com/baimeishaoxia/p/13039576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!