【CSS】flex布局用法解析,快速上手flex布局,flex:1是什么意思?肯定看的懂好吧?

news2024/11/19 11:22:08

一、flex布局

flexflexible box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
任何一个容器都可以指定为 flex 布局。

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

.container {
	display: flex;
}

二、flex-direction 主轴与交叉轴

flex-direction 属性决定主轴的方向(也就是元素的排列方向),与主轴垂直的轴是交叉轴。

flex-direction 有4个属性值可以设置

  • row(默认值):主轴为水平方向,起点在左端。
  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。
    flex布局主轴与交叉轴
  • justify-content 属性定义了项目在主轴上的对齐方式。
  • align-items 属性定义项目在交叉轴上的对齐方式。

三、flex-wrap 定义元素超出则换行

flex-wrap属性定义,如果一条轴线排不下,如何换行。
在这里插入图片描述

它可能取三个值:

  • nowrap(默认):不换行。
  • wrap:换行,第一行在上方。(常用此项)
  • wrap-reverse:换行,第一行在下方。

flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap
常用:flex-flow: row wrap; // 主轴水平向右,并且元素自动换行

四、justify-content 主轴上的对齐方式

justify-content属性定义了元素在主轴上的对齐方式。

它可能取六个值:具体对齐方式与轴的方向有关。下面假设主轴为从左到右。

  • stretch:自动拉伸子元素,直到铺满父容器为止
  • flex-start(默认值):左对齐
  • flex-end:右对齐
  • center: 元素居中对齐
  • space-between:两端贴边对齐,元素之间的间隔都相等。
  • space-around:每个元素两侧的间隔相等。所以,元素之间的间隔比 元素与边框 的间隔大一倍。
  • space-evenly: 完全等距均匀分布,元素之间、元素与边框之间间隔均相等。

justify-content示例

五、align-items 交叉轴上的对齐方式

align-items属性定义了元素在交叉轴上的对齐方式。
它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。

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

六、align-content

1、align-content可以看成是和justify-content是相似且对立的属性,是指垂直方向每一行 flex子项的对齐和分布方式。

2、只适用于多行的flex容器,并且当交叉轴上有多余空间使flex容器内的flex线对齐。
容器内必须有多行的项目,该属性才能渲染出效果。
菜鸟教程在线测试align-content

七、例子

居中布局

使用了flex布局的盒子模型设置垂直居中就非常简单了,只需要设置 align-items:center; 属性。

.wrap {
  width: 300px;
  height: 300px;
  border: 1px solid red;
  display:flex;
  justify-content:center;
  align-items:center;
}

.box {
  height: 100px;
  width: 100px;
  border: 1px solid blue;
}

两栏布局

.wrap { display: flex; }
.left { width: 200px; }
.right { flex: 1; }

两栏布局

flex:1的含义

flex:1 : 表示的含义是等分剩余空间(即:flex:1 1 auto;),让所有弹性盒模型对象的子元素都有相同的宽度,且忽略它们内部的内容。

flex 属性用于设置或检索弹性盒模型对象的子元素如何分配空间。
flex 属性是 flex-grow、flex-shrink 和 flex-basis 属性的简写属性。默认值为 0 1 auto。后两个属性可选。

  • flex-grow 属性定义项目的放大比例,默认为0,即如果存在剩余空间也不放大。如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

  • flex-shrink 属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

  • flex-basis 属性定义了在分配多余空间之前,项目占据的主轴空间,即伸缩的基准值。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

flex 属性属性有两个快捷值:

  • auto (1 1 auto) :自动放大与缩小,相当于flex:1
  • none (0 0 auto):不自动放大与缩小

建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

在这里插入图片描述

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

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

相关文章

如何解决跨越

