CSS 面试题:介绍 Flex 布局,flex 是什么属性的缩写?
myzbx 2025-01-26 23:27 24 浏览
因为是面试题, 所以就不去敲代码去一一实现了, 因为面试官不会让你现场去敲代码; 如果有遇到现场让你敲代码的面试, 那就直接 Pass 好了; 懂得都懂 。
1. display: flex;
1. 给父容器添加了 display: flex 属性, 就可以让容器内部打破原有文档流模式, 展现为弹性布局 。
2. flex 是什么属性的缩写:
1. flex 是 flex-grow 、 flex-shrink、 flex-basis 的缩写 。
2. 默认值为 flex: 0 1 auto; 后两个属性可选 。
3. 各个属性的基本介绍:
1. flex-grow: 属性用于设置或检索弹性盒子的扩展比率 。
2. flex-shrink: flex-shrink 属性指定了 flex 元素的收缩规则; flex 元素仅在默认宽度之和大于容器的时候才会发生收缩, 其收缩的大小是依据 flex-shrink 的值
3. flex-basis: flex-basis 属性用于设置或检索弹性盒伸缩基准值 。
3. 作为父容器的 5 大属性 (都有 initial 、 inherit 设置)*
1. flex-direction: 决定主轴的方向 (即项目的排列方向) 。
1. row(默认值): 主轴为水平方向, 起点在左端;
2. row-reverse: 主轴在水平方向, 起点在右端;
3. column: 主轴为垂直方向, 起点在上沿 。
4. column-reverse 主轴为垂直方向, 起点在下沿; 与 column 相同, 但是以相反的顺序 。
5. initial 关键字用于设置 CSS 属性为它的默认值; initial 关键字可用于任何 HTML 元素上的任何 CSS 属性 。
6. inherit 从父元素继承该属性 。*
2. flex-wrap: 如果一条轴线排不下, 如何换行 。
1. nowrap 默认: 不换行 。 当容器宽度不够时, 每个项目会被挤压宽度 。
2. wrap 换行: 并且第一行在容器最上方 。
3. wrap-reverse 换行: 并且第一行在容器最下方 。
3. justify-content: 定义了项目在主轴上的对齐方式 。
1. 此属性与主轴方向息息相关 。
2. 主轴方向为: row-起点在左边, row-reverse-起点在右边, column-起点在上边, column-reverse-起点在下边
1. flex-start (默认值): 项目位于主轴起点 。
2. flex-end: 项目位于主轴终点 。
3. center: 居中*
4. space-between: 两端对齐, 项目之间的间隔都相等 (开头和最后的项目, 与父容器边缘没有间隔) 。
5. space-around: 每个项目两侧的间隔相等 。 所以, 项目之间的间隔比项目与边框的间隔大一倍 (开头和最后的项目, 与父容器边缘有一定的间隔) 。
4. align-items: 定义项目在交叉轴上如何对齐 。
1. stretch 默认值: 如果项目 未设置高度 或 设为 auto, 将占满整个容器的高度 。*
2. flex-start: 交叉轴的起点对齐 。
3. flex-end: 交叉轴的终点对齐 。
4. center: 交叉轴的中点对齐 。
5. baseline: 项目的第一行文字的基线对齐 (文字的行高、字体大小会影响每行的基线) 。
5. align-content: 定义了多根轴线的对齐方式 。 如果项目只有一根轴线, 该属性不起作用 (当项目换为多行时, 可使用 align-content 取代 align-items) 。
1. stretch(默认值): 轴线占满整个交叉轴 。
2. flex-start: 与交叉轴的起点对齐 。
3. flex-end: 与交叉轴的终点对齐 。
4. center: 与交叉轴的中点对齐 。
5. space-between: 与交叉轴两端对齐, 轴线之间的间隔平均分布 。
6. space-around: 每根轴线两侧的间隔都相等。 所以, 轴线之间的间隔比轴线与边框的间隔大一倍 。
4. 作用于子项目的 6 大属性
1. order: 定义项目的排列顺序 。 数值越小, 排列越靠前, 默认为 0 。
2. flex-grow: 定义项目的放大比例, 默认为 0, 即如果存在剩余空间, 也不放大 。
3. flex-shrink: 定义了项目的缩小比例, 默认为 1, 即如果空间不足, 该项目将缩小 。
4. flex-basis: 定义项目占据的主轴空间 。 (如果主轴为水平, 则设置这个属性, 相当于设置项目的宽度, 原 width 将会失效)*
5. flex: 是 flex-grow, flex-shrink 和 flex-basis 的简写, 默认值为 0 1 auto 后两个属性可选 。
6. align-self: 定义单个项目自身在交叉轴上的排列方式, 可以覆盖掉容器上的 align-items 属性 。
5. flex中的缩写拓展:
1. flex-flow 为 flex-direction 与 flex-wrap 的缩写 。
2. 默认为: flex-flow: row wrap;*
3. 各个属性的基本介绍:*
1. Flex-direction: 调整主轴方向(默认为水平方向)包括 row、row-reverse、column、column-reverse*
1. row: 默认值。 作为一行, 水平地显示弹性项目 。
2. row-reverse: 等同行, 但方向相反 。
3. column: 作为列, 垂直地显示弹性项目 。
4. column-reverse: 等同列, 但方向相反 。
2. flex-wrap: flex-wrap 属性规定弹性项目是否应换行 。 nowrap、 wrap、 wrap-reverse*
1. nowrap: 默认值。 规定弹性项目不会换行 。
2. wrap: 规定弹性项目会在需要时换行 。
3. wrap-reverse: 规定弹性项目会在需要时换行, 以反方向 。
之前有整理过部分知识点, 现在将整理的相关内容, 验证之后慢慢分享给大家; 这个专题是 "前端面试题" 的相关专栏; 大概会有200+的文章。
如果对大家有所帮助,可以点个关注、点个赞; 文章会持续打磨 。
有什么想要了解的前端知识, 可以在评论区留言, 会及时分享所相关内容 。
相关推荐
- 使用 Siemens Teamcenter Digital Reality Viewer 打造逼真的数字孪生
-
现代产品通常由数百万个部件组成,需要复杂的设计和协作。工业世界在管理复杂性方面面临重大挑战,传统的可视化工具无法渲染这些大型的多CAD组件,从而无法充分利用数字孪生的优势。为了解决这些难题,西门子...
- 如何在JavaScript中实现数字输入框的范围限制?
-
在JavaScript语言中,实现数字输入框的范围限制可以通过多种方式实现,最常见的方式是利用JavaScript的事件监听机制,和通过JavaScript的条件判断语句来实现范围限制。以...
- 2.3.8.J速算24点终极挑战(速算24点题目及答案)
-
各位数学高手、脑力达人,今天给大家带来一道超烧脑的**24点挑战**!**数字:2、3、8、J(J=11规则很简单:**用加减乘除和括号,把四个数字组合成24!每个数字只能用一次!****看起...
- 分布式系统进阶二十一之短链接生成原理
-
前言短链接(ShortURL)是一种通过缩短网页链接长度来方便分享的技术。相比于传统的长链接,短链接更简洁明了,更易于在社交媒体等平台上分享和传播。在本文中,我们将会详细解释短链接的定义、作用及其构...
- 一、SpringBoo中Mybatis多数据源动态切换
-
我们以一个实例来详细说明一下如何在SpringBoot中动态切换MyBatis的数据源。一、需求1、用户可以界面新增数据源相关信息,提交后,保存到数据库2、保存后的数据源需要动态生效,并且可以由用户动...
- 「JS 逆向百例」层层嵌套!某加速商城 RSA 加密
-
声明本文章中所有内容仅供学习交流,敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!逆向目标目标:某加速商城登录接口主页:a...
- Spring Data Jpa 介绍和详细入门案例搭建
-
1.SpringDataJPA的概念在介绍SpringDataJPA的时候,我们首先认识下Hibernate。Hibernate是数据访问解决技术的绝对霸主,使用O/R映射(Object-Re...
- SpringBoot 开发 Web 系统,快速入门指南!
-
01、背景介绍在之前的文章中,我们简单的介绍了SpringBoot项目的创建过程,了解了SpringBoot开箱即用的特性,本篇文章接着上篇的内容继续介绍SpringBoot用于we...
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
-
之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...
- golang语言的魅力精华之玩转通道channel 值得你反复阅读100遍
-
通道用例大全在阅读本文之前,请先阅读通道一文。那篇文章详细地解释了通道类型和通道值,以及各种通道操作的规则细节。一个Go新手程序员可能需要反复多次阅读那篇文章和当前这篇文章来精通Go通道编程。本文...
- 2小时快速搭建一个高可用的IM系统
-
“笔者2019年参加了一次Gopher大会,有幸听探探的架构师分享了他们2019年微服务化的过程。图片来自Pexels本文快速搭建的IM系统也是使用Go语言来快速实现的,这里先和...
- 分库分表以后,如何管理几万张分片表?
-
大家好,我是小富~ShardingSphere实现分库分表,如何管理分布在不同数据库实例中的成千上万张分片表?上边的问题是之前有个小伙伴看了我的分库分表的文章,私下咨询我的,看到他的提问我第一感觉就是...
- Spring Boot JDBC 与 JdbcTemplate 全面指南(万字保姆级教程)
-
一、SpringBootJDBC基础1.1JDBC简介与演进JDBC(JavaDatabaseConnectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序...
- Flink SQL 知其所以然(六)| 维表 join 的性能优化之路(上)
-
废话不多说,咱们先直接上本文的目录和结论,小伙伴可以先看结论快速了解博主期望本文能给小伙伴们带来什么帮助:背景及应用场景介绍:博主期望你能了解到,flinksql提供了轻松访问外部存储的loo...
- 大数据Hadoop之——Flink Table API 和 SQL(单机Kafka)
-
一、TableAPI和FlinkSQL是什么TableAPI和SQL集成在同一套API中。这套API的核心概念是Table,用作查询的输入和输出,这套API都是批处理和...
- 一周热门
- 最近发表
-
- 使用 Siemens Teamcenter Digital Reality Viewer 打造逼真的数字孪生
- 如何在JavaScript中实现数字输入框的范围限制?
- 2.3.8.J速算24点终极挑战(速算24点题目及答案)
- 分布式系统进阶二十一之短链接生成原理
- 一、SpringBoo中Mybatis多数据源动态切换
- 「JS 逆向百例」层层嵌套!某加速商城 RSA 加密
- Spring Data Jpa 介绍和详细入门案例搭建
- SpringBoot 开发 Web 系统,快速入门指南!
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
- golang语言的魅力精华之玩转通道channel 值得你反复阅读100遍
- 标签列表
-
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 选择器 (30)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)
- SVG 文本 (32)
- 时钟启动 (33)
- HTML 游戏 (34)