Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用CSS使一个元素收缩到某个点,然后将同级元素收缩到某个点,然后包装eleemnt?

如何使用CSS使一个元素收缩到某个点,然后将同级元素收缩到某个点,然后包装eleemnt?
EN

Stack Overflow用户
提问于 2021-07-28 05:29:04
回答 2查看 46关注 0票数 3

我有两个项目在一个弹性盒子里。当有足够的水平空间可用时,我希望右边的元素是最大宽度,左边的元素占据所有剩余的空间。当可用宽度减小时,我想缩小左边的元素,直到它达到一定的宽度。然后,我想缩小右边的元素,直到它达到一定的最小宽度。在这一点上,我想再次缩小左边的元素,直到它达到不同的最小宽度。之后,我希望元素换行,第一个元素占据它的整个行,第二个元素是它的最大宽度。

我将其称为收缩,因为这是我对它的看法,但我不认为我可以在这里使用flex - it,因为flex包装发生在flex收缩之前。通过将每个元素的flex-basis设置为它的最小宽度,将两个元素的flex-grow都设置为1,并在正确的元素上设置一个max-width,我几乎可以做到这一点。但是,这会使这两个元素随着可用空间的增加而以相同的速度增长。我不想让右边的元素增长,直到左边的元素达到一定的宽度。下面的代码片段显示了这一点。

虽然我希望使用CSS解决方案,但在这里我并不一定要依赖于flexbox。如果CSS网格或其他机制可以实现这一点,我当然对此持开放态度。

在下面的代码片段中,在容器div上设置的宽度只是为了模拟它们可能的宽度。在实际代码中,这些宽度将全部设置为auto,实际宽度将由浏览器的视区大小和页面上的其他动态元素确定。

代码语言:javascript
运行
AI代码解释
复制
div {
  height: 175px;
}

.container {
  background-color: grey;
  display: flex;
  flex-wrap: wrap;
  width: 700px;
  margin-bottom: 20px;
}

.high-width {
  width: 600px;
}

.med-high-width {
  width: 500px;
}

.med-low-width {
  width: 450px;
}

.low-width {
  width: 400px;
}

.content {
  background-color: lightblue;
  flex: 1 0 350px;
}

.sidebar {
  background-color: lightgreen;
  flex: 1 0 100px;
  max-width: 200px;
}

.wrong {
  background-color: red;
}
代码语言:javascript
运行
AI代码解释
复制
<div class="container">
  <div class="content">This fills the remaining space (500px), which is what I want!</div>
  <div class="sidebar">This is 200px wide, which is what I want!</div>
</div>

<div class="container high-width">
  <div class="content">This is 425px wide but I want it it to be 450px (Once the content gets down to 450px wide, I want only the sidebar to start shrinking until it hits its min width)</div>
  <div class="sidebar wrong">This is 175px wide but I want it to be 150px (Once the content gets down to 450px wide, I want only the sidebar to start shrinking until it hits its min width)</div>
</div>

<div class="container med-high-width">
  <div class="content">This fills the remaining space, but that is 375px when I want it to be 400px (Once the sidebar is at its min-width, the content should start shrinking again)</div>
  <div class="sidebar wrong">This is 125px wide but I want it to be 100px (Once the content gets down to 450px wide, I want the sidebar to start shrinking until it hits its min width)</div>
</div>

<div class="container med-low-width">
  <div class="content">This fills the remaining space (350px), which is what I want!</div>
  <div class="sidebar">This is 100px wide, which is what I want!</div>
</div>

<div class="container low-width">
  <div class="content">This is on a row by itself, full width (400p), which is what I want!</div>
  <div class="sidebar">This is on a row by itself and 200px wide, which is what I want!</div>
</div>

EN

回答 2

Stack Overflow用户

发布于 2021-07-28 06:00:42

请在任何地方使用min-width属性,而不要使用width

票数 0
EN

Stack Overflow用户

发布于 2021-07-28 12:37:58

