如何确定行的高度?

2023-11-30

具体来说,我想知道,在下面的示例中,为什么要设置height第一个弹性项目的值会更改(实际上增加)第一行的高度。

一般来说,我希望能够确定行的高度(我想当弹性容器的高度设置为auto或明确的值)。

.flex-container {
  display: flex;
  flex-wrap: wrap;
  width: 400px;
  height: 200px;
  border: 1px solid black;
  align-items: stretch;
}

.flex-container> :nth-child(1) {
  background-color: darkorchid;
  height: 60px;
}

.flex-container> :nth-child(2) {
  background-color: darkkhaki;
}

.flex-container> :nth-child(3) {
  background-color: dodgerblue;
}

.flex-container> :nth-child(4) {
  background-color: darkgoldenrod;
}

.flex-container> :nth-child(5) {
  background-color: darkcyan;
}
<div class="flex-container">
  <span>I am number 1</span>
  <div>I am number 2</div>
  <div>I am number 3</div>
  <div>I am number 4</div>
  <span>I am number 5</span>
</div>

Flex 容器的初始设置是align-content: stretch。这意味着柔性线(即“行”或“列”)将均匀地扩展容器的横轴。这就是当您没有在项目上设置任何高度时得到的结果:

.flex-container {
  display: flex;
  flex-wrap: wrap;
  width: 400px;
  height: 200px;
  border: 1px solid black;
  align-items: stretch;
}

.flex-container> :nth-child(1) {
  background-color: darkorchid;
  /* height: 60px; */
}

.flex-container > :nth-child(2) {
  background-color: darkkhaki;
}

.flex-container > :nth-child(3) {
  background-color: dodgerblue;
}

.flex-container > :nth-child(4) {
  background-color: darkgoldenrod;
}

.flex-container > :nth-child(5) {
  background-color: darkcyan;
}
<div class="flex-container">
  <span>I am number 1</span>
  <div>I am number 2</div>
  <div>I am number 3</div>
  <div>I am number 4</div>
  <span>I am number 5</span>
</div>

在一个容器中height: 200px and align-items: stretch,两行上的 Flex 项目的高度均为 100px。


当您在弹性项目上设置高度时,您会消耗可用空间。仅剩余空间被考虑在内align-content: stretch.

所以在问题中给出了第一项height: 60px。这在横轴上留下了 140px 的可用空间,对吧?好吧,我们就这样吧。该空间在两条线之间平均分配。

.flex-container {
  display: flex;
  flex-wrap: wrap;
  width: 400px;
  height: 200px;
  border: 1px solid black;
  align-items: stretch;
}

.flex-container> :nth-child(1) {
  background-color: darkorchid;
  height: 60px;
}

.flex-container > :nth-child(2) {
  background-color: darkkhaki;
}

.flex-container > :nth-child(3) {
  background-color: dodgerblue;
}

.flex-container > :nth-child(4) {
  background-color: darkgoldenrod;
}

.flex-container > :nth-child(5) {
  background-color: darkcyan;
}
<div class="flex-container">
  <span>I am number 1</span>
  <div>I am number 2</div>
  <div>I am number 3</div>
  <div>I am number 4</div>
  <span>I am number 5</span>
</div>

此时,我们应该看到高度为 130 像素的项目 2、3 和 4,以及高度为 70 像素的项目 5。 (第 1 项不参与,因为align-items: stretch不再适用。它已被高度声明覆盖(完整解释).)

但事实并非如此。第一行参与项目的高度为 121px,第二行参与项目的高度为 79px。

enter image description here

enter image description here

为什么?因为可用空间比最初想象的要少。内容本身(文本)具有高度并占用空间。一旦你考虑到文本的高度(无论它是什么,我不知道),这些数字就会加起来。

事实上,在第一个示例(第一个项目上没有定义高度的示例)中,伸缩线高度相等的唯一原因是所有文本都具有相同的字体大小。如果您要更改项目#5 的字体大小,则弯曲线将再次具有不相等的高度。

.flex-container {
  display: flex;
  flex-wrap: wrap;
  width: 400px;
  height: 200px;
  border: 1px solid black;
  align-items: stretch;
}

