news 2026/4/16 17:22:35

[flex排版]HTML Learn Data Day 6

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[flex排版]HTML Learn Data Day 6

稍微把js中的dom看了一下,感觉大部分是由于历史包袱导致的繁琐 API,现阶段不需要死记硬背,用到时查阅即可。

不想去背,把其他的知识看了一下。于是转头回来学css

今天稍微看了一下flex相关内容,由于浮动不被建议学,所以浮动没有去看了

下一次就直接学vue3相关了

Flex 布局

Flex没什么特别深奥的,它非常像 Qt 中的Spacer(弹簧) 或 Layout 系统

Flex 专为模块化的网页布局而生,能轻松地将网页划分为一个个区块,并自动处理排版,告别了手动计算长宽占比的痛苦时代。

1. 核心概念:轴向 (Axis)

Flex 布局主要由两个轴决定:主轴 (Main Axis)侧轴 (Cross Axis)

  • 主轴:默认为横向(row),即从左到右。
  • 侧轴:与主轴垂直,默认为纵向,即从上到下。

默认行为注意:

  • 主轴尺寸:在未设置具体宽度时,主轴方向的长度默认由内容撑开。
  • 侧轴尺寸:在未设置具体高度时,子元素默认会在侧轴方向拉伸填满(前提是align-itemsstretch且子元素没有写死高度)。

2. 父容器属性 (Container Properties)

根据代码实践,整理了常用的 Flex 容器属性:

属性作用**常见取值 **
display开启 Flex 布局flex
justify-content主轴方向的排列方式flex-start(左/上)center(居中)space-between(两端对齐,中间留空)space-around(每个元素周围分配空间)
align-items侧轴方向的单行对齐方式stretch(默认,拉伸)center(居中)flex-end(底部对齐,防止拉伸)
flex-wrap控制子元素是否换行nowrap(默认,不换行,强行挤压)wrap(换行,多行显示)
align-content侧轴方向的多行对齐方式(仅在flex-wrap: wrap时生效)space-between(多行之间拉开)center(多行整体居中)flex-start(多行紧贴顶部)

3. 子元素属性 (Item Properties)

Flex 不仅控制容器,还能控制子元素如何分配空间(这才是“弹簧”的精髓):

  • flex 属性:

    这是 flex-grow、flex-shrink 和 flex-basis 的简写。

    • flex: 1;:表示该子元素占用父容器的剩余空间的 1 份。
    • 如果所有子元素都设为flex: 1,则它们平分剩余空间。
    • 如果一个设为flex: 1,另一个设为flex: 3,则后者占据的空间是前者的 3 倍。

4. 实战代码演示

结合 HTML 练习代码的总结:

CSS

.box { display: flex; /* 1. 主轴对齐:两端对齐,中间留空 */ justify-content: space-between; /* 2. 允许换行:一行放不下时自动折行 */ flex-wrap: wrap; /* 3. 多行侧轴对齐:行与行之间两端对齐 */ align-content: space-between; /* 4. 单行侧轴对齐:如果子元素写死了高度,需注意该属性 */ /* align-items: flex-end; */ width: 500px; height: 400px; background-color: pink; border: 2px solid; } .box div { /* 子元素如果有固定宽高,就不会被默认拉伸,除非 align-items 强制拉伸 */ width: 100px; height: 100px; border: 1px solid; } /* 进阶:单独控制某个子元素的“弹簧”系数 */ /* .box div:nth-child(2) { flex: 1; // 自动吸收剩余空间 } */

总结

Flex 布局的核心在于“轴”的概念以及“剩余空间”的分配。只要搞清楚主轴是横还是竖,剩下的就是用justifyalign来指挥元素往哪里靠。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 16:12:11

GLM-4.6V-Flash-WEB与传统视觉模型的核心差异剖析

GLM-4.6V-Flash-WEB 与传统视觉模型的核心差异剖析 在当前 AI 技术从实验室走向真实场景的临界点上,一个关键问题日益凸显:我们究竟需要多准的模型,还是多“可用”的系统?过去十年,计算机视觉在 ImageNet、COCO 等基准…

作者头像 李华
网站建设 2026/4/9 20:25:44

国家公园监测:GLM-4.6V-Flash-WEB识别珍稀物种出没

国家公园监测:GLM-4.6V-Flash-WEB识别珍稀物种出没 在四川卧龙的深夜山林中,一台红外相机突然被触发,画面里一道模糊的身影掠过雪地。几分钟后,巡护员手机震动——“检测到疑似雪豹活动,已标记为一级保护动物&#xff…

作者头像 李华
网站建设 2026/4/7 15:14:43

英雄联盟智能助手完整教程:从零开始的高效游戏优化方案

英雄联盟智能助手完整教程:从零开始的高效游戏优化方案 【免费下载链接】LeagueAkari ✨兴趣使然的,功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 你是否曾…

作者头像 李华
网站建设 2026/4/16 15:32:17

GLM-4.6V-Flash-WEB在无人机避障决策中的辅助作用

GLM-4.6V-Flash-WEB在无人机避障决策中的辅助作用 在城市楼宇间穿梭的物流无人机,突然发现前方两栋高楼之间横挂着一条红色横幅——这并非静态地图中标注的障碍物,而是一次临时活动的宣传布置。传统避障系统可能将其识别为“未知矩形物体”,却…

作者头像 李华
网站建设 2026/4/16 14:05:01

企业级Node.js环境配置实战:从零到集群部署

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业级Node.js环境配置系统,功能包含:1.使用nvm管理多Node.js版本 2.自动配置npm镜像源和代理 3.设置文件权限和用户组 4.集成PM2进程管理 5.生成D…

作者头像 李华
网站建设 2026/4/15 0:54:29

PetaLinux在Zynq-7000上的应用:新手入门必看指南

PetaLinux在Zynq-7000上的实战入门:从零搭建嵌入式Linux系统你是不是也遇到过这种情况——手头有一块Zynq-7000开发板,想跑个Linux系统,结果发现裸机程序太简陋,Buildroot又不会配设备树,Yocto更是看得一头雾水&#x…

作者头像 李华