html之flex伸缩盒子;grid布局

发布时间:2026/10/23 0:01:26

html之flex伸缩盒子;grid布局 flex伸缩盒子利用flex伸缩盒子可以把父级下的div的换行去掉,排列在一行中demo来自微信小程序先将父级div定义成伸缩盒子,然后子级每份占据1份父类空间flex简述flex中三个属性在后端看来这是flex构造方法的3个入参flex:flex-growflex-shrinkflex-basis分别代表的意思属性作用默认值flex-grow有剩余空间时是否放大0flex-shrink空间不足时是否缩小1flex-basis初始尺寸auto常用快速值写法实际等价growshrinkbasis典型用途flex: initial0 1 auto01auto默认值不主动放大可以缩小初始宽度按 width 或内容决定flex: auto1 1 auto11auto内容优先再伸缩;即有空间就长大不够就缩小初始宽度按内容或 widthflex: none0 0 auto00auto完全固定大小flex: 00 1 0%010%很少单独使用;特殊简写只有一个数字那么它表示 growbasis 自动变成 0%。这里的basis0%是将在参与flex计算时的初始尺寸当成0并不是css中的width概念flex: 11 1 0%110%最常用平均分配剩余空间flex: 22 1 0%210%按比例分配剩余空间flex: 0 0 200px0 0 200px00200px固定宽度卡片、侧边栏等flex-grow代表的是是否瓜分剩余空间为0代表浏览器不会把剩余空间分配出去即按照内容本身长度分配;为1时代表把剩下内容的长度再分配出去;ps:平均分的是剩余空间不是整个容器flex-shrink空间不足时是否缩小这个很好理解就是内容加起来的长度超过了容器长度之后会按比例压缩每个元素让内容可以塞进去如果不压缩那么就会出现滚动条这个压缩其实分摊多出来的那一部分;比如多出来100px;按比例分摊这100px在原先元素的width上减去ps:当shrink相同时,减法结果和按比例乘积结果相同 以下面的demo为例 A压缩结果 200 - (200/1200)*120180 B压缩结果 200 - (400/1200)*120160 C压缩结果 200 - (600/1200)*120140 但当shrink相同时比如都为1那么其实压缩结果就是按当前元素的width*(当前元素的width的占比),正好和这个比例一致了 总权重 200*1 200*1 200*1600 A压缩结果 200 - (200/600)*120200*(1-(120/600)) B压缩结果 200 - (200/600)*120200*(1-(120/600)) C压缩结果 200 - (200/600)*120200*(1-(120/600))flex-basis初始尺寸这个很好理解就是给了一个初始值;但这里的初始值是指在参与flex计算的尺寸和css中的width不是一个概念;比如 flex:0 flex:0 1 0%;代表在flex容器计算尺寸时先当成0然后让浏览器分配尺寸;grid布局flex只是一维的grid则是二维的大白话说flex是一个动态行grid则是一个有列和行的表格;我理解在外层容器开启grid并且定义好列后内部的元素会自动按照指定列的数量自动排列存放;这里先简单描述下几个参数frFraction它类似于Flex 的 grow用于控制列的宽度比例。grid-template-columns: 1fr 1fr 1fr;gap: 控制列之间的距离;类似margin;row-gap:20px; column-gap:40px;定义3列并且每列等分容器宽度divclasscontainerdivA/divdivB/divdivC/div/div.container{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; } .containerdiv{ background:#87ceeb; height:80px; }demo2固定宽度动态分配.container{ display:grid; grid-template-columns: 240px 1fr; }divclasscontainerdiv菜单/divdiv内容/div/divgrid repeat()用法repeat就是字面重复意思比如下面2个demo.container{ display:grid; grid-template-columns: repeat(3,1fr);!--这个就是单元格之间的距离(不是内容,是单元格边框之间)--gap:20px; } .container{ display:grid; grid-template-columns: 1fr 1fr 1fr; gap:20px; }跨列/跨行(合并单元格).order{!--这两个写法都可以上下合并单元格;但实际这个更符合语意--grid-row: span 3;!--这个写法是从左边起始单元格的第一根边框线开始到第4根边框钱线中间合并--grid-row:1 / 4;!--从当前位置开始左右2个单元格合并--grid-column:span 2; }跨行合并demo中就是订单号所在的3行合并单元格;
延伸阅读

更多相关文章

2026/10/23 5:29:00

Linux进程间关系与守护进程:从会话隔离到systemd部署实践

【Linux网络】进程间关系与守护进程提到 Linux 网络运维和后台服务开发,进程间关系与守护进程是一道绕不过去的坎。很多朋友在写网络服务时,明明程序跑得好好的,一关终端服务就断,或者启动了一堆“僵尸”进程挂在后台无人认养&…

2026/10/23 5:29:00

Kali Linux 单引导安装与 LVM 全盘加密实战避坑指南

简介:这份PDF面向准备入门网络安全与渗透测试的学习者,以及需要在虚拟机或裸机上部署Kali Linux的运维与安全从业者,帮助解决从镜像准备到系统安装完成的完整流程问题。资源包共1个PDF文件,大小约2.07MB,内容以图文步骤…

2026/10/23 5:29:00

SpringBoot+Vue+MySQL选课系统:从零到部署的完整实战拆解

选课系统这名字,在高校里几乎是每个学生都绕不开的东西,同时也是无数计算机专业同学的大作业和毕业设计首选。我自己也帮别人调试过不少这类项目,说实话,市面上的选课系统源码鱼龙混杂,能“拿到手就直接跑起来”的还真…

2026/10/23 5:29:00

Windows下Redis后台启动:注册服务与配置文件实战指南

1. 为什么必须解决“后台启动”这件事几个月前我在本地调一个微服务 demo 时,养成一个特别别扭的习惯:先把 Redis 窗口打开,再去启动后端,调试完还要记得把窗口关掉。有一次 Windows 自动更新重启机器,我顺手把所有黑色…

2026/10/23 5:23:59

制造业AI落地实战:三大场景、代码与案例全解析

刚过去的这一年,制造业里的AI声音比往年大了不少。但说实话,很多工厂试了AI之后又悄悄退回老路,原因不外乎三个:场景选得太虚、数据根本喂不动模型、算法做出来但车间不认账。我手里也做过几个制造方向的AI落地项目,从…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