CSS 中的网格和 Flex 布局
来源:dev.to
时间:2024-11-18 09:54:44 403浏览 收藏
小伙伴们有没有觉得学习文章很有意思?有意思就对了!今天就给大家带来《CSS 中的网格和 Flex 布局》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!
介绍
- flexbox 和网格布局都是强大的布局。
弹性盒:
- flexbox 是一种一维布局模型,最适合在单行或单列中排列元素。
- 当元素的大小或容器的大小未知时,flexbox 特别有用。
- 它非常适合水平和垂直对齐项目,并且对于创建导航栏、侧边栏或工具栏非常有用。
css 网格:
- 网格是一种二维布局模型,最适合同时将元素排列成行和列。
- 它非常适合创建复杂的布局,并且可以同时处理列和行,这使其成为构建复杂页面布局的不错选择。
网格布局详细
grid-template-columns: repeat(3, 1fr); grid-template-row: repeat(3, auto); grid-column: 1/3 grid-row: 1/4
行覆盖
- repeat(3, minmax(200px, 1fr)) 语句创建三行(或列,具体取决于使用位置),每行的最小尺寸为 200px,最大尺寸为 1fr。
- 1fr 单位表示网格容器中可用空间的一小部分。因此,如果容器的大小超过所有行的总最小大小(在本例中为 600px),则剩余空间将在行之间平均分配。
repeat(3, minmax(200px 1fr))
自动调整和自动填充
css 网格中的自动填充和自动调整关键字控制当网格项不占用网格容器中的额外空间时网格的行为方式。
自动填充
.container { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); }
在此示例中,网格将创建容器中能够容纳的尽可能多的 100 像素列。 如果还有剩余空间,它将在各列之间平均分配。
自动调整:
- 这个关键字还告诉网格创建尽可能多的轨道,但它会折叠空轨道,因此网格末尾没有空轨道。
.container { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); }
在此示例中,网格将创建容器中能够容纳的尽可能多的 100 像素列。 如果还有剩余空间,它将在各列之间平均分配,并且任何空列都将被折叠。
子网格
- 当您希望网格项成为网格容器并与其父网格对齐时,将使用 css 网格布局中的子网格值。
.container { display: grid; grid-template-columns: 1fr 1fr 1fr; } .item { display: grid; grid-template-columns: subgrid; }
注意:-
- 当您希望嵌套网格与父网格对齐时,这会很有用。
- 但是,子网格并未在所有浏览器中得到广泛支持。
容器查询
- 集装箱尺寸查询
- 宽度 媒体查询考虑视口宽度 但容器大小查询考虑容器宽度容器是被查询的元素。
规则:-
规则仅对容器后代有效而不是容器本身
容器大小查询是响应式设计的补充,而不是媒体查询的替代品。
<article class="card"> <h2>That's No Moon. It's a Space Station.</h2> <p class="text">At 198km diameter, Mimas is bigger than the first Death Star (120km) but smaller than the second (800km). </p> <p class="link"><a href="https://science.nasa.gov/saturn/moons/mimas/" target="_blank" class="button">More about Mimas</a></p> </article> <!-- we can't query cards in container query so only work with descendants--> <!-- Workaround solution would be check below--> <div class="card"> <article > <h2>That's No Moon. It's a Space Station.</h2> <p class="text">At 198km diameter, Mimas is bigger than the first Death Star (120km) but smaller than the second (800km). </p> <p class="link"><a href="https://science.nasa.gov/saturn/moons/mimas/" target="_blank" class="button">More about Mimas</a></p> </article> </div> .card { container-name: card; container-type: inline-size; } @container card (min-width: 200px) { article { background-color: red; } } @container card (min-width: 250px) { article { ... } }
今天关于《CSS 中的网格和 Flex 布局》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
最新阅读
更多>
-
274 收藏
-
403 收藏
-
337 收藏
-
421 收藏
-
176 收藏
-
437 收藏
课程推荐
更多>
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习