缩小以适应 Flexbox 或 Flex-basis 中的内容:内容解决方法?

2024-04-04

我有一个网络应用程序,我使用 Flexbox 进行布局。

我试图既填充屏幕(它是一个应用程序,而不是文档),又尽可能不指定任何固定的宽度或高度,因为内容可能是各种各样的东西(完全流畅的布局!梦想!)

因此,我需要流体高度、全宽页眉和页脚,然后中间的主面板填充剩余的垂直空间,分为几列,每列在太高时滚动,并且每个非主列的宽度应缩小以适应其内容,以及使用剩余空间的主列。

我非常接近,但不得不求助于明确调整非主列的大小 - 我相信flex-basis: content;应该这样做,但浏览器尚不支持。

这是一个最小演示 http://jsfiddle.net/4ovu226m/显示固定大小的列:

var list = document.querySelector('ul')

for (var i = 0; i < 100; i++) {
  var li = document.createElement('li')
  li.textContent = i
  list.appendChild(li)
}
html,
body {
  height: 100%;
  width: 100%;
  margin: 0;
}
body {
  display: flex;
  flex-direction: column;
}
main {
  display: flex;
  flex-direction: row;
  overflow: hidden;
}
main > section {
  overflow-y: auto;
  flex-basis: 10em;
  /* Would be better if it were fluid width/shrink to fit, unsupported: */
  /* flex-basis: content; */
}
main > section:last-child {
  display: flex;
  flex: auto;
  flex-direction: column;
}
main > section:last-child > textarea {
  flex: auto;
}
<header>
  <h1>Heading</h1>
</header>

<main>
  <section>
    <h1>One</h1>
    <ul>
    </ul>
  </section>

  <section>
    <h1>Two</h1>
  </section>

  <section>
    <header>
      <h1>Three</h1>
    </header>
    <textarea></textarea>
    <footer>
      <p>Footer</p>
    </footer>
  </section>
</main>

<footer>
  <p>Footer</p>
</footer>

看起来像这样 - 我想要列One and Two缩小/增长以适应而不是固定:

我的问题是,是否有一个仅 CSS 的解决方法flex-basis: content,或者实现这一目标的替代方法?

我可能可以忍受像上面那样固定列大小,或者使用 javascript,但我有一个该死的梦想。


我希望第一列和第二列收缩/增长以适应而不是 固定的。

你有没有尝试过:flex-basis: auto

or this: flex: 1 1 auto,其缩写为:

  • flex-grow: 1(按比例增长)
  • flex-shrink: 1(按比例缩小)
  • flex-basis: auto(初始大小基于内容大小)

or this:

main > section:first-child {
    flex: 1 1 auto;
    overflow-y: auto;
}
    
main > section:nth-child(2) {
    flex: 1 1 auto;
    overflow-y: auto;
}
    
main > section:last-child {
    flex: 20 1 auto;
    display: flex;
    flex-direction: column;  
}

修改后的演示 http://jsfiddle.net/4ovu226m/1/