.flex-container> :nth-child(1) {
  background-color: darkorchid;
  /* height: 60px; */
}

.flex-container > :nth-child(2) {
  background-color: darkkhaki;
}

.flex-container > :nth-child(3) {
  background-color: dodgerblue;
}

.flex-container > :nth-child(4) {
  background-color: darkgoldenrod;
}

.flex-container > :nth-child(5) {
  background-color: darkcyan;
  font-size: 2em; /* demo */
}
<div class="flex-container">
  <span>I am number 1</span>
  <div>I am number 2</div>
  <div>I am number 3</div>
  <div>I am number 4</div>
  <span>I am number 5</span>
</div>

更多细节:

  • 换行时删除多行 Flex 项目之间的空间(间隙)
  • 为什么 Flex 项目的宽度和高度会影响 Flex 项目的渲染方式?
  • flex-wrap 如何与align-self、align-items 和align-content 配合使用?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何确定行的高度? 的相关文章

  • Sass mixin 将背景透明度恢复到 IE8

    我是 Sass 新手 并为此苦苦挣扎 我无法在两者中渲染颜色hex 对于 IE 和rgba 每一个小片段都让我感到沮丧 因为我还没有掌握语法 而且 Sass 的 Google 结果仍然很少 这是混合 mixin transparent he
  • 将 Regex 对象分配给 html 输入模式

    我需要以编程方式将正则表达式对象分配给输入元素模式属性 以下是我当前的实现 var regex d 5 element attr pattern regex toString slice 1 1 有没有更好的方法来做到这一点而不需要字符串操
  • 如何使用多个 select2 框过滤表格?

    我正在尝试使用 和多个 select2 框的类来过滤表格 表格 HTML table class table tbody tr class kanban event Austin td td tr tr class csm event Ch
  • 重新加载页面时删除哈希值?

    我使用哈希来切换我的图像滑块 当我重新加载页面并且哈希值设置为 e h 3 没有图片 当图库在几秒钟后自动滑动时 它显示下一个 所以几秒钟内什么也没有 有没有办法在加载页面时检查哈希并将其删除 我只想关心那些用散列为页面添加书签的人 问候
  • 多行有多个提交按钮,我应该为每个按钮制作一个表单吗?

    我列出了大约 20 行 每行代表一个订单 每行需要有 3 个按钮 每个按钮单击将执行不同的操作 我有 3 个操作来处 理每个按钮发布请求 我只是不确定如何为每个按钮设置 Html 表单 tr td td tr
  • BeautifulSoup4:选择属性不等于x的元素

    我想做这样的事情 soup find all td attrs class foo 我想找到所有不具有 foo 类的 td 显然上面的方法不起作用 那怎么办呢 BeautifulSoup确实使 汤 变得美丽且易于使用 You 可以传递一个函
  • 同一元素上的“itemprop”和“rel”属性

    使用是否有效itemprop属性and the rel同一元素上的属性 示例来自Google 的站点名称文档 https developers google com search docs data types sitename包含 这给出
  • django:如何在模板html页面内进行计算?

    您好 我正在使用缩略图插件来获取图像的宽度和高度 现在我想使用从缩略图插件获取的高度来定义 img 标签的填充 例如 img style padding top img height 2 src 但是我在这里遇到错误 django不允许这样
  • 有没有一种方法可以在没有输入的情况下发送表单值

    假设我有以下表格
  • Ionic 2:隐藏滚动条并继续滚动

    我只想hide滚动条 在需要滚动的页面中 我正在使用离子2 My 不工作解决方案 scroll content bar overflow hidden 此解决方案隐藏滚动条but使屏幕不可滚动 首先 改变浏览器的自然行为和预期的用户体验是一
  • 如何让 jstree 节点显示长的、可能是多行的内容?

    当使用jsTree插件 http www jstree com 我需要有一个显示其完整内容的节点 目前 每个节点仅显示大约一行文本 如何让 jsTree 中的节点显示节点中的所有文本而不截断节点的内容 下面的 CSS 代码就可以解决这个问题
  • 使用 jQuery inputmask 插件范围 0-100

    如何创建 0 到 100 范围内的掩码 document ready function masked inputmask 您可以使用jquery inputmask regex extensions js为了那个原因 你可以找到带有所有扩展
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • Firefox 忽略 CSS 中的最小高度

    由于某些原因 最小高度在 Firefox 上不起作用 我尝试在 body 上设置 min height 但 Firefox 完全忽略了它 由于我的页面是动态的 我不能只将高度设置为 100 我应该怎么办 body border 1px so
  • Twitter Typeahead 上使用 Bootstrap 3 的 CSS 问题

    随着 Bootstrap 3 的发布 Typeahead 已被删除 取而代之的是 https github com twitter typeahead js https github com twitter typeahead js 我已经
  • HTML5 文件 API 和 AJAX 上传分块问题

    我编写了一个带有单独进度的拖放多个文件上传等 除了一件事之外 它工作得非常好 上传较大文件时 有时浏览器会锁定 直到上传完成 我认为这是因为该文件存储在浏览器的内存中并占用了浏览器可用的所有资源 我想知道 是否可以逐段读取文件并在读取时通过
  • 如何更改 HTML 文档的“实际编码”?

    我通过 W3C HTML 验证器运行我的网页并收到此错误 编码ascii不是字符的首选名称 使用中的编码 首选名称是 us ascii Charmod C024 第 5 行 第 70 列 内部编码声明 utf 8 不同意 文档的实际编码 u
  • 轮播滑动(未滑动)事件上的火灾事件,Bootstrap 3

    Bootstrap 2 似乎可以很好地处理幻灯片事件 请参阅这个问题 https stackoverflow com questions 9651466 how to attach slide slid events to the boot
  • 我应该创建一个块还是一个元素 BEM CSS?

    Bem官网说 创建一个块如果一段代码可以被重用并且它不依赖于正在实现的其他页面组件 创建一个元素如果一段代码在没有父实体 块 的情况下无法单独使用 我有一个 关于部分 块 它的元素依赖于父级并且不能在网站中重复使用 如何根据 bem 这段代
  • 选择子元素但不选择孙元素

    我有以下简化的代码 div p text p div div p text p div div p text p div div p text p div 每当我设置一些值时 content pCSS 文件中的元素 更改也适用于 col1

