Flex布局:打造灵动、响应式网页设计的利器

在这里插入图片描述

Flex布局(Flexible Box Layout),也称为弹性盒布局,是一种现代CSS布局模式,旨在为复杂、响应式的网页设计提供更加灵活、简洁的解决方案。Flex布局通过定义一个弹性容器(flex container)及其内部的弹性子项(flex items),极大地简化了对容器内元素的对齐、方向、伸缩和空间分配等方面的控制。以下是关于Flex布局的详细内容精讲:

1. 创建Flex容器

要启用Flex布局,首先需要将一个容器元素声明为display: flex;。这样,该容器及其所有直接子元素就构成了Flex布局体系:

.container {
  display: flex;
}

2. 主轴与交叉轴

在Flex布局中,有两个关键的概念:

  • 主轴(main axis):默认情况下,主轴是从左到右(对于从左到右的书写模式),这是Flex项目(即子元素)排列的主要方向。

  • 交叉轴(cross axis):与主轴垂直的方向,即Flex项目的次要排列方向。

3. Flex容器属性

Flex容器有多个属性用于控制其内部子项的布局行为:

a. flex-direction

决定主轴的方向:

  • row(默认):从左到右排列。
  • row-reverse:从右到左排列。
  • column:从上到下排列。
  • column-reverse:从下到上排列。
.container {
  flex-direction: row | row-reverse | column | column-reverse;
}
b. flex-wrap

控制子项是否换行及换行方向:

  • nowrap(默认):所有子项在一行内显示,可能溢出容器。
  • wrap:子项自动换行。
  • wrap-reverse:子项自动换行,第一行在下方。
.container {
  flex-wrap: nowrap | wrap | wrap-reverse;
}
c. justify-content

在主轴上对齐子项:

  • flex-start(默认):子项靠主轴起始端对齐。
  • flex-end:子项靠主轴结束端对齐。
  • center:子项居中对齐。
  • space-between:子项两端对齐,间隔均匀分布。
  • space-around:子项两侧间距相等,每个子项与容器边界的距离相等。
  • space-evenly:子项之间及子项与容器边界之间的间距完全相等。
.container {
  justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly;
}
d. align-items

在交叉轴上对齐子项:

  • stretch(默认):子项拉伸填满交叉轴高度。
  • flex-start:子项靠交叉轴起始端对齐。
  • flex-end:子项靠交叉轴结束端对齐。
  • center:子项在交叉轴居中对齐。
  • baseline:子项基于文字基线对齐。
.container {
  align-items: stretch | flex-start | flex-end | center | baseline;
}
e. align-content

多行Flex布局时,在交叉轴上对齐各行(仅在flex-wrap: wrap生效时有意义):

  • stretch(默认):各行拉伸填满整个交叉轴。
  • flex-start:各行靠交叉轴起始端对齐。
  • flex-end:各行靠交叉轴结束端对齐。
  • center:各行在交叉轴居中对齐。
  • space-between:各行两端对齐,间隔均匀分布。
  • space-around:各行两侧间距相等,每行与容器边界的距离相等。
.container {
  align-content: stretch | flex-start | flex-end | center | space-between | space-around;
}
e. gap

gap 属性是 row-gap 和 column-gap 的简写形式,允许您同时指定 Flex 容器中沿行(主轴)和列(交叉轴)方向上的间隔(gutters)。

.container {
  display: flex;
  gap: <row-gap> <column-gap>;
}

/* 或者简写为 */
.container {
  display: flex;
  gap: <gap-size>; /* 当两个值相同时,可以只写一个 */
}

4. Flex子项属性

a. flex-grow

定义子项的放大比例,即当容器有多余空间时,子项按比例分配空间。默认值为0,表示不放大。值为正数时,数值越大,分配的空间越多。

.item {
  flex-grow: <number>; /* 默认为0 */
}
b. flex-shrink

定义子项的缩小比例,即当容器空间不足时,子项按比例收缩。默认值为1,表示参与收缩。值为0表示不收缩,正数越大,收缩程度越严重。

.item {
  flex-shrink: <number>; /* 默认为1 */
}
c. flex-basis

定义子项在分配多余空间前的初始大小。可以设置为长度值(如像素、百分比等)或auto(默认值,根据内容确定大小)。

