左侧固定右侧自适应两栏布局

发布于 2022-05-26 13:07:45 字数 1479 浏览 1021 评论 0

以下六种方案中,只有方案二 flex 布局能保证两栏是等高的;其他方案两栏均不等高。

方案一:float + BFC

  #wrapper {
    overflow: hidden; // 清除浮动
  }

  .left {
    float: left;
    width: 200px;
  }

  .right {
    overflow: hidden; // 触发BFC
  }

方案二:flex (同时两栏等高)

  .wrapper {
    display: flex;
  }
  .left {
    width: 100px;
  }
  .right {
    flex: 1;
  }

方案三: float + margin-left

  #wrapper {
    overflow: hidden; // 清除浮动
  }
  .left{
    float: left;
    width: 100px;
  }
  .right {
    margin-left:100px;
  }

方案四: 双 float

  #wrapper {
    overflow: hidden;
  }

  .left, .right {
    float: left;
  }

  .left {
    width: 100px;
  }

  .right {
    width: calc(100% - 100px);
  }

方案五: 双 inline-block

  .wrapper {
    font-size: 0;
  }
  .left, .right {
    display: inline-block;
    font-size: 14px;
    vertical-align: top;
  }
  .left {
    width : 100px;
  }
  .right {
    width: calc(100% - 100px);
  }

注意: 消除默认的间隙;

方案六: position + margin-left

  .wrapper {
    position: relative;
  }
  .left {
    position: absolute;
    width: 100px;
  }
  .right {
    margin-left: 100px;
  }

问题:绝对定位会脱离文档流,导致父元素不会计算该元素的高度,并且后面兄弟元素会叠加在该元素之上。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

文章
评论
84962 人气
更多

推荐作者

github_3h15MP3i7

文章 0 评论 0

静赏你的温柔

文章 0 评论 0

你的呼吸

文章 0 评论 0

微信用户

文章 0 评论 0

心房敞

文章 0 评论 0

醉态萌生

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文