CSS中的Flex布局

目录

一.什么是Flex布局

二.Flex布局使用

2.1Flex使用语法

2.2基本概念

三.容器的属性

3.1所有属性概述

3.2flex-direction

3.3flex-wrap

3.4flex-flow

3.5justify-content

3.6align-items

3.7align-content

四.项目(子元素)的属性

4.1所有属性概述

4.2order

4.3flex-grow

4.4flex-shrink

4.5flex-basis

4.6flex

4.7align-self

一.什么是Flex布局

Flex布局可以:“简便、完整、响应式”的实现各种页面布局

Flex是“Flexible box”的缩写,意为“弹性布局”,用来为“盒子模型”提供“最大的灵活性

二.Flex布局使用

2.1Flex使用语法

任何一个容器都可以指定为Flex布局

使用方法

.box {display:flex;
}

行内元素也可以使用Flex布局

.box {display:inline-flex;
}

值得注意的是,使用Flex布局后,子元素的“float”、“clear”、“vertical-align”属性将失效

2.2基本概念

采用Flex布局的元素,称为Flex容器,简称“容器”,它的所有子元素自动成为容器成员,称为Flex项目,简称“项目

容器默认存在两根轴:“水平的主轴(main axis)”和“垂直的交叉轴(cross axis)

主轴开始位置(与边框的交叉点)叫“main start”,结束位置叫“main end

交叉轴开始位置叫“cross start”,结束位置叫“cross end

项目默认沿主轴排列,单个项目占据的主轴空间叫作“main size”,占据的交叉轴空间叫作“corss size

简化:“x轴为主轴”、“y轴为交叉轴

三.容器的属性

3.1所有属性概述

Flex容器一共有六大属性,在这里我们给出:

  • flex-direction:内部元素的排列方式:从左到右、从右到左、从上到下、从下到上
  • flex-wrap:子元素的换行方式:不换行、换行(第一行在上面、第二行在上面)
  • flex-flow:子元素的排列方式和换行方式的简写
  • justify-content:子元素的水平对齐方式
  • align-items:子元素的垂直对齐方式
  • align-content:设置多个元素组成的整块的对齐方式

3.2flex-direction

flex-direction决定主轴的方向(即项目的排列方向)

简化

内部元素的排列方式---->(从左到右、从右到左、从上到下、从下到上)

.box {flex-direction:row | row-reverse | column | column-reverse;
}

图示:

下面以一个代码为例,表示四个方向的排列:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>Flex</title></head><body><div class="div"><div class="divC" style="width: 100px;height: 100px;background-color: aqua;"></div><div class="divC" style="width: 100px;height: 100px;background-color: black;"></div><div class="divC" style="width: 100px;height: 100px;background-color: blue;"></div></div><style type="text/css">.div{/* 设置为flex布局 */display: flex;/* 默认:从左往右 */flex-direction: row;/* row(默认值):主轴为水平方向,起点在左端。row-reverse:主轴为水平方向,起点在右端。column:主轴为垂直方向,起点在上沿。column-reverse:主轴为垂直方向,起点在下沿。 */}</style></body>
</html>

上面的“flex-direction”为“row”时效果:

上面的“flex-direction”为“row-reverse”时效果:

上面的“flex-direction”为“column”时效果:

上面的“flex-direction”为“column-reverse”时效果:

3.3flex-wrap

默认情况下,项目都排在一条线(轴线)上,flex-wrap定义如果一条轴线排不下,如何换行

简化

子元素的换行方式:不换行换行(第一行在上面、第二行在上面)

.box {flex-wrap:nowrap | wrap | warp-reverse;
}

nowraop(默认) 不换行

warp 换行(第一行在上)

wrap-reverse 换行(第二行在上)

3.4flex-flow

flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为:“row nowrap

简化

子元素排列方式换行方式的简写

.box {flex-flow:<flex-direction> || <flex-wrap>;
}