Related:

  • 使弹性项目采用内容宽度,而不是父容器的宽度 https://stackoverflow.com/q/40141163/3597276
  • 让 Flex 容器采用内容的宽度,而不是宽度 100% https://stackoverflow.com/q/42686681/3597276
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缩小以适应 Flexbox 或 Flex-basis 中的内容:内容解决方法? 的相关文章

  • 使用 z-index 的链接在 Firefox 和 IE 中无法单击,即使它位于顶部

    我试图让文本链接出现在部分透明图像的顶部 而该图像又位于纯色背景的顶部 我希望在打印页面时打印链接文本和图像 但不打印彩色背景 这就是为什么我不使用背景图财产 问题在于 虽然链接显示在图像顶部 并且图像按需要显示在背景顶部 但无法单击该链接
  • Wkhtmltopdf 每页右侧的垂直文本

    下面是使用 wkhtmltopdf 生成的 PDF 示例 我需要在每一页的右书脊上生成文本 我尝试将其添加到标题代码中 似乎会剪辑 PDF 的正文 我正在使用 wkhtmltopdf 的页眉和页脚参数 不太确定如何或是否可以在每个页面的右侧
  • 在 Javascript 中访问表格单元格的内容

    我有一个嵌套在 HTML 表格单元格元素内的复选框 如何从 Javascript 访问内部复选框 我见过的所有示例都改变了内部 HTML 本身或视觉属性 这不是我感兴趣的 我尝试过 childNodes 数组 但显然它是空的 如果你不使用
  • 如何使用 XPath 通过 CSS 类查找元素?

    我的网页里有一个div with a class named Test 我怎样才能找到它XPath 该选择器应该可以工作 但如果将其替换为适合的标记 则会更有效 contains class Test 或者 因为我们知道所寻找的元素是div
  • 需要存储表的属性值以用于空手道中的断言

    我有一个情况 定位器没有文本值 但它的名为 title 的属性有一个我需要断言的文本值 在为其编写自定义定位器时 我只能获取文本值 而不是特定的属性值 例如 title abcdd Example div class table cell
  • 我不明白 flex-grow 属性吗?

    恐怕我一定不明白flex grow 如果你跳到下面的 JSFiddle 按照我的理解 big应该是另一个大小的三倍 flex item 正如你所看到的 事实并非如此 为什么 http jsfiddle net nrur6mmo http j
  • QtWebEngine Quicknano 在嵌入式 Linux 中没有声音

    我已将 QtWebEngine 编译到我的 i MX6 嵌入式设备中 当我尝试使用 Quicknanobrowser 播放 YouTube 视频时 视频会播放 但没有声音 事实上 当我尝试播放音频文件时没有声音hpr dogphilosop
  • $_POST 返回空

    尝试练习一下 ajax 和 PHP 我不明白为什么每当我发送一些东西时 它都会返回空或未定义的索引 PHP 返回空 JS form submit function var meth this attr action var msg msg
  • 在phonegap中的两个html页面之间传递数据

    我正在使用phonegap 来创建移动应用程序 我不想将所有内容都放在一个 html 页面中 因此我创建了其中的一些内容 每一个都附有 js 文件 如何在这些 html 页面之间发送数据 最便携和最简单的方法是使用本地存储 http doc
  • 在 Safari 中提交表单后无法对 DOM 进行样式更改

    在 Safari 中提交表单后 我在对 DOM 进行样式更改时遇到问题 有谁知道它是否可能 这是 Safari 预期的浏览器行为吗 我设置了一个非常简单的示例 以便您可以看到实际问题 http jamesmichaelking com st
  • 如何创建多列列表?

    我有一个 有序列表 其中包含大约 100 个 列表项 这使得我的页面很长 用户不得不滚动太多 我怎样才能让 UL 显示如下 1 6 11 2 7 12 3 8 13 4 9 14 5 10 15 如果您不关心垂直顺序 而只关心布局 1 2
  • setTimeout 用于加载下拉列表中的项目

    我在用setTimeout克服 中提到的缓慢处理脚本警告 禁用 Internet Explorer 中的长时间运行脚本消息 https stackoverflow com questions 4460263 disabling the lo
  • 正则表达式从 img 标签获取 src 值

    我正在使用以下正则表达式来获取src第一个的值imgHTML 文档中的标签 string match src
  • Javascript 制作音频 blob

    我正在测试 html 音频标签 我想制作音频 blob url 就像 youtube 或 vimeo 那样 并将其添加到 src 开始播放音频 我一直在测试new Blob and URL createObjectURL 但我不知道如何使用
  • 光标:IE 8 和 9 中的自动行为

    我想要的是为整个正文标记指定cursor pointer 这样页面的背景是可点击的 但我也希望页面的其余部分像以前一样工作 所以我尝试为div设置cursor auto 其中包含这一页 在 FF Chrome 和 safari 中 它工作得
  • 获取输入图像类型选择的图片并加载到图像标签中

    所以 我有一个用于上传 img 文件的输入框 我想要做的是从该数据 或选定的源 中获取数据并将其路由到图像标签的 src 属性中 像这样的东西 http jsfiddle net QC2c4 http jsfiddle net QC2c4
  • 如何获取 Spotify API 的访问令牌?

    我已经研究 Spotify api 和示例源代码几天了 但我仍然不知道如何获取访问令牌来访问用户的播放列表数据 我已经到达了拉起登录窗口 用户登录 然后收到授权码的地步 此时 我尝试做这样的事情 window open https acco
  • 将可点击的锚标记转换为 html 文档中的纯文本

    我正在尝试匹配 a 我的内容中的标签 并将其替换为链接文本 后跟打印版本的方括号中的 url 如果只有 href 则以下示例有效 如果 a 包含另一个属性 它匹配太多并且不会返回所需的结果 我怎样才能匹配 URL 和链接文本 就是这样 这是
  • 电子邮件模板中的剪贴板功能

    我想在电子邮件模板中发送优惠券代码 一个小按钮 用于复制剪贴板上输入元素的内容 通过电子邮件模板 我的意思是我想发送一封电子邮件 其中包含优惠券代码 并且电子邮件模板中会有一个按钮 允许我将其复制到剪贴板 这可以做到吗 任何帮助将不胜感激
  • 在选择 tr 来覆盖父 div 上的第 n 个子类时,如何使用 jquery addClass ?

    我用它来选择一个 tr 当单击它来更改 tr 的颜色时 tr click function this addClass selected siblings removeClass selected 参见小提琴http jsfiddle ne

