Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

flex 布局中子元素不压缩, 该如何设置属性【热度: 200】 #881

Open
yanlele opened this issue Sep 15, 2024 · 0 comments
Open
Labels
CSS CSS 相关问题 小米 公司标签
Milestone

Comments

@yanlele
Copy link
Member

yanlele commented Sep 15, 2024

关键词:flex 子元素不压缩

在 Flex 布局中,如果你想要子元素在容器内不被压缩,即保持其原始尺寸或指定尺寸,不受容器大小变化的影响,可以通过设置子元素的flex-shrink属性来实现。flex-shrink属性决定了当父容器大小小于其所有 flex 项总大小时,各 flex 项的缩小比例。默认值是 1,表示 flex 项会等比例缩小,以适应父容器的大小。

要阻止子元素压缩,你应该将它的flex-shrink属性设置为 0。这样,无论容器大小如何变化,子元素都不会缩小。

示例如下:

HTML:

<div class="flex-container">
  <div class="flex-item">不压缩的项目</div>
  <!-- 其他的flex-item -->
</div>

CSS:

.flex-container {
  display: flex;
  /* 添加其他需要的flex布局属性 */
}

.flex-item {
  flex-shrink: 0; /* 这使得该flex项目不会被压缩 */
  /* 设置宽度或其他样式 */
}

在这个例子中,任何带有flex-item类的元素都不会在容器空间不足时被压缩。

此外,flex属性是flex-growflex-shrinkflex-basis这三个属性的简写。如果你想在保证元素不被压缩的同时,具体控制元素的放大行为或基础大小,也可以直接使用flex属性进行设置。例如,如果你还希望元素不放大,并且有一个固定的基础大小,可以这样设置:

.flex-item {
  flex: 0 0 auto; /* 不放大,不缩小,基础大小为auto */
}

这种方式提供了更细致的控制,0 0 auto分别对应flex-growflex-shrinkflex-basis的值。这告诉浏览器该项目即不应放大,也不应缩小,并且以其默认大小作为基础大小。

@yanlele yanlele added CSS CSS 相关问题 小米 公司标签 labels Sep 15, 2024
@yanlele yanlele added this to the milestone Sep 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CSS CSS 相关问题 小米 公司标签
Projects
None yet
Development

No branches or pull requests

1 participant