3.5justify-content

justify-content属性定义了项目在主轴上的对齐方式

简化

设置子元素的水平对齐方式

.box {justify-content:flex-start | flex-end | center | space-between | space-around;
}

图示

详细说明

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

3.6align-items

align-items属性定义项目在交叉轴上如何对齐

简化

设置子元素的垂直对齐方式

格式

.box {align-items:flex-start | flex-end | center | baseline | stretch;
}

图示

详细说明

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

3.7align-content

align-content属性定义了多根轴线的对齐方式,如果项目只有一根轴线,该属性不起作用

简化

设置多个元素组成的整块的对齐方式

格式

.box {align-content:flex-start | flex-end | center | space-between | space-around | stretch;
}

图示

详细说明

  • flex-start:与交叉轴的起点对齐(顶部对齐)
  • flex-end:与交叉轴的终点对齐(底部对齐)
  • center:与交叉轴的中点对齐(居中对齐)
  • sapce-between:与交叉轴两端对齐,轴线之间的间隔平均分布
  • space-around:每根轴线两侧的间隔相等,所以轴线之间的间隔比轴线与边框之间的间隔大
  • stretch(默认值):轴线占满整个交叉轴(高度占满整个容器)

四.项目(子元素)的属性

4.1所有属性概述

  • order:按照数字大小设置各个元素之间的排列方式
  • flex-grow:按照权重分配剩余空间进行等比例放大
  • flex-shrink:按照权重进行等比例缩小
  • felx-basis:设置子元素原始所占主轴空间大小(宽度)
  • flex:设置放大、缩小和原始大小的缩写,建议优先使用此方式
  • align-self:单独设置特定元素的对齐方式,忽略“align-items”

4.2order

order属性定义项目的排列顺序数值越小,排列越靠前,默认为0

简化

按照数字大小设置各个元素之间的排列方式

格式

.item {order:<integer>;
}

图示

4.3flex-grow

flex-grow属性定义项目的放大比例默认为0,即如果存在剩余空间,也不放大

简化

按照权重分配剩余空间进行等比例放大

格式

.item{flex-grow:<number>;
}

提示

如果所有项目的flex-grow都为1,那么它们将均匀分配剩余空间

如果某个项目flex-grow2,其余项目为1,那么前者分配到的空间将比后者大一倍

图示

4.4flex-shrink

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

简化

按照权重进行等比例缩小

格式

.item{flex-shrink:<number>;
}

提示

负值是一个无效的数值

如果某个项目属性值为0,那么该项目将不会缩小,而是让其它项目缩小

图示

4.5flex-basis

flex-basis属性定义了在分配多余空间之前项目占据的主轴空间(main size)

浏览器根据这个属性计算是否有多余空间,默认值为“auto”,即项目本来大小

简化

设置子元素原始所占主轴空间大小(宽度)

提示

它可以设为跟width或height一样的值,那么项目将会占据固定空间

格式

.item{flex-basis:<length> | auto;
}

4.6flex

flex属性是flex-grow,flex-shrink,flex-basis的简写,默认值为“0 1 auto”,后两个属性可选

简化

设置放大、缩小、原始大小的简写,建议优先使用该方式

提示

该属性有两个快捷值:“auto(1 1 auto)”、“none(0 0 auto)

建议优先写这两个快捷值

格式

.item {flex:none | [<flex-grow> <flex-shrink> <flex-basis>];
}

4.7align-self

align-self属性允许单个项目与其他项目有不一样的对齐方式,可以覆盖“align-items”属性

默认值为“auto”,表示继承父元素的“align-items”属性,如果没有父元素,那么等同于“stretch

简化

单独设置特定元素的方式,忽略align-items

格式

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

图示

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

<滑动窗口> 长度最小的子数组

题目链接&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 题目分析 由暴力枚举引申到滑动窗口的画图分析过程 优化版本&#xff08;滑动窗口&#xff09; 滑动窗口的使用场景&#xff1a;单调性&#xff08;一定是递增或递减的情况&#xff09; …

