如何让一件物品在另一件物品开始收缩之前完全收缩?

2023-12-06

我试图创建一个随着视口变小而消失的边距,同时主要内容尽可能长时间地保持相同的大小。该边距应该有最大尺寸,因此使用auto是不可能的。

换句话说,我的问题是如何控制网站上不同项目的收缩优先级。

Flexbox 模型允许设置ratio收缩,但不是收缩的顺序。

我必须使用哪些选项(不使用 Javascript)来实现此目的?

Note: I'm answering my own question here but I'm also looking for better answers.


flex-shrink/flex-grow

一种方法是拥有一个 Flexbox 项目flex-shrink,并让另一个增长到它应该有的大小flex-grow。这样,后一个项目将首先“收缩”(减少其增长)。

通过嵌套此结构可以实现两层以上。

.flex-container {
  display: flex;
}

.first-to-shrink {
  flex-shrink: 0;
  flex-grow: 1;
  flex-basis: 0px;
  min-width: 0px;
  background: coral;
}

.second-to-shrink {
  flex-shrink: 1;
  flex-grow: 0;
  background: cornflowerblue;
}
<div class="flex-container">
  <div class="first-to-shrink flex-container">
    <div class="first-to-shrink">
      This is going to shrink first!
    </div>
    <div class="second-to-shrink">
      And then this one is going to shrink!
    </div>
  </div>
  <div class="second-to-shrink flex-container">
    <div class="first-to-shrink">
      This one is going next!
    </div>
    <div class="second-to-shrink">
      This is the last one to disappear!
    </div>
  </div>
</div>

尺寸计算

另一种方法是计算每个项目的大小作为视口与在其之后应缩小的所有其他项目的大小之间的差异(这需要知道每个项目的大小),如下所示:

.shrinkable {
  overflow: hidden;
  max-height: 100px;
}

#first-to-shrink {
  height: calc(100vh - 300px);
  background: coral;
}

#second-to-shrink {
  height: calc(100vh - 200px);
  background: cornflowerblue;
}

#third-to-shrink {
  height: calc(100vh - 100px);
  background: coral;
}

#fourth-to-shrink {
  height: 100vh;
  background: cornflowerblue;
}
<div id="first-to-shrink" class="shrinkable">
  This is going to shrink first!
</div>
<div id="second-to-shrink" class="shrinkable">
  And then this one is going to shrink!
</div>
<div id="third-to-shrink" class="shrinkable">
  This one is going next!