.item {
  flex-basis: <length> | auto; /* 默认为auto */
}
d. flex

简写属性,同时设置flex-grow, flex-shrink, 和 flex-basis。默认值为0 1 auto

.item {
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ];
}
e. align-self

允许单个子项覆盖容器的align-items属性,定义自身在交叉轴上的对齐方式。可取值与align-items相同。

.item {
  align-self: auto | stretch | flex-start | flex-end | center | baseline;
}

总结

Flex布局提供了强大的布局工具,使开发者能够轻松应对各种复杂的网页布局需求。通过合理设置Flex容器和子项的属性,可以实现元素的灵活对齐、自动伸缩、换行控制等功能,极大地提升了CSS布局的灵活性和响应性。熟练掌握并运用Flex布局,是现代前端开发中的重要技能之一。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/511904.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

49岁前港姐退圈出嫁「南丫岛王子」,打排卵针高龄连生两女。

现年49岁的吴忻熹&#xff08;原名吴文忻&#xff09;1998年参选香港小姐夺得季军入行&#xff0c;在TVB签约发展平平&#xff0c;继而转战影坛&#xff0c;凭性感演出而为人熟悉。其后她在2011年嫁给有「南丫岛王子」之称的金融才俊&#xff0c;并在近40岁开始诞下两名女儿。吴…

Set a Light 3D Studio:探索光影艺术的全新维度mac/win中文版

Set a Light 3D Studio 是一款领先的三维建模和渲染软件&#xff0c;它将设计师、艺术家和摄影师的创意想法转化为生动逼真的三维场景。这款软件以其强大的功能和直观的界面&#xff0c;成为行业内众多专业人士的首 选工具。 set.a.light 3D STUDIO中文版软件获取 在Set a Lig…

最简单的 AAC 音频码流解析程序

最简单的 AAC 音频码流解析程序 最简单的 AAC 音频码流解析程序原理源程序运行结果下载链接参考 最简单的 AAC 音频码流解析程序 参考雷霄骅博士的文章&#xff1a;视音频数据处理入门&#xff1a;AAC音频码流解析 本文中的程序是一个AAC码流解析程序。该程序可以从AAC码流中…

信息系统项目管理师——第17章项目干系人管理

本章节内容属于10大管理知识领域&#xff0c;选择、案例、论文都会考。 选择题&#xff0c;稳定考1-2分左右&#xff0c;新教材基本考课本原话&#xff0c;这个分不能丢。 案例题&#xff0c;本期考的概率一般。 论文题&#xff0c;202205期考过。 1管理基础 管理的重要性 为…

QT5-qmediaplayer播放视频及进度条控制实例

qmediaplayer是QT5的播放视频的一个模块。它在很多时候还是要基于第三方的解码器。这里以Ubuntu系统为例&#xff0c;记录其用法及进度条qslider的控制。 首先&#xff0c;制作一个简单的界面文件mainwindow.ui&#xff1a; 然后&#xff0c;下载一个mp4或其他格式视频&#x…

爬虫 红网时刻 获取当月指定关键词新闻 并存储到CSV文件

目标网站&#xff1a;红网 爬取目的&#xff1a;为了获取某一地区更全面的在红网已发布的宣传新闻稿&#xff0c;同时也让自己的工作更便捷 环境&#xff1a;Pycharm2021&#xff0c;Python3.10&#xff0c; 安装的包&#xff1a;requests&#xff0c;csv&#xff0c;bs4&…

计算多个元素的累乘结果累乘器start默认初始为1 math.prod()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算多个元素的累乘结果 累乘器start默认初始为1 math.prod() [太阳]选择题 请问题目中的代码最后输出什么? import math list1 [1, 2, 3] print("【显示】list1 ",list1) pri…

如何将本地仓库放到远程仓库中

在我们仓库创建好之后&#xff0c;我们复制好ssh 接着我们需要使用git remote add<shortname><url>这个命令 shortname就是我们远程仓库的别名 接着使用git remote -v这个命令查看一下目前远程仓库的别名和地址 原本还有一个指令git branch -M main 指定分支的名…

智能试卷分析、智能组卷系统

