css 三列左中固定自适应布局

左中右各一块,这一点很简单,重要的是css布局。只需要float设为left,并设置margin来调整三部分,就可以实现。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>三列左中固定自适应布局</title>
    <style>
        body {
            font-size: 18px;
            min-width: 600px;
        }

        .container {
            width: 100%;
            overflow: hidden;
        }

        .left, .center{
            width: 200px;
            float: left;
            height: 200px;
            margin:0 5px;
        }
        .left {
            background-color: #00f;
        }

        .center {
            background-color: #ff0;
        }

        .right {
            width: 100%;
            height: 200px;
            float: left;
            background-color: #f00;
            margin-right: -100%;
        }
        .content {
            margin-right: 420px;
        }

    </style>
</head>
<body>
<div class="container">
    <div class="left"><p>left fixed</p></div>
    <div class="center">
        <div>中间固定</div>
    </div>
    <div class="right">
        <div class="content">
            右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应 右侧自适应
        </div>
    </div>
</div>
</body>

效果如下:
在这里插入图片描述

上面用的是float:left的方法,那么右边自适应宽度用
float:right; margin-left:-100%;
行不行呢?
答案是不行的。因为.right 的宽度是是100%,右浮动会占据左边位置。

/*改动如下*/
.right {
    width: 100%;
    height: 200px;
    float: right;
    background-color: #f00;
    margin-left: -100%;
}
/*.content {*/
    /*margin-right: 420px;*/
/*}*/

效果如下:
在这里插入图片描述
此时,左右两块被右块盖住了。想要他们浮在上层,需要添加
position:relative; 配合margin-left;
还可以使用z-index来设置谁在上层。(注意,文档流的z-index无效,relative和absolute才有效。)

/*修改;*/
.left, .center{
    position:relative;
    /*...*/
}
/*...*/
right {
/*...*/
    float: right;
    margin-left: -420px;
}
.content {
    margin-left: 420px;
}

position:relative;添加后
position:relative;添加后
z-index设置显示优先级

.left {
    background-color: #00f;
    z-index: -999;/*设置无穷小置为底层,无穷大置为顶层*/
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值