随机推荐

  • 当我运行我的 android UIAutomator 代码时,它显示错误

    当我运行我的 android UIAutomator 代码时 它显示以下错误 INSTRUMENTATION RESULT shortMsg java lang RuntimeExceptionINSTRUMENTATION RESULT
  • Objective-C instantiateViewControllerWithIdentifier 返回 nil

    一周后我打开了我的项目 看来对于所有新的UIViewController我创建于StoryBoard instantiateViewControllerWithIdentifier返回为零 一切ViewControllers项目中已经存在的
  • Flask 和 SQLAlchemy 以及 MetaData 对象

    这是我第一次使用这个环境 我愿意使用的 SQLAlchemy 部分只是允许我使用 autoload True 的表对象查询数据库的部分 我这样做是因为我的表已经存在于数据库 mysql 服务器 中 并且不是通过定义 Flask 模型创建的
  • 在单例上使用 Dispose 来清理资源

    我的问题可能更多地与语义有关 而不是与实际使用有关IDisposable 我正在致力于实现一个单例类 该类负责管理在应用程序执行期间创建的数据库实例 当应用程序关闭时 应删除该数据库 现在我正在处理这个删除Cleanup 应用程序在关闭时调
  • 如何在 Bash 脚本中从一系列 _# 文件名中选择最大数字

    我有一个包含文件的目录 heat1 conf heat2 conf heat
  • Silverlight 4 和浏览器外

    有谁知道是否可以对 app current mainwindow width 进行动画处理 以便在以编程方式调整 oob 应用程序窗口大小时获得一个带有缓动的漂亮动画 谢谢 最简单的方法是向页面添加滑块控件 滑块可以折叠 仅用于具有简单的动
  • VBA 自函数返回#VALUE!单元格出错,而在函数窗口中正确返回实际值

    我在下面写的函数是采用一个范围 我对其进行了一些条件格式设置 用于字体颜色 以及另一个用于比较颜色的单元格范围 功能是统计大范围内有多少个单元格与一个单元格范围具有相同的字体颜色 Function CountColor rng As Ran
  • 在logstash中使用docker GELF驱动程序env/labels

    Docker GELF 日志驱动程序允许env and labels日志选项 gelf 日志记录驱动程序支持 lab els 和 env 选项 它添加了额外的密钥extra字段 以下划线 为前缀 ref https docs docker
  • 分配给 Rails ActiveRecord 中的布尔字段时,值如何转换?

    我的问题的简短版本 在 Rails ActiveRecord 中 如果我有一个布尔字段并且我给它分配类似 abc or 2 然后它立即转换为false 价值1被投射到true and nil仍然是nil 为什么会这样呢 在哪里可以找到解释此
  • PHPUnit:存根多个接口

    我正在掌握 PHPUnit 到目前为止发现它非常容易使用 但我遇到了一个给我带来困难的测试用例 我正在针对一组预期对象实现的接口 一些是 PHP 的 一些是自制的 编写代码 并且 SUT 需要一个输入对象来实现多个接口 例如 class M
  • 计算两个模型的梯度

    假设我们正在构建一个基本的 CNN 来识别猫和狗的图片 二元分类器 此类 CNN 的示例如下 model Sequential Conv2D 32 3 3 input shape Activation relu MaxPooling2D p
  • 在JetPack Compose中手动重构所有AndroidView

    在我的项目中 我使用 JetPack Compose 和 AndroidView 来使用 XML 视图 Composable fun MyComposable message String AndroidView factory conte
  • MSBuild /m:4 失败,因为它构建了同一个项目两次

    我的团队有一个大型解决方案 约 500 个 csproj 我们使用 VS2012 并使用 TFS Build 进行构建 TFS Build 使用 MSBuild 4 目前我们串行构建 但我们希望并行构建 使用msbuild maxcpuco
  • Maven 不会使用公钥来部署

    我正在使用 SSH 将我的 Java 工件部署到服务器 我设置了密钥 以便可以交互式 SSH 到服务器而无需密码 但是当我尝试运行 mvn deploy or mvn release perform 命令 它挂起 我认为是密码提示 My m
  • iOS RestKit 无法将本地实体保存到数据库

    我正在使用 RestKit 0 20 解析 JSON 数据并保存到数据库 这里有一个映射实体 SchoolClass 它由 RestKit 处理并保存得很好 我有另一个名为 MyClass 的实体 它存储我选择的类 这仅在设备上是本地的 这
  • 用CSS隐藏占位符

    我正在使用响应式主题 我在这里面临输入表单问题 在桌面视图中 输入不会有占位符 但有标签 但是 当涉及到移动视图时 我将隐藏此输入标签并使用占位符更改此标签
  • 如何使用 C# 唯一标识 USB 密钥?

    我希望能够检测到 USB 密钥何时插入 此外 如果我能够区分 USB 密钥 A 和 USB 密钥 B 那么我的状态就更好了 最后 如果我可以使用某种硬件序列号 MAC 地址或其他任何方式唯一地识别密钥 那么我就处于最佳状态 基本上 我正在考
  • iOS QuickType 栏:添加自定义建议

    我想根据我的应用程序的用户添加自定义建议 例如 假设它是游戏 然后根据他与之交互的用户 理想情况下 这些建议应在输入字段仍为空时显示 知道该怎么做吗 None
  • 无法加载文件或程序集或其依赖项之一。该系统找不到指定的文件

    我有这样的代码 public static Type ToType XmlSerializableType xmlSerializableType string func XmlSerialzationType ToType Type ty
  • 缩小以适应 Flexbox 或 Flex-basis 中的内容:内容解决方法?

    我有一个网络应用程序 我使用 Flexbox 进行布局 我试图既填充屏幕 它是一个应用程序 而不是文档 又尽可能不指定任何固定的宽度或高度 因为内容可能是各种各样的东西 完全流畅的布局 梦想 因此 我需要流体高度 全宽页眉和页脚 然后中间的