</div>
<div id="fourth-to-shrink" class="shrinkable">
  This is the last one to disappear!
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让一件物品在另一件物品开始收缩之前完全收缩? 的相关文章

  • jQuery / javascript 缓存元素以提高效率?

    是的 所以我想常识是 对于您将要经常访问的元素 最好的方法是像这样缓存它们 var myEl myclass 然后你以后就可以访问 myEl 并且不需要再次搜索 DOM 对吗 好吧 假设我有一个相当复杂的 html 结构 我需要经常访问几个
  • PHP 联系表单未提交

    您好 我之前曾成功使用过这个非常简单的 php 联系脚本 但当我尝试在新的 HTML 页面上实现它时 表单不会提交 任何人都可以看到任何明显的错误吗 任何帮助将非常感激 这是表单的 html div div
  • ie11 中的 SVG 问题

    我有一个 div 其高度设置为 320 像素 然后它的子元素宽度设置为 100 它的子文件是一个 SVG 文件 我将其宽度设置为容器的 200 在运行良好的 Chrome 和 Firefox 中 我得到了如下所示的漂亮图像 HTML 看起来
  • 角度斜线被编码

    我和这个人有同样的问题 angularjs slash after hashbang gets encoded https stackoverflow com questions 17530924 angularjs slash after
  • 检测滚动条是否可见(例如在移动设备上)

    我见过很多关于检测 HTML 元素是否可滚动的问题 答案 例如动态检测滚动条 https stackoverflow com questions 33805052 detect scrollbar dynamically 我需要类似的东西
  • Chrome 中的混合混合模式问题

    我一直在尝试在包含 css 不透明度过渡实例的页面上使用混合混合模式 似乎正在发生的情况是 包含 mix blend mode 的 div 在过渡期间 或者更确切地说 在动画进行过程中 显示得与没有混合模式时一样 我只发现这是 Chrome
  • 对于跨域 XHR 丢弃 cookie 不是更简单吗?

    在进行网络开发时 我一直在与奇怪的限制作斗争 其中之一是 AJAX 请求的同源限制 我问自己 在创建请求时丢弃 cookie 而不是阻止对跨域资源的请求是否会更简单 以避免滥用 AJAX 请求的身份验证凭据 浏览器会话 Cookie 是一种
  • 用于 Mysql 查询的 FLASK HTML 字段

    你好 Stackoverflow 社区 我是 FLASK 的新手 但是虽然学习曲线非常陡峭 但有一个项目我无法理解 我使用一个非常简单的 HTML 搜索表单 用户在其中输入城市名称 此输入将传递到 Mysql 查询并将输出返回到表中 一切正
  • 生成基于内联 HTML 样式的样式表?

    一段时间以来 我一直致力于对网站的不同部分进行样式设计 但是我尚未将内联样式放入样式表中 我想知道是否存在一个工具可以解析 HTML 文件并从中生成样式表 例如 这是我网站的一个片段 div class block style border
  • 在聚合物元素中动态注入共享样式(聚合物1.2.3)

    我确实有几个自己创建的嵌套聚合物元素 目前 通过使用聚合物共享样式 我可以将自定义样式注入其他元素 不幸的是 这种方法仅限于静态使用 因此 在实现时 我确实需要通过导入共享样式模块来知道哪个元素应该使用哪种共享样式 and 但在我的用例中
  • HTML 中的自定义自关闭/不配对标签?

    以下代码 jsfiddle http jsfiddle net CUZta var div document createElement div div innerHTML
  • IE7内容可编辑自动换行

    我有以下代码 div class editable This is test text This is test text This is test text This is test text This is test text Thih
  • 如何通过单击链接并确认弹出窗口来检查两个条件?

    我是 JavaScript 新手 有 2 个 html 链接 li a class dropdown item confirm href wtdata a li li a class dropdown item confirm href f
  • 录制视频和音频并上传到服务器

    我想为网站添加视频录制功能 我一直在搜索并尝试所有可能的可用解决方案 但还没有任何工作正常 我已经尝试过以下解决方案 WebRTC 我知道使用 WebRTC 我们可以从网络摄像头和麦克风获取流 我发现了很多关于相同内容的文章 但没有一篇解释
  • BEM 与 SASS 和 :hover

    使用 BEM 和 SASS 声明活动 焦点 悬停状态的正确方法是什么 例如 我有这样的结构 div class card img class card image src alt div class card overlay div cla
  • CSS 列不会水平对齐

    我正在使用列计数来允许我的文本流入两个不同的列 但第一列的顶部 最左边 低于另一列 col moz column count 2 webkit column count 2 column count 2 div h3 Options h3
  • 应返回带有 html 代码的字符串的支持 bean 属性返回空字符串

    我的支持 bean 中有一个返回 html 代码的属性 public String getHtmlPrevisualizar return Hello world 我想要做的是在 iframe 中显示这个 html 代码 我用 JavaSc
  • 垂直滚动,与 div/元素/锚点对齐/对齐

    我发现了一些可爱的网站 http www mini jp event campaign big point http www mini jp event campaign big point http www twenty8twelve c
  • 页脚没有停留在底部

    这似乎是有史以来最令人困惑的问题 至少对我来说是这样 知道这个页面 除了标题之外 都已损坏 我复制了 HTML 并尝试小心地删除 WordPress 相关的爵士乐 以便您获得该页面的 html JsBin直播页面 http jsbin co
  • JavaScript - 替换 html 字符串中的特定单词索引

    我在 JS 字符串操作方面面临着一项具有挑战性的任务 有一个 HTML 字符串 我需要在其中替换特定单词索引处的单词 单词索引是忽略 HTML 标签时单词的编号 例如 下面是 HTML 字符串 span style font family