随机推荐

  • 如何找到 Redshift 中访问次数最多的表?

    我们正在将实时数据传输到 Redshift 瓶颈是没有可以并发运行的表加载 目前 我们每 15 分钟运行超过 1000 个负载 但我们希望根据用户使用这些表的频率来减少这个数字 请建议我们如何在 Redshift 中获取此信息 This v
  • 获取奇数长度回文

    我试图找到最长的奇数长度回文 但我编写的代码没有给我完整的回文 只是其中的一部分 任何帮助都会很棒 def get odd palindrome at s index str int gt str gt get odd palindrome
  • 使用 firestore 安全规则中的替换功能

    我正在努力应对 Firestore 安全规则 我想检查需要替换功能的值 即电子邮件地址 我可以在一般安全文档中找到一些文档 但这似乎不适用于 Firestore 例如这有效 allow write if resource data memb
  • 如何获取/跟踪 ASP.NET 传出响应文本

    我的服务器似乎有时会向网络客户端返回错误的 html 我在 VS 2012 中使用 asp net 4 在 IIS Express 上进行调试 为了调试这个问题 我想跟踪asp net发送的html in the Global asax P
  • 如何从回历日期转换为公历日期,反之亦然

    我正在寻找一种方法来计算例如从现在到特定日期有多少天 并且我可以用它来确定我是否处于特定时间段 例如 Muharram 5 天 我已经找了 10 多个小时了 我发现的最好的东西是 HijrahDate 库 java time chrono
  • 更新 conda 后如何从终端提示符中删除 (base)

    更新 miniconda3 后 每当我打开终端时 它都会在我的用户名和主机前面显示 base 在这个回答帖子里https askubuntu com a 1113206 315699建议使用 conda config set changep
  • 在 Python 中格式化驱动器

    我正在尝试制作一个 Python 3 3 程序来格式化 Windows 中的驱动器 例如 SD 卡或 USB 记忆棒 我在这里尝试了代码 http bytes com topic python answers 537724 formatti
  • 从 Silverlight 4 调用 HTTPS-WCF 服务时出现安全错误

    我创建了一个简单的 WCF 服务 我希望可以通过 https 访问它 WCF 服务使用 UserNamePasswordValidator customBinding 和 UserNameOverTransport 作为身份验证模式 我在
  • IPython模块

    我有一些具有冗余功能的 IPython 脚本 我想将常见功能重构为一个模块 并将该模块包含在现有脚本中 问题是它不能成为 python 模块 因为代码使用 Ipython 的语言扩展 等 是否可以制作一个具有 IPython 代码的模块并将
  • 如何使用 django-mptt 创建嵌套评论系统

    我正在开发一个简单的博客 并尝试为每个帖子实现一个嵌套评论系统 我创建了评论模型 它通过 Django 管理页面运行良好 我不知道如何创建用于发布新评论和回复的表单 这是我到目前为止所拥有的 模型 py class Post models
  • Flutter Firebase.signInWithGoogle 方法未找到

    我正在尝试在我的 Flutter 应用程序中添加 Google 身份验证 但是我的Android studio找不到该方法登录Google under Firebase身份验证班级 我的意思是说当我写 FirebaseAuth 时 登录Go
  • ASP.NET Core JWT 和声明

    我对 ASP NET Core 和声明中的 JWT 身份验证有疑问 因为我不知道我是否正确理解了所有内容 当我在 ASP NET 中创建 JWT 令牌时 我添加了一些声明 其中一些可以自定义 当带有 JWT 令牌的请求从客户端发送到 API
  • 如何调整位图大小

    determine padding for scanlines int padding 4 bi biWidth sizeof RGBTRIPLE 4 4 iterate over infile s scanlines for int i
  • 通过地址访问 C 中的位域

    不允许使用其地址访问 C 中的位字段背后的原因是什么 是否因为它可能不是未系统字对齐的地址 或者因为获取字节内的位地址没有意义 因为这种类型的指针算术会很尴尬 位没有地址 这就是为什么你不能通过地址引用它们 寻址的粒度是char 我猜原因是
  • 可以在 MySQL 查询中拆分/分解字段吗?

    我必须创建一份关于一些学生完成情况的报告 每个学生都属于一个客户 这是表格 针对这个问题进行了简化 CREATE TABLE clients clientId int 10 unsigned NOT NULL auto increment
  • 寻找两个三位数乘积的最大回文数问题

    所以在欧拉计划中问题4陈述如下 回文数读起来是一样的 双向 制作的最大回文数 两个 2 位数字的乘积 数字是 9009 91 99 找到最大的回文 两个 3 位数字的乘积 我已经尝试过以下方法 include
  • 将which(,arr.ind=T)反馈回R矩阵的最佳方法?

    我提取了一些我想查看的元素的数组索引 如下所示 mat matrix 0 10 10 arrInd which mat 0 arr ind T 然后我对该矩阵进行更多操作 最终得到一个向量或行rowInd和一个列向量colInd 我希望我们
  • CSS 无法识别带有数值的 HTML ID

    这是 div div class something 我在页面上找到了其中的 9 个 位置不同 所以在 css我做的文件 div 1 something code 问题是它不起作用 我知道这是正确的选择器 但我也尝试过div somethi
  • Swift - 如何将单例设置为零

    我正在用 swift 编写一个应用程序 并使用单例在整个应用程序中共享类对象 User 我希望能够在用户注销时将此单例设置为 nil 以便当他们重新登录时旧属性不再存在 即名称 用户名等 我希望有一种简单的方法可以将单例设置回零 而不必将每
  • 如何确定行的高度?

    具体来说 我想知道 在下面的示例中 为什么要设置height第一个弹性项目的值会更改 实际上增加 第一行的高度 一般来说 我希望能够确定行的高度 我想当弹性容器的高度设置为auto或明确的值 flex container display f