Linux DHCP server 配置

参考&#xff1a;linux dhcp配置多vlan ip_linux 接口vlan-CSDN博客 配置静态IP地址&#xff1a; 给固定的MAC地址分配指定的IP地址&#xff0c;固定的IP地址不必包含在指定的IP池中&#xff0c;如果包含在IP地址池中&#xff0c;固定的IP地址会从IP地址池中移除 配置方法&…

YOLOV10阅读总结

GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection YOLOv10 - Ultralytics YOLO Docs https://arxiv.org/pdf/2405.14458 论文地址 最近yolo又出了个yolov10了&#xff0c;不得不感慨CV是真卷&#xff0c;毕竟yolov9也才没多久。记录一下阅读笔记。…

基于Java实现的图书管理系统

前言&#xff1a;该图书管理系统实现了查找、添加、删除、显示、借阅、归还等功能&#xff0c;分为两个用户群体&#xff1a;管理者和普通用户。使用了类与对象&#xff0c;封装继承多态&#xff0c;抽象类和接口等Java基础知识。 一.思路 面向对象三部曲&#xff1a;找对象&…

西湖大学提出AIGC检测框架,精准识别AI撰写的文稿

近年来人工智能技术突飞猛进&#xff0c;尤其是大语言模型的出现&#xff0c;让AI具备了创作文章、小说、剧本等内容的能力。 AI代写&#xff0c;已经逃不过老师、编辑、审稿人的火眼金睛了。但让AI仅改写部分片段&#xff0c;就安全了么&#xff1f; 针对检测AI改写的片段&a…

整理了六个正规靠谱的兼职赚钱软件,适合普通人做的兼职副业~

​随着互联网时代的到来&#xff0c;越来越多的人选择通过互联网赚钱。在这篇文章中&#xff0c;我们将探讨一些可以在网上长期赚钱的方法。 在网络上面其实有很多的赚钱方法&#xff0c;尽管方法很多&#xff0c;但是对于一些网络新手&#xff0c;刚进入互联网圈子不久的伙伴…

