两列布局(左边定宽,右边自适应)

这种布局,我的思路是考虑两个方面:两列定宽

两列 意味着是水平布局,也就是元素在同一行,先解决这点。

定宽 意味着左边宽度固定,右边宽度随着窗口大小而变。

实现可参考链接 codepen.io/youngmaxer/…

一、inline-block + calc

思路

两列:使用 inline-block 使两个 div 处于同一行中

定宽:左边设置固定宽度即可,右边根据计算来确定宽度以实现自适应

实现
<div class="wrapper">
  <div class="left">
    左边
  </div>
  <div class="right">
    右边
  </div>
</div>
复制代码
.left {
    width: 100px;
}
.right {
    width: calc(100% - 100px);
    margin-left: 20px;
}
复制代码

二、float + calc

思路

两列:使用 float 使两个 div 处于同一行中

定宽:左边设置固定宽度即可,右边根据计算来确定宽度以实现自适应

实现
.left {
    width: 100px;
    float: left;
}
.right {
    float: left;
    width: calc(100% - 120px);
    margin-left: 20px;
}
复制代码

三、position + calc

思路

两列:使用 absolute 使两个 div 处于同一行中

定宽:左边设置固定宽度即可,右边根据计算来确定宽度以实现自适应

实现
.parent {
    position: relative;
    .left {
        position: absolute;
        left: 0;
        width: 100px;
    }
    .right {
        position: absolute;
        left: 120px;
        width: calc(100% - 120px);
    }
}
复制代码

四、float + BFC

思路

两列:使用 floatoverflow: hidden 利用 BFC 的特性使元素在一行上

定宽:左边设置固定宽度即可,右边由于 BFC 宽度会自适应

实现
.left {
    float: left;
    width: 100px;
    margin-right: 20px;
}
.right {
    overflow: hidden;
}
复制代码

五、flex

思路

两列:默认 flex 布局元素在水平方向上

定宽:左边设置固定宽度即可,右边利用 flex: 1 会将剩余空间占据实现宽度自适应。

实现
.parent {
    display: flex;
    .left {
        width: 100px;
        margin-right: 20px;
    }
    .right {
        flex: 1;
    }
}
复制代码

六、float + margin

思路

两列:使用 float ,由于脱离文档流,所以元素在同一行上

定宽:左边设置固定宽度即可,右边通过 margin-left 从形式上隔离二者的重叠

实现
.left {
    float: left;
    width: 100px;
}
.right {
    margin-left: 120px;
}
复制代码

参考

转载于:https://juejin.im/post/5bbcc6e8f265da0a9c789248

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值