本课题开发一个新型智能试卷分析评价系统&#xff0c;该系统实现了学生试卷的生成与评估以及对各种评估信息的管理和维护。该系统使用SpringBoot MysqlVue搭建的框架为设计平台&#xff0c;以B/S模式开发与设计题库及试卷管理模块。 学生功能&#xff1a;登录&#xff0c;答题考…

RD55UP06-V 三菱iQ-R系列C语言功能模块

RD55UP06-V 三菱iQ-R系列C语言功能模块 RD55UP06-V用户手册&#xff0c;RD55UP06-V功能&#xff0c;RD55UP06-V系统配置 RD55UP06-V参数规格&#xff1a;10BASE-T/100BASE-TX/1000BASE-T 1通道&#xff1b;字节存储次序格式小端模式; 可使用SD存储卡插槽&#xff1b;工作RAM 1…

dddddd

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

vulhub打靶记录——healthcare

文章目录 主机发现端口扫描FTP—21search ProPFTd EXPFTP 匿名用户登录 web服务—80目录扫描search openemr exp登录openEMR 后台 提权总结 主机发现 使用nmap扫描局域网内存活的主机&#xff0c;命令如下&#xff1a; netdiscover -i eth0 -r 192.168.151.0/24192.168.151.1…

更高效、更简洁的 SQL 语句编写丨DolphinDB 基于宏变量的元编程模式详解

元编程&#xff08;Metaprogramming&#xff09;指在程序运行时操作或者创建程序的一种编程技术&#xff0c;简而言之就是使用代码编写代码。通过元编程将原本静态的代码通过动态的脚本生成&#xff0c;使程序员可以创建更加灵活的代码以提升编程效率。 在 DolphinDB 中&#…

数据结构(初阶)第一节:数据结构概论

本篇文章是对数据结构概念的纯理论介绍&#xff0c;希望系统了解数据结构概念的友友可以看看&#xff0c;对概念要求不高的友友稍做了解后移步下一节&#xff1a; 数据结构&#xff08;初阶&#xff09;第二节&#xff1a;顺序表-CSDN博客 正文 目录 正文 1.数据结构的相关概…

leetCode刷题 25.K 个一组翻转链表

目录 1.思路&#xff1a; 2.解题方法&#xff1a; 3.复杂度&#xff1a; 4.Code 题目&#xff1a; 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不…

补充知识

补充知识1 内存的本质是对数据的临时存储 内存与磁盘进行交互时&#xff0c; 最小单位是4kb叫做页框(内存)和页帧(磁盘) 也就是&#xff0c; 如果我们要将磁盘的内容加载到内存中&#xff0c; 可是文件大小只有1kb&#xff0c; 我们也要拿出4kb来存他&#xff0c; 多余的就直…

简单的弱口令密码字典!!!

将下面的复制到文本文档即可&#xff01;&#xff01;&#xff01; 弱口令密码字典一&#xff1a; %null% %username% !#$ !#$% !#$%^ !#$%^& !#$%^&* 000000 00000000 0123456789 1 101010 111 111111 1111111 11111111 1111111111 111222 112233 11223344 121212 121…

JAVA8 新特性StreamAPI使用(二)

一、使用StreamAPI&#xff0c;&#xff08;基于数据模型——客户、订单和商品&#xff0c;实体关系图如下&#xff0c;客户可以有多个订单&#xff0c;是一对多的关系&#xff0c;而产品和订单的关系是多对多的&#xff09;需求如下&#xff1a; 二、Stream API思维导图 三、需…

file_get_contents(‘php://input‘); 这个postman要如何传参

在 Postman 中传递参数给 file_get_contents(php://input); 是通过请求的 Body 部分来实现的。使用 Postman 进行 API 接口测试时&#xff0c;可以按照以下步骤来传递参数&#xff1a; 打开 Postman 并创建一个新的请求。在请求的 URL 地址栏输入你的 API 地址。选择请求方法为…

【Python面试题收录】Python的深浅拷贝

一、Python的深浅拷贝的区别 在Python中&#xff0c;深拷贝和浅拷贝是两种不同的对象复制机制&#xff0c;它们的主要区别在于如何处理对象内部所包含的可变或不可变类型的子对象。 浅拷贝 是指创建一个新的对象&#xff0c;但它只复制了原对象的第一层内容&#xff0c;也就是说…