web基础04-flex布局

news2024/11/18 6:39:31

1.概述

Flexbox​ 是 ​flexible box​ 的简称(注:意思是“​灵活的盒子容器​”),是 CSS3 引入的新的布局模式。

它决定了元素如何在页面上排列,使它们能在不同的屏幕尺寸和设备下可预测地展现出来。

它之所以被称为 ​Flexbox​ ,是因为它能够扩展和收缩 flex 容器内的元素,以最大限度地填充可用空间。

与以前布局方式(如 table 布局和浮动元素内嵌块元素)相比,

Flexbox ​是一个更强大的方式:

  • 在不同方向排列元素
  • 重新排列元素的显示顺序
  • 更改元素的对齐方式
  • 动态地将元素装入容器

2.基本概念

采用 ​Flex​ 布局的元素,称为 ​Flex​ 容器(​flex container​),简称"​容器​"。

它的所有子元素自动成为容器成员,称为 ​Flex​ 项目(​flex item​),简称"​项目​"。

在 ​Flexbox ​模型中,有三个核心概念:

  • flex ​项(注:也称 ​flex​ 子元素),需要布局的元素
  • flex ​容器,其包含 ​flex​ 项
  • 排列方向(​direction​),这决定了 ​flex ​项的布局​方向

只要在一个元素的 CSS 中添加display: flex;

就可以使用其它 flex 属性来构建响应式页面了。

3.属性

(1)flex-direction:

  • row(默认值):主轴为水平方向,起点在左端。
  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。

(2)justify-content 属性描述

  • flex-start(默认值):左对齐
  • flex-end:右对齐
  • center: 居中
  • space-between:两端对齐,项目之间的间隔都相等。
  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

(3)align-items

align-items属性与justify-content类似。

Flex 容器中,与主轴垂直的叫做 cross axis(交叉轴)

行的交叉轴是垂直的,列的交叉轴是水平的。 

  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中点对齐。
  • baseline: 项目的第一行文字的基线对齐。
  • stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

(4)flex-wrap

CSS flexbox 有一个把 flex 子元素拆分为多行(或多列)的特性。

默认情况下,flex 容器会调整项目大小,把它们都塞到一起。

如果是行的话,所有项目都会在一条直线上。 

不过,使用flex-wrap属性可以使项目换行。

这意味着多出来的项目会被移到新的行或列。

换行发生的断点由项目和容器的大小决定。

换行方向的可选值有这些:

nowrap:默认值,不换行。

wrap:行从上到下排,列从左到右排。
 


wrap-reverse:行从下到上排,列从左到右排。

(5) flex-shrink

flex-shrink​ 属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

如果所有项目的​flex-shrink​属性都为1,当空间不足时,都将等比例缩小。

如果一个项目的​flex-shrink​属性为0,其他项目都为1,则空间不足时,前者不缩小。

项目的flex-shrink属性接受 number 类型的值。

数值越大,该项目与其他项目相比会被压缩得更厉害。

负值对该属性无效。

(6)flex-grow

flex-shrink相对的是flex-grow

flex-shrink会在容器太小时对元素作出调整。

相对应的,flex-grow会在容器太大时对元素作出调整。

如果一个项目的flex-grow属性值为 1

另一个项目的flex-grow属性值为 2

那么后者会较前者扩大 2 倍。

(7)flex-basis 

flex-basis属性定义了在使用 CSS 的flex-shrinkflex-grow属性对项目进行调整前,项目的初始大小。 

flex-basis属性的单位与其他表示尺寸的属性的单位一致(pxem%等)。

定义在分配多余空间之前,项目占据的主轴空间。

默认值为auto,浏览器根据此属性检查主轴是否有多余空间。

设置的​flex-basis​是分配多余空间之前项目占据的主轴空间,如果空间不足则默认情况下该项目也会缩小。

设置flex-basis为350px,但空间充足

空间不足,项目缩小,小于设定值

(8)flex

flex​属性是 flex-grow,flex-shrink 和 flex-basis 的简写。

所以 flex-growflex-shrinkflex-basis属性可以在flex中一同设置。 

flex​ 属性的默认设置是flex: 0 1 auto;

flex: 1 0 10px;

等价于

flex-grow: 1;
flex-shrink: 0;
flex-basis: 10px;

(9)order 

order属性告诉 CSS flex 容器里项目的顺序。

默认情况下,项目排列顺序与源 HTML 文件中顺序相同。

这个属性接受数字作为参数,可以使用负数。

(10)align-self 

align-self​ 属性允许你调整每个项目自己的对齐方式,而不是一次性设置全部项目。

因为floatclearvertical-align等调整对齐方式的属性都不能应用于 flex 子元素,

所以这个属性显得十分有用。 

align-self可设置的值与align-items的一样,并且它会覆盖align-items的值。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++错误总结(1)

1.定义函数类型时,如果没有返回值,用void void swap(int &x, int &y){ int tem x; x y; y tem; } 2.输入时,不加换行符 cin >> a >> b >> c >> endl ;(红色标记的是错误的部分) 3.【逆序出入…

【LeetCode】升级打怪之路 Day 16:二叉树题型 —— 二叉树的构造

今日题目: 654. 最大二叉树105. 从前序与中序遍历序列构造二叉树106. 从中序与后序遍历序列构造二叉树889. 根据前序和后序遍历构造二叉树 目录 LC 654. 最大二叉树 【easy】 Problem:根据遍历序列来还原二叉树 【classic】 ⭐⭐⭐⭐⭐LC 105. 从前序与中…