ES升级--04--SpringBoot整合Elasticsearch

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 SpringBoot整合Elasticsearch1.建立项目2.Maven 依赖[ES 官方网站&#xff1a;https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.8/index.html](…

使用python绘制一个五颜六色的爱心

使用python绘制一个五颜六色的爱心 介绍效果代码 介绍 使用numpy与matplotlib绘制一个七彩爱心&#xff01; 效果 代码 import numpy as np import matplotlib.pyplot as plt# Heart shape function def heart_shape(t):x 16 * np.sin(t)**3y 13 * np.cos(t) - 5 * np.cos…

【RabbitMQ】SpringAMQP--消息转换器

SpringAMQP–消息转换器 测试发送Object类型消息 1.声明队列 Configuration public class FanoutConfig {Beanpublic Queue objectQueue(){return new Queue("object.queue");} }运行消费者后&#xff1a; 2.发送消息 RunWith(SpringRunner.class) SpringBootTes…

POLARDB:新零售用户MySQL上云最佳选择

什么是云数据库POLARDB&#xff1f; POLARDB是阿里云自主研发的最新一代RDS关系型数据库&#xff0c;是特别针对互联网场景设计的Cloud-Native 云原生数据库。POLARDB for MySQL版本&#xff0c;在提供100%兼容MySQL5.6/8.0的关系型事务处理ACID特性之上&#xff0c;能够提供完…

如何让社区版IDEA变得好用

如何让社区版IDEA变得好用 背景 收费版的idea功能非常强大&#xff0c;但是收费&#xff1b;社区版的免费&#xff0c;但是功能被阉割了。如何才能让社区版Idea变得好用&#xff0c;一、打开项目前进行全局配置&#xff1b;二&#xff0c;寻求各种插件的支持。在经过全局配置…

迅睿CMS邮箱设置QQ邮箱为例

邮箱设置 1、服务器地址两个&#xff0c;普通与企业。 普通&#xff1a;ssl://smtp.qq.com企业&#xff1a;ssl://smtp.exmail.qq.com 2、端口号为&#xff1a;465 3、邮箱账号&#xff1a;填写自己的QQ邮箱作为发布服务器。 4、邮箱密码&#xff1a;到QQ邮箱账号中获取“…

Git学习篇

目录 使用命令导入项目 使用命令导入项目 1. 使用git init 命令初始化一个新的Git仓库。 git init 是 Git 命令&#xff0c;用于初始化一个新的 Git 仓库。当您想要开始跟踪一个新项目的版本控制时&#xff0c;可以运行 git init 命令来初始化一个空的 Git 仓库。 如果出现以下…

Windows电脑高颜值桌面便利贴,便签怎么设置

在这个看颜值的时代&#xff0c;我们不仅在衣着打扮上追求时尚与美观&#xff0c;就连电脑桌面也不愿放过。一张唯美的壁纸&#xff0c;几款别致的小工具&#xff0c;总能让我们的工作空间焕发出不一样的光彩。如果你也热衷于打造高颜值的电脑桌面&#xff0c;那么&#xff0c;…

用docker搭建的Vulfocus镜像管理界面没有镜像可以拉取解决办法

ps&#xff1a;截止到今天2023.4.2&#xff0c;kali和vps的docker拉取的vulfocus镜像会有版本的区别&#xff0c;虽然都是拉取的最新版&#xff0c;vps上镜像为3个月以前&#xff0c;kali上为16个月以前&#xff0c;所以在修改 views.py 文件时&#xff0c;可能会发现文件内容不…

国产化服务器开启NTP功能并向NTP时钟服务器同步

1.备份/etc/chrony.conf文件&#xff1b; cp -rp /etc/chrony.conf /etc/chrony.conf.bak.20240522 2.修改chrony.conf文件&#xff0c;增加NTP时钟信息。&#xff08;客户端填写时钟同步服务器的IP地址或者域名&#xff0c;我这里写的IP地址。下面Allow NTP Client是只允许…

易备数据备份软件: 快速备份 MySQL\SQL Server\Oracle\泛微 OA 数据库

易备数据备份软件支持对 SQL Server、Oracle、MySQL、PostgreSQL、MariaDB、泛微 OA 等数据库进行快速备份&#xff0c;备份过程不会对任何服务造成中断。 使用一份授权&#xff0c;可以备份无限量的数据库&#xff0c;不管数据库服务器是否在本机、本地网络、或是远程网络。可…

文心智能体平台 | 想象即现实

目录 文心智能体平台介绍平台简介通过平台能做什么平台的优势智能体介绍智能体类型AI 插件介绍 动手创建一个智能体访问平台并进行账号注册根据适合的方式选择智能体类型快速创建智能体智能体个性化模块配置 总结注意事项我的智能体 文心智能体平台介绍 平台简介 文心智能体平…

1、C++编程概述

文章目录 一、基本概念二、数据的表示及运算计算机中数据表示进制间相互转化二进制计算规则 三、计算机数据的存储单位四、机器数和码制五、机器数运算机器数的加减运算机器数的乘除运算 面向对象编程语言把事物看成是具有属性和行为的对象&#xff0c;然后通过抽象找出属于同一…

共筑信创新生态:DolphinDB 与移动云 BC-Linux 完成兼容互认

近日&#xff0c;DolphinDB 数据库软件 V2.0 与中国移动通信集团公司的移动云天元操作系统 BC-Linux 完成兼容性适配认证。经过双方共同严格测试&#xff0c;DolphinDB 性能及稳定性等各项指标表现优异&#xff0c;满足功能及兼容性测试要求。 此次 DolphinDB 成功通过移动云 B…