为什么对不齐

fdc3479d-59be-4b48-a844-5e5d42cae850.png

昨天解决了 left 无法等高两栏的情况, 明明 left 和 right 的高度相等, 为什么还会出现.right 比 .left 短,底部没有对齐的情况。,我们分析下是什么原因造成的:

  1. Flex 子项默认高度由内容撑开
    .bd 是 display: flex;
    .left 只有一张图片,高度就是图片高度
    .right 里有 .top 和 ul,它们是竖直排列(默认 display: block)

  2. .right 不是 flex 布局
    .right 里的 .top 和 ul 默认是上下堆叠,高度由内容决定,不会自动填满父容器
    所以 .right ul 的底部不会自动和 .left 底部对齐

  3. .right 没有被拉伸
    只有 .bd 的直接子元素(.left 和 .right)会被 flex 拉伸等高
    .right 里面的内容不会自动拉伸到底部

总结: left 的高度为图片高度, 而 right 的高度为 top 和ul 的内容高度; 这时图片的高度大于 right 的高度, 所以会造成对不齐的情况

解决办法:
让 .right 变成 flex 布局,竖直方向排列,并让 ul 自动填满剩余空间

.bd .right {
  display: flex;
  flex-direction: column;
}

.bd .right .top {
  /* 高度自适应内容 */
}

.bd .right ul {
  flex: 1; /* 占据剩余空间,底部就能和 .left 对齐 */
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,824评论 1 45
  • 一、CSS中的属性和取值 1.文本类属性: text-align属性:此标签内容的水平对齐方式,内容须为具体文字/...
    刘远舟阅读 542评论 0 1
  • CSS 面试题汇总 1. 介绍下 BFC 及其应用 参考答案:参考答案:所谓 BFC,指的是一个独立的布局环境,...
    5cc9c8608284阅读 745评论 0 1
  • 本文主要讲述页面布局样式方面涉及的知识点,更全面的对CSS相应的技术进行归类、整理、说明,没有特别详细的技术要点说...
    Joel_zh阅读 965评论 0 1
  • CSS介绍 CSS 指层叠样式表(Cascading Style Sheets), 样式定义如何显示 HTML 元...
    Leon_520阅读 206评论 0 1