华为设备小型园区网方案(有线+无线+防火墙)

(一)配置有线部分 1.配置LSW2 (1)创建相关vlan [LSW2]vlan batch 10 3000 (2)配置连接LSW1的Eth-Trunk1,透传VLAN 10 3000 [LSW2]int Eth-Trunk 1 [LSW2-Eth-Trunk1]port link-type trunk [LSW2…

微信小程序(五十四)腾讯位置服务示范(2024/3/8更新)

教程如下: 上一篇 1.先在官网注册一下账号(该绑定的都绑定一下) 腾讯位置服务官网 2.进入控制台 3.创建应用 3. 额度分配 4.下载微信小程序SDK 微信小程序SDK下载渠道 5.解压将俩js文件放在项目合适的地方 6.加入安全域名or设置不验证合…

自动化工程师涨薪难,原因出在这里

大家好,今天说说真实的工控行业,摒弃虚无的鸡汤,聊点实在的。 举个例子,某工做销售,卖电控器件,眼见PLC收入可观,开始感到压力。于是,他下定决心学PLC,报了培训班。毕业后…

Flink并行度

1、Task flink中每个算子就是一个Task,比如flatMap、map、sum是一个Task。 2、SubTask 算子有几个并行度SubTask的数量就是几,比如 3、算子并行度 算子并行度指的是每个算子的并行度,可用env.setParallelism(1);设置所有算子的并行度&am…

防御保护--IPSEC VPPN实验

实验拓扑图 实验背景:FW1和FW2是双机热备的状态。 实验要求:在FW5和FW3之间建立一条IPSEC通道,保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 IPSEC VPPN实验配置(由于是双机热备状态,所以FW1和FW2只需要配置FW1…

【树莓派+python】实现三色呼吸灯+按钮切换

文章目录 Traffic-lights电路连接在这里插入图片描述代码实现算法设计流程图python环境配置三色呼吸灯实现三色呼吸灯按钮控制 Traffic-lights 电路连接 【元件实物图】 图1为Button,按钮的状态控制SIG引脚的电平值。图2为RGB灯,有三种颜色&#xff1a…

项目解决方案:多地5G蓄能电站的视频监控联网系统设计方案

目 录 一、前言 二、系统架构设计 1、系统架构设计说明 2、系统拓扑图 三、关键技术 1. 5G支持技术 2. 视频图像处理技术 3. 数据融合与分析技术 四、功能特点 1. 高效可靠 2. 实时监测 3. 远程控制 4. 故障预测 五、应用前景 一、前言 随着能源…

Unity类银河恶魔城学习记录9-2 P83 Explosive crystal源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Crystal_Skill_Controller using System.Collections; using System.Colle…

Apache服务的搭建与配置

一、apache安装 systemctl stop firewalldsystemctl disable firewalldsetenforce 0yum -y install httpdsystemctl start httpdnetstat -ntlp | grep 80 二、认识主配置文件 # vim /etc/httpd/conf/httpd.conf ServerRoot "/etc/httpd" #定义工作目…

如何优雅地处理Web应用中的大文件上传

处理和上传大文件是Web开发中的常见挑战。一方面,我们需要确保应用的性能和响应性不被影响;另一方面,还要保证数据的安全性和完整性。接下来,我们将逐步探讨如何使用文件分片、Web Workers和SHA-256散列计算来解决这些问题。 问题…

数据结构---复杂度(1)

1.时间复杂度 衡量算法的好坏,使用大写的o来表示时间复杂度,通俗的讲,就是一个算法执行的次数; 时间复杂度就是数学里面的函数表达式;本质上是一个函数; 下面举几个例子: (1)这里的执行次数是…

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(二)-向量元素到向量寄存器状态的映射

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容: 这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

测试人员需要掌握的 k8s 知识

前言 kubernetes 在容器编排领域已经形成统治地位,不管是开发、运维还是测试,掌握 kubernetes 都变得非常有必要。这篇文章通过 minikube 搭建一个简单的 kubernetes 运行环境。 安装虚拟机 主流的操作系统都支持 kubernetes,但是 windows…

禁止使用搜索引擎,你了解吗?

员工A:“我今天想搜索的时候,用不了浏览器了,你能用么?” 员工B:“不知道啊我试一下啊” “也不行” 员工C:“为什么啊?” 针对上述对话,我们不禁思考: 公司为什么禁…

一代影后阮玲玉:国际妇女节这天自杀,让很多人都感到震惊和惋惜!

一代影后阮玲玉:国际妇女节这天自杀,让很多人都感到震惊和惋惜! 说起阮玲玉,那可真是咱们中国电影史上的一位大明星啊。#李秘书讲写作# 今日说起她演过的电影和成就,嘿,说出来可都是响当当的。 阮玲玉,原名…

算法刷题day25:多路归并

目录 引言概念一、鱼塘钓鱼二、技能升级三、序列 引言 关于这个多路并归蓝桥杯考的不是很多,如果要出的话,可能模型都会差不多,因为不会出太难的题,难题基本上都是贪心、DP之类的,所以好好刷题刷熟练就行了&#xff0…

探讨2024年AI辅助研发的趋势

一、引言 随着科技的飞速发展,人工智能(AI)已经成为当今时代最具变革性的技术之一。AI的广泛应用正在重塑各行各业,其中,AI辅助研发作为科技和工业领域的一大创新热点,正引领着研发模式的深刻变革。从医药…