属性min-width可以做到这一点

代码语言:javascript
运行
AI代码解释
复制
div {
  height: 175px;
}

.container {
  background-color: grey;
  display: flex;
  flex-wrap: wrap;
  width: 700px;
  margin-bottom: 20px;
}

.high-width {
  min-width: 600px;
}

.med-high-width {
  min-width: 500px;
}

.med-low-width {
  min-width: 450px;
}

.low-width {
  min-width: 400px;
}

.content {
  background-color: lightblue;
  flex: 1 0 350px;
}

.sidebar {
  background-color: lightgreen;
  flex: 1 0 100px;
  max-width: 200px;
}

.wrong {
  background-color: red;
}
代码语言:javascript
运行
AI代码解释
复制
<div class="container">
  <div class="content">This fills the remaining space (500px), which is what I want!</div>
  <div class="sidebar">This is 200px wide, which is what I want!</div>
</div>

<div class="container high-width">
  <div class="content">This is 425px wide but I want it it to be 450px (Once the content gets down to 450px wide, I want only the sidebar to start shrinking until it hits its min width)</div>
  <div class="sidebar wrong">This is 175px wide but I want it to be 150px (Once the content gets down to 450px wide, I want only the sidebar to start shrinking until it hits its min width)</div>
</div>

<div class="container med-high-width">
  <div class="content">This fills the remaining space, but that is 375px when I want it to be 400px (Once the sidebar is at its min-width, the content should start shrinking again)</div>
  <div class="sidebar wrong">This is 125px wide but I want it to be 100px (Once the content gets down to 450px wide, I want the sidebar to start shrinking until it hits its min width)</div>
</div>

<div class="container med-low-width">
  <div class="content">This fills the remaining space (350px), which is what I want!</div>
  <div class="sidebar">This is 100px wide, which is what I want!</div>
</div>

<div class="container low-width">
  <div class="content">This is on a row by itself, full width (400p), which is what I want!</div>
  <div class="sidebar">This is on a row by itself and 200px wide, which is what I want!</div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68554858