解决跨域我想在坐的各位都会听说过几个解决跨域的方法: 1.有什么 cors后端配置(加几个请求头 2.jsonp(利用script的src属性) 3.还有vue-cli前端配置。 跨域其实就是违背了浏览器的一种策略,这种策略就是同源策略&…

公司刚来的阿里p8,看完我构建的springboot框架,甩给我一份文档

前言: 我们刚开始学习 JavaWeb 的时候,使用 Servlet/JSP 做开发,一个接口搞一个 Servlet ,很头大,后来我们通过隐藏域或者反射等方式,可以减少 Servlet 的创建,但是依然不方便,再后…

【Transformer】医学分割领域的应用与扩展(论文阅读)(二) || DETR

声明:仅学习使用~ 目录 1. Transformer学习2. DETR1. Transformer学习 前篇指路:【Transformer】医学分隔领域的应用与扩展(论文阅读)(一) 继续… 关于Self-Attention的公式: 原来是 m x m 是2D的,现在变成1 x m了,是1D的了。 下图中。左图是传统的Transformer,右…

【python圣诞树的实现】

🤵‍♂️ 个人主页老虎也淘气 个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏…

拒不外传,阿里内部耗重金找人总结出这份并发编程手册(全彩版)

并发世界很有趣,不要错过 前言: 时间飞逝,转眼间毕业七年多,从事 Java 开发也六年了。我在想,也是时候将自己的 Java 整理成一套体系。 这一次的知识体系面试题涉及到 Java 知识部分、性能优化、微服务、并发编程、开…

python常用模块

time模块 常用操作 1.直接获取时间 time.time() #获取结果是秒数,即从1970年1月1日8:00起计#1671856010.9592516 2.获取结构化时间 time.localtime() #获取本地时间,中国为东八区,为上海时间 time.gmtime() …

C++控制台圣诞树

前言 有是一年圣诞节,先祝大家圣诞节快乐,所以本蒟蒻在AFO之后决定回来更新一篇打印字符圣诞树的教程 (呃好吧我承认我就是想嫖奖品) 效果展示 呃我知道这有点拉,但是……蒟蒻能有什么坏心思呢,他只不过想…

客户端服务端交互实现

问题 客户端业务逻辑如何实现? 与服务设备具体交互细节如何设计? 客户端业务逻辑实现 用户输入处理 字符串空格处理,分割获取命令与参数 服务信息处理 字符串预处理,分割获取服务命令存储服务命令与设备地址之间的映射(命令字…

Java Socket实现NIO通信

文章目录一.简单介绍通道(Channel)多路复用器(Selector)二.代码实现.客户端服务端运行结果一.简单介绍 NIO 很多人也称之为 Non-block I/O,即非阻塞 I/O,因为这样叫,更能体现它的特点。 为什么…

kdump功能

kdump功能前言1 kdump流程2 kdump配置2.1 kexec、makedumpfile编译2.2 系统内核2.3 捕获内核3 kdump测试4 kdump的不足前言 kdump 是一种先进的基于 kexec 的内核崩溃转储机制。当系统崩溃时,kdump会将内存导出为vmcore保存到磁盘。 在kernel1运行的时候&#xff…

RabbitMQ——延迟队列

目录 一、延迟队列的应用场景 1. 场景:"订单下单成功后,15分钟未支付自动取消" ① 传统处理超时订单 ② RabbitMQ延时队列方案 二、延迟队列中的消息投递和消息消费 1.TTL 和 DLX ① TTL ② DLX和死信队列 ③ 延迟队列 ④ 开发步骤 …

spring mvc 通过异常封装 验证 方法

正常情况 我们先演示一下正常情况下我们验证的方法。 首先定义一个LoginBean Data public class LoginBean {// Blank 不允许保存空格,空格不算内容NotBlank(message "用户名不能为空")String username;// Empty 允许保留空格,是空格也算内容…

【Spring】核心部分之AOP:通过列举代码例子,从底层刨析,深入源码,轻轻松松理解Spring的核心AOP,AOP有这一篇足以

AOP基本概念基本原理专业术语案例演示基于注解(重点)基于配置文件基本概念 面向切面编程,也叫面向方面编程,利用aop可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各个部分之间降低耦合,提高程序的可…

AQS 对资源的共享方式

AQS 定义两种资源共享方式 1) Exclusive(独占) 只有一个线程能执行,如 ReentrantLock。又可分为公平锁和非公平锁,ReentrantLock 同时支持两种锁,下面以 ReentrantLock 对这两种锁的定义做介绍: 下面来看 ReentrantLock 中相关的…

概要设计说明书(GB8567——88)基于协同的在线表格forture-sheet

概要设计说明书 1引言 1.1编写目的 为了帮助用户更好的了解和使用本在线表格,提高用户与软件的亲和度。 用户手册描述配置和使用改在线表格,以及该软件使用过程中应该注意的一下问题。 1.2背景 说明: 本用户手册所描述的软件系统的名称…

医疗检测数据存储管理系统

摘要 医疗信息化的迅速发展导致了医疗数据的指数型增长,医疗检测数据存储管理系统给医院现有信息系统带了巨大的压力。一方面,随着各种非结构化数据的不断涌现,现有的医疗信息系统在存储空间,存储速度、存储结构上达不到医疗检测数据的要求,不…

Github惊现神作,这份算法宝典让你横扫各大厂算法面试题

时间飞逝,转眼间毕业七年多,从事 Java 开发也六年了。我在想,也是时候将自己的 Java 整理成一套体系。 这一次的知识体系面试题涉及到 Java 知识部分、性能优化、微服务、并发编程、开源框架、分布式等多个方面的知识点。 写这一套 Java 面试…

使用Docker搭建Nacos的持久化和集群部署

1. 准备 1.1 mysql安装 下载镜像 docker pull mysql/mysql-server:5.7 在宿主机中相关目录,用于挂载容器的相关数据 mkdir -p /data/mysql/{conf,data} 编写my.cnf配置文件,在/data/mysql/conf目录中 (或下载 直接上传即可) my.cnf.txt - 蓝奏云 / …

【考研加油】所有上岸的考研人都有一个共同的特点,就是他们都参加考试了。2023考研加油。

声明:为 2023考研的朋友加油! 2023考研加油 今明两天,将是大部分2023考研人,真正“上战场”的时候。 我想,只有经历过的人,才能对这一历程,感同身受吧! 为你们加油! 以下是在QQ空间看到的一组图,与你们共勉。 距考研还有____天! 确定目标院校中…跨考又能如何?…

阿里人在Github分享的Spring Cloud全栈笔记,你想象不到有多全

微服务到底是什么 微服务到底是什么,一直众说纷纭,我们只知道各大企业纷纷追捧和实践微服务架构,有的项目可能使用了Spring Cloud就算是使用微服务了,然后说微服务就是Spring Cloud,有的系统可能越做越像SOA&#xff…