两列自适应布局方案

  1. 左列固定,右列自适应

基本的结构:

<div class="box">
  	<div class="left">left</div>
  	<div class="right">right</div>
</div>

<style>
.left{
    width: 300px;
    height: 300px;
    background: orange;
}
.right{
    width: 100%;
    height: 400px;
    background: green;
}
</style>
复制代码

效果图如下:

实现原理:左列浮动,两个就重叠到一起了,这时再设置右列的margin-left值为左列的宽度就可以了。注意,不要忘了清除浮动。

代码如下:

.box{
    overflow: hidden;
}
.left{
    width: 300px;
    height: 300px;
    background: orange;
    float: left;
}
.right{
    width: 100%;
    height: 400px;
    background: green;
    margin-left: 300px;
}
复制代码

效果图如下:

  1. 左列自适应,右列固定

基本的结构:

<div class="box">
  	<div class="left">left</div>
  	<div class="right">right</div>
</div>

<style>
.left{
    width: 100%;
    height: 400px;
    background: green;
}
.right{
    width: 300px;
    height: 300px;
    background: red;
}
</style>
复制代码

效果图如下:

实现原理:

(1)左列和右列都设置左浮动,效果依然是这样。

(2)然后右列设置margin-left为负的右列的宽度,右列和左列就会到一行。效果如下:

(3)这时设置父元素的 padding-right 为右列的宽度。就会空出右列的宽度。

(4)这时让右列往右移动本身的宽度就可以了,用相对定位来实现。

代码实现如下:

.box{
	padding-right: 300px;
	margin: 20px;
	overflow: hidden;
	}
.left{
    width: 100%;
    height: 400px;
    background: green;
    float: left;
}
.right{
    width: 300px;
    height: 300px;
    background: red;
    float: left;
    margin-left: -300px ;
    position: relative;
    right: -300px;
}

复制代码

效果如下:

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值