复制
相关文章
React路由 及 React 路由中核心组件
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136454.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/07
1.5K0
如何在 React 中点击显示或隐藏另一个组件?
React 是一种流行的 JavaScript 库,用于构建动态用户界面。在一个 React 应用程序中,有时需要一个按钮或链接来触发显示或隐藏一个相关的组件。这种需求可以通过使用 React 状态管理和事件处理机制来实现。
网络技术联盟站
2023/06/07
5.3K0
React---路由组件传参
路由链接(携带参数):<Link to='/demo/test/tom/18'}>详情</Link>
半指温柔乐
2021/04/28
1.3K0
React向路由组件传递params参数
通过路由传递params参数,可以将动态数据传递给路由组件。这些参数通常用于根据不同的参数值呈现不同的内容或执行不同的操作。在React中,我们可以使用路由库(如react-router-dom)来定义带有参数的路由,并在组件中访问这些参数。
堕落飞鸟
2023/05/20
1K0
React篇(020)-如何在 React 中创建组件?
答案:有两种可行的方法来创建一个组件: 1. Function Components: 这是创建组件最简单的方式。这些是纯 JavaScript 函数,接受 props 对象作为第一个参数并返回 React 元素:
齐丶先丶森
2022/05/12
3K0
【Android 组件化】路由组件 ( 路由组件结构 )
在之前博客 【Android 组件化】使用 Gradle 实现组件化 ( 组件 / 集成模式下的 Library Module 开发 ) 的组件化项目中 , 可能涉及到跨 Module 的调用 , 如在 library1 模块中打开 library2 模块中的 Activity 界面 , 或调用其它 Module 中的功能 ;
韩曙亮
2023/03/29
4490
【Android 组件化】路由组件 ( 路由组件结构 )
React路由
现代的前端应用大多都是 SPA(单页应用程序),也就是只有一个 HTML 页面的应用程序。因为它的用户体验更好、对服务器的压力更小,所以更受欢迎。为了有效的使用单个页面来管理原来多页面的功能,前端路由应运而生。
用户10169043
2022/11/21
2K0
React路由
elementUI隐藏组件
但下面有一个横着的滚动条,怎么去掉呢?我们可以打开浏览器控制台找到对应的class
阿超
2022/08/16
1.5K0
elementUI隐藏组件
如何在受控表单组件上使用 React Hooks
React Hooks 是一个闪亮的新提案,将优化 90% 的 React 代码。 根据 Dan Abramov 的说法,Hooks 是 React 的未来。
三毛
2023/06/09
6700
如何在受控表单组件上使用 React Hooks
React路由
现代的前端应用大多都是SPA(单页应用程序),也就是只有一个HTML页面的应用程序。因为它的用户体验更好、对服务器的压力更小,所以更受欢迎。为了有效的使用单个页面来管理原来多页面的功能,前端路由应运而生
全栈程序员站长
2022/08/11
2.6K0
React路由
如何在CentOS 8 修改时区,同步时间
例如: cron 守护程序使用系统的时区执行 cron 作业,日志文件中的时间戳基于同一系统的时区。
冬冬i
2022/04/09
3.4K0
07-React Hooks(路由组件懒加载, Context上下文, 组件优化...)
Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。
彼岸舞
2022/08/24
1.3K0
如何在 CentOS 8 设置或者修改时区
使用正确的时区对于很多系统相关的任务和进程都是基本的必要的。例如:cron 守护程序使用系统时区来执行 cron 任务,并且日志文件中的时间戳也是基于系统时区的。
雪梦科技
2020/05/11
7.5K0
如何在 CentOS 8 设置或者修改时区
如何在 React 组件中优雅的实现依赖注入
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度,其中最常见的方式就是依赖注入(Dependency Injection,简称DI)。
ConardLi
2021/07/16
5.8K0
【Android 组件化】路由组件 ( 路由框架概述 )
路由框架 仅限于在 集成模式 下使用 , 组件模式下 , 路由框架不起任何作用 ;
韩曙亮
2023/03/29
5350
创建react路由
学习一点简单的前端还是有很多好处的,除了能让你头疼还能让你再也不想碰这sb东西,但是程序员这种傻缺,总是在喊
是小张啊喂
2021/08/10
6240
React前端路由
前端路由是一种在单页面应用中管理不同页面之间导航和渲染的机制。与传统的多页面应用不同,前端路由允许在同一个页面中切换不同的组件,而无需进行完整的页面刷新。
堕落飞鸟
2023/05/20
1.7K0
如何在 Debian 10 设置或者修改时区
使用正确的时区对于很多系统相关的任务和进程都是基本的必要的。例如:cron 守护程序使用系统时区来执行 cron 任务,并且日志文件中的时间戳也是基于系统时区的。
雪梦科技
2020/05/11
12.7K0
如何在 Debian 10 设置或者修改时区
创建react路由
学习一点简单的前端还是有很多好处的,除了能让你头疼还能让你再也不想碰这sb东西,但是程序员这种傻缺,总是在喊
是小张啊喂
2021/05/25
7010
React路由学习
1.安装react-router-dom $ npm i react-router-dom --save 2.在页面进行引入 import {BrowserRouter as Router,Route,Link} from 'react-router-dom' 3.编写两个无状态的路由组件 // 声明路由组件 一个func 相当于是一个路由组件  // 这里是无状态路由的写法 实际工作中会把路由组件单独的写成一个js来进行引入  function Index (){      return <h2>Jspa
biaoblog.cn 个人博客
2022/08/11
7970

相似问题

路由更改时,未路由的React组件不会更新

121

React :组件将在路由更改时重新挂载

128

如何在更改React路由时隐藏子组件

12

React路由器-路由重呈现组件在路由更改时

30

react路由器在路由更改时不渲染组件

222
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档