随机推荐

  • 使用内嵌引号将 JSON 导入到 R 中

    我正在尝试将以下 JSON 文件 my file json 读入 R 其中包含以下内容 id 484 comment They call me Bruce 使用 jsonlite 包 0 9 12 出现以下错误 library jsonli
  • Actionbarsherlock searchview:setOnQueryTextListener

    我正在尝试使用 ActionBarSherlock 的搜索视图在列表中创建一个过滤器 我目前拥有的代码如下 Override public boolean onCreateOptionsMenu final Menu menu getSup
  • 二变量多项式的霍纳规则

    霍纳规则用于简化在特定变量值下评估多项式的 过程 https rosettacode org wiki Horner 27s rule for polynomial evaluation Standard ML 我已经使用 SML 轻松地将
  • 降低 R 中双打的精度

    我正在寻找一种方法 通过使用基本 R 工具而不求助于 C 或 C 始终忽略 R 中浮点数之间的微小差异 这些是根据 IEC 60559 的双精度浮点数 换句话说 我想 四舍五入 双精度浮点数的有效数字部分 这样就可以返回 TRUE 而不是
  • 努力尝试在 .net 4.5 中使用 HttpClient 获取 cookie 响应

    我有以下代码可以成功运行 我不知道如何从响应中获取 cookie 我的目标是我希望能够在请求中设置 cookie 并从响应中获取 cookie 想法 private async Task
  • 如何增加 JFileChooser 的大小?

    我正在编写一个 Java 应用程序 需要在屏幕分辨率非常高的设备上运行 我需要显示的唯一 UI 组件是 JFileChooser 由于屏幕分辨率太高 FileChooser 显得太小 有没有一个简单的命令可以让它变大 理想情况下 我希望保持
  • 如何在 PowerShell 窗口中更改两个引号之间的文本颜色

    我无法更改两个引号之间的文本颜色 现在它的颜色是暗蓝色 我可以在哪里设置此设置或者我必须执行哪个命令 sample PSReadline v1 x 发货时附带Windows PowerShellWindows 10 及更高版本上的 v5 1
  • PHP 数据对象插入未执行

    我的 PHP 表单刚刚更改为使用 PDO 我唯一能告诉的是执行不起作用 我应该用它传递一些东西吗 db new PDO mysql host localhost dbname x charset utf8 x x if db die Cou
  • 为什么 strcmp 在 c 中不起作用? [复制]

    这个问题在这里已经有答案了 我刚刚开始学习 c 我想尝试 strcmp 函数 但如果我运行它 它总是给我结果 1 我输入什么字符串并不重要 由于第一个字符串比第二个字符串短 因此我期望结果为 1 include
  • 准备 JNA 以在 Eclipse 中使用

    背景 我正在做机器学习研究 并且想使用FANN构建神经网络的库 源代码是用 C 编写的 但我需要对其进行包装 以便我可以将它与我们创建的许多 Java 类一起使用 问题 该网站提供了一个已广受好评的名为 fannj 的包装软件的链接 它的依
  • 变量和打印变量之间的区别[重复]

    这个问题在这里已经有答案了 我有以下代码 假设我正在 IDLE 中逐行输入 coding utf 8 s u My Currency is s print s for s 我得到一个输出 u My Currency is xa3 for p
  • 如何防止JasperReports TextField中的重复数据

    我在用贾斯珀报告文本字段数据存在一些问题 请继续下一页 我在详细信息带中有 3 个文本字段 带 splitType 拉伸 每个文本字段都有边框 并且 isPrintWhenDetailOverflows 参数设置为 true 当文本字段中的
  • 内部编译器错误:总线错误

    我试图制作一个带有详细信息视图的 UITableView 但出现两个错误 在以下代码之后 我得到了两次相同的错误 内部编译器错误 总线错误 我不知道为什么 有人能帮我吗 您可以在下面找到代码的图像here void tableView UI
  • ASP.NET:为什么身份验证超时后 FormsAuthenticationTicket 为空?

    我正在根据我之前的问题和答案实现身份验证超时检测机 制here 我已经实现了一个 HTTP 模块 该模块使用 AuthenticateRequest 事件来运行代码来捕获身份验证期限是否已过期 执行此操作的代码如下 public class
  • Python - 是否可以在 Discord.py-v1.0 中 wait_for 一个或另一个事件?

    有没有可以用的wait for以这样的方式 它将等待reaction add or reaction remove 我见过有on reaction add and on reaction remove功能 但我想要一种没有这些功能的方法 我
  • 在android中将音频注入语音流

    我有一个想法 为愚蠢的人构建一个 Android 应用程序 可以帮助他们接听电话 我想将文本转换为语音 然后通过通话流传输 在android平台上 仍然无法播放音频以便对方在通话过程中听到吗 抱歉 简短的回答似乎仍然是否定的 我很乐意在这一
  • 将 Visual Studio Code 连接到远程 Mysql 数据库

    我知道这应该更加集中 但我为此浪费了一整天的时间 我无法弄清楚 我正在尝试使用任何可用的 VS Code 扩展连接到远程 MySQL 数据库 我尝试使用SQLTools with MySQL MariaDB 插件 适用于 VS Code 的
  • mysql 按计数排序性能

    我发现以下内容有点令人困惑 如果我执行以下查询 当按索引值 关键字 排序时 需要 0 0008 秒 但当按 计数 排序时 需要 3 秒以上 以下过程大约需要 0 0008 秒 SELECT keyword COUNT DISTINCT pm
  • 计算行总和的平均值,无需在 Excel 中创建新列

    这是我的矩阵的示例 A B C D E 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 2 1 您可以将每一行视为受访者 将每一列视为调查问卷上的一个项目 我的目标是取每行总和的平均值 即每个受访者的总分 无需创建新列并考虑
  • 如何让一件物品在另一件物品开始收缩之前完全收缩?

    我试图创建一个随着视口变小而消失的边距 同时主要内容尽可能长时间地保持相同的大小 该边距应该有最大尺寸 因此使用auto是不可能的 换句话说 我的问题是如何控制网站上不同项目的收缩优先级 Flexbox 模型允许设置ratio收缩 但不是收