CSS: 实现两栏布局,左边固定,右边自适应的4种方法

  • 时间:2020-04-24 17:27 作者:三木成森_yyy 来源: 阅读:444
  • 扫一扫,手机访问
摘要:1. float+overflow:hidden这种办法主要通过 overflow 触发 BFC,而 BFC 不会重叠浮动元素。因为设置 overflow:hidden 并不会触发 IE6 浏览器的 haslayout 属性,所以需要设置 zoom:1 来兼容 IE6 浏览器。具体代码如下: !DO
1. float+overflow:hidden

这种办法主要通过 overflow 触发 BFC,而 BFC 不会重叠浮动元素。因为设置 overflow:hidden 并不会触发 IE6-浏览器的 haslayout 属性,所以需要设置 zoom:1 来兼容 IE6-浏览器。具体代码如下:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <meta http-equiv="X-UA-Compatible" content="ie=edge">  <title>Document</title>  <style>    .parent {      margin: 0 auto; // 使父容器水平居中显示      overflow: hidden;      zoom: 1;      max-width: 1000px;    }    .left {      float: left;      margin-right: 20px;      width: 200px;      background-color: green;    }    .right {      overflow: hidden;      zoom: 1;      background-color: yellow;    }  </style></head><body>  <div class="parent">     <div class="left">     <p>left left left left</p>     </div>     <div class="right">     <p>right</p>     <p>right</p>     </div>   </div> </body></html>
2. float: left+ margin-left

float使左边的元素脱离文档流,右边的元素可以和左边的元素显示在同一行,设置margin-left让右边的元素不覆盖掉左边的元素, 代码如下:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <meta http-equiv="X-UA-Compatible" content="ie=edge">  <title>Document</title>  <style>    .parent {      margin: 0 auto;      max-width: 1000px;    }    .parent::after {      content: '';      display: table;      clear: both;    }    .left {      float: left;      width: 200px;      background-color: green;    }    .right {      margin-left: 200px;      background-color: yellow;    }  </style></head><body>  <div class="parent">     <div class="left">     <p>left left left left</p>     </div>     <div class="right">     <p>right</p>     <p>right</p>    <p>right</p>     </div>    </div> </body></html>
3. position: absolute + margin-left

左边绝对定位,右边设置margin-left,代码如下:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <meta http-equiv="X-UA-Compatible" content="ie=edge">  <title>Document</title>  <style>    .parent {      position: relative;      margin: 0 auto;      max-width: 1000px;    }    .left {      position: absolute;      width: 200px;      background-color: green;    }    .right {      margin-left: 200px;      background-color: yellow;    }  </style></head><body>  <div class="parent">     <div class="left">     <p>left left left left</p>     </div>     <div class="right">     <p>right</p>     <p>right</p>    <p>right</p>     </div>    </div> </body></html>
4. flex布局

flex布局可以使两个子元素显示在同一行,只需左边的宽度固定,即可以实现效果, 代码如下:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <meta http-equiv="X-UA-Compatible" content="ie=edge">  <title>Document</title>  <style>    .parent {      display: flex;      margin: 0 auto;      max-width: 1000px;    }    .left {      width: 200px;      background-color: green;    }    .right {      margin-left: 20px;      flex: 1;      background-color: yellow;    }  </style></head><body>  <div class="parent">    <div class="left">      <p>left left left left</p>    </div>    <div class="right">      <p>right</p>      <p>right</p>      <p>right</p>    </div>  </div></body></html>
  • 全部评论(0)
最新发布的资讯信息
【系统环境|】Fortigate飞塔防火墙如何开启DNS转发/DNS代理(2025-10-14 23:58)
【系统环境|】有了它,再也不用担心电脑弹窗广告和病毒啦!(2025-10-14 23:57)
【系统环境|】如何关闭恼人的电脑弹窗广告?2招搞定(2025-10-14 23:55)
【系统环境|】实用软件推荐:电脑广告弹窗多?用他,都给你屏蔽掉!(2025-10-14 23:55)
【系统环境|】Nginx篇01——基本安装配置和静态页面设置(2025-10-14 23:54)
【系统环境|】Linux端口开放,查看,删除,防火墙(2025-10-14 23:53)
【系统环境|】安全HTTP头部配置: 基于CSP与HSTS的Web安全策略(2025-10-14 23:52)
【系统环境|】老K:做私域过1000万的赛道全部都聚焦在女性身上!(2025-10-14 23:51)
【系统环境|】JavaScript跨域问题: 如何解决跨域访问和资源共享的安全策略(2025-10-14 23:51)
【系统环境|】家庭七级财务防火墙(2025-10-14 23:50)
手机二维码手机访问领取大礼包
返回顶部