CSS实现左右栏宽度固定中间栏宽度变化且各栏高度自适应背景色不同的三栏布局

1.效果

三栏布局 ,三栏的高度各随内容变化,内容多就长一点,内容少就短一点,但背景色始终填满各栏,左栏宽度始终为200px,右栏宽度始终为250px,中间栏宽度最少为350,可随浏览器窗口的增大而增大。如下图 所示:

使浏览器窗口变宽,则中间栏变宽,左右栏不变。

2.代码

html部分

<body>
    <div class="background">
        <div class="header">这是头标</div>
        <div class="leftcol">
            <div>这是左侧栏.这是左侧栏.这是左侧栏.这是左侧栏.</div>
        </div>
        <div class="rightcol">
            <div >
                这是右侧栏.这是右侧栏.
                这是右侧栏.这是右侧栏.
                这是右侧栏.这是右侧栏.
                这是右侧栏.这是右侧栏.
                这是右侧栏.这是右侧栏.
                这是右侧栏.这是右侧栏.
            </div>
        </div>
        <div class="centercol">这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.这是中间栏.</div>
        <div class="footer">这是脚标。脚标div使用了clear:both;使左侧栏或右侧栏的长度长于中间栏时自动下降避开它们的覆盖。</div>
    </div>
  </body>

css部分

        body {
            margin: 0px; /*取消部分浏览的默认值*/
        }
        div
        {
            padding:.5em;
        }

            div.background {
                padding:0;
                min-width: 800px;
                margin: 0 auto; /*居中*/
                width: 80%; /*相对body的宽度*/
                background-image: linear-gradient(90deg,#bdf5d9 200px,#fff 200px,#fff calc(100% - 250px),#f6cb8f calc(100% - 250px));
                /*上句将三栏的背景色设在ground div上,避免出现背景色中断*/
            }

            div.header {
                font-family: 黑体;
                text-shadow: 3px 3px 3px #333;
                background-color: #f00;
                color: #fff;
            }
          
         
          
            div.leftcol {
                padding:0;
                width: 200px; /*定宽*/
                float: left;
            }

            div.rightcol {
                padding:0;
                width: 250px; /*定宽*/
                float: right;
                /*飘浮者的上限是其在文档位置的前的一个块元素的下边沿,下限没有规定*/
            }

            div.centercol {
                margin: 0 250px 0 200px;
                /*仍在流中*/
            }

              div.footer {
                background-color: #70e1f6;
                color: #fff;
                text-shadow: 2px 2px 3px #333;
                 clear: both;
            }


3.要点。利用float属性使左右栏漂浮,利用margin属性让出左右栏空间,利用clear属性调整footer的位置,利用calc()计算背景色的位置,利用linear-gradient设置假的背景色。详见代码中的注释。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值