关于利用css 实现右侧固定 左侧自适应布局的解决方案

 最近遇到要求实现 右侧大小固定,左侧自适应的问题 ,根据亲身实现,现总结如下:

1.我们首先看一下左边固定 右边自适应的情况

  html :  <div id="left">  我在左边</div>
          <div id="right">  我在右边</div>

 css :   #left{     border:1px solid #000;
                            float:left;
                            width:500px;
                        }
                 #right{
                border:1px solid #f00;
              margin-left:600px;
                           } 

         效果如下:

此时左边大小固定,右边水平自适应左边 中间距离适中为100px; 

如果 用同样的方式进行右边固定左边自适应行吗?

css:#left{
border:solid 1px red;
      }
#right{
width:500px;
border:solid 1px green;
float:right;
}
 效果如下:

显然不行 ,这是因为 左边的在前面,会挡住后面的块,占据了一行,

但是如果两边都用了float呢?

效果如下:


显然是不行的,这样就不能实现自适应了。

那我们应该怎样做呢?

第一种方案:

 html :   <div id="right">  我在右边</div>

         <div id="left">  我在左边</div>     

 css :  #left{
         border:1px solid #000;
margin-right:600px;
}
#right{
border:1px solid #f00;
float:right;
width:500px;}

把前后位置顺序颠倒,也可以实现右侧固定 左侧 自适应

第二种方案

   利用css3 中的 cal()可以实现, 让浏览器自动计算 右边的大小;

 html: <div id="left">  我在左边</div>
          <div id="right">  我在右边</div>

css: #left{
border:1px solid #000;
width: calc(100% - 600px);
float: left;
}
#right{
       float: right;
width: 500px;
  border:1px solid #000;
  }

效果如图:


                                 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值