当前位置: 首页 > article >正文

【CSS】“flex: 1“有什么用?

flex 属性的组成

flex 属性是一个复合属性,包含以下三个子属性:

  1. flex-grow:决定元素在容器中剩余空间的分配比例。默认值为 0,表示元素不会扩展。当设置为正数时,元素会按照设定比例扩展。
  2. flex-shrink:决定元素在空间不足时的收缩比例。默认值为 1,表示元素会按比例收缩。当设置为 0 时,元素不会收缩。
  3. flex-basis:定义元素在分配多余空间之前所占据的主轴空间。默认值为 auto,表示元素占据其本来大小。

语法格式为:

flex: <flex-grow> <flex-shrink> <flex-basis>;

理解flex: 1的作用

将一个元素的 flex 属性设置为 1,相当于将其分配了一个相对于其他元素相同的可伸缩空间。换句话说,flex: 1 会使该元素尽可能地占据父容器中的剩余空间,同时保持其他元素的相对位置和大小。

具体来说:

flex: 1; /* 等同于 flex: 1 1 0%; */
  • flex-grow 设置为 1,表示元素会扩展,填满所有可用的额外空间。
  • flex-shrink 设置为 1,表示元素会在空间不足时收缩,避免溢出。
  • flex-basis 设置为 0%,表示元素在分配额外空间前不占用空间。

实际应用示例

这种设置对于实现灵活、响应式的布局非常有用。例如,我们可以将导航栏中的项目设置为 flex: 1,使其自动平分导航栏的宽度。

HTML 结构:

<nav class="navbar">
  <a href="#">标签 1</a>
  <a href="#">标签 2</a>
  <a href="#">标签 3</a>
</nav>

CSS 样式:

.navbar {
  display: flex;
}

.navbar a {
  flex: 1;
  border: 1px solid #ccc;
  padding: 10px;
  text-align: center;
}

在这个示例中,通过设置链接的 flex 属性为 1,实现了它们的平均分配。无论导航栏的宽度如何变化,链接都会自动调整大小,以适应父容器的空间。

更多

比较 "flex: 1" 与其他值:

  • flex: 1 是最常用的设置,因为它能让子元素自动填充剩余空间,使布局更灵活。等价于flex: 1 1 0%
  • flex: 0 表示子元素不会自动填充剩余空间,而是根据其内容或固定尺寸进行布局。等价于flex: 0 1 0%
  • flex: none 则表示子元素不可伸缩,其大小仅受 flex-basis 限制,不会根据剩余空间自动调整。等价于flex: 0 0 auto

http://www.kler.cn/a/384148.html

相关文章:

  • ArcGIS Pro SDK (二十五)工作流管理器
  • 基于 Encoder-only 架构的大语言模型
  • 华为海思招聘-芯片与器件设计工程师-模拟芯片方向- 机试题-真题套题题目——共8套(每套四十题)
  • Docker lmdeploy 快速部署Qwen2.5模型openai接口
  • Redis的内存淘汰机制
  • 冥想第一千三百零三十三天(1333)
  • 如何在Linux环境中的Qt项目中使用ActiveMQ-CPP
  • 简单又便宜的实现电脑远程开机唤醒方法
  • 前端 | MYTED单篇TED词汇学习功能优化
  • leetcode 622.设计循环队列
  • DeBiFormer实战:使用DeBiFormer实现图像分类任务(二)
  • 高级 SQL 技巧详解
  • MDC(重要)
  • 物联网核心安全系列——物联网安全需求
  • 100种算法【Python版】第37篇—— Jarvis March算法
  • 快速上手vue3+js+Node.js
  • 实践出真知:MVEL表达式empty的坑
  • vue中html如何转成pdf下载,pdf转base64,忽略某个元素渲染在pdf中,方法封装
  • 【Python爬虫实战】DrissionPage 与 ChromiumPage:高效网页自动化与数据抓取的双利器
  • 【AI】【提高认知】卷积神经网络:从LeNet到AI淘金热的深度学习之旅
  • 一、数据操作
  • 5G NR物理层|5G PHY层概述
  • 【SpringCloud】Nacos微服务注册中心
  • 【LeetCode】【算法】416. 分割等和子集
  • STM32F1 LL 库和HAL 库在GPIO 上的区别
  • 从0开始学习机器学习--Day13--神经网络如何处理复杂非线性函数