Flex写法系列-Flex布局之基本语法

news2024/11/13 13:40:16

以前的传统布局,依赖盒装模型。即 display + position + float 属性。但是对于比较特殊的布局就不太容易实现,例如:垂直居中。下面主要介绍flex的基本语法,后续还有二期介绍Flex的写法。


一、什么是Flex布局?

Flex布局个人理解为弹性盒子,为盒装模型带来了很大的灵活性,方便开发人员。

Flex布局基本使用如下:

.container{

display:flex;

}

行内元素的使用:

.container{

display:inline-flex;

}

针对WebKit内核的浏览器(Chrome就是该内核的浏览器之一),要加上-webkit的前缀

.container{

display:flex;

display:-webkit-flex;

}

二、Flex布局的基本概念

如图。最外层的元素称为flex容器。所有子元素为容器成员,称为flex item。简称 “项目”。

容器内有两条轴,主轴和交叉轴。项目默认沿着主轴排列。占据的主轴空间叫main size,占据的交叉轴空间 cross size

三、Flex布局之容器属性

flex-direction

flex-wrap

flex-flow

justify-content

align-items

align-content

3.1 flex-direction

决定主轴的方向。即项目的排列方向。

.container{

flex-direction:row | row-reverse | column | column-reverse

}

  • row(默认值):主轴为水平方向,起点在左

  • row-reverse:主轴为水平方向,起点在右

  • column:主轴为垂直方向,起点在上

  • column-reverse:主轴为垂直方向,起点在下

3.2 flex-wrap

默认项目在一条线。flex-wrap属性定义轴线排不下,怎么换行

.container{

flex-wrap:nowrap | wrap | wrap-reverse

}

  • nowrap(默认值):不换行

  • wrap:换行,第一行在上

  • wrap-reverse:换行,第一行在下

3.3 flex-flow

是flex-direction和flex-wrap的简写形式。默认值为 row nowrap

.container{

flex-flow:flex-direction || flex-wrap

}

3.4 justify-content

定义了主轴的对齐方式

.container{

justify-content:flex-start | flex-end | center | space-between | space-around

}

  • flex-start(默认值):左对齐

  • flex-end:右对齐

  • center:居中对齐

  • space-between:两端对齐

  • space-around:项目两侧距离相等

3.5 align-items

定义了交叉轴的对齐方式

.container{

align-items:flex-start | flex-end | center | baseline | stretch

}

  • flex-start:交叉轴起点对齐

  • flex-end:交叉轴终点对齐

  • center:交叉轴终点对齐

  • baseline:项目第一行文字对齐

  • stretch(默认值):项目如果未设置高度或者auto,将占满整个容器的高度

四、Flex布局之项目属性

order

flex-grow

flex-shrink

flex-basis

flex

align-self

4.1 order

排列顺序。值越小,越在项目前面

.item{

order:1 | 2 | ....;

}

4.2 flex-grow

定义了项目的放大比例,默认为0。即如果存在剩余空间,也不放大

.item{

flex-grow:1 | 2 | ....;

}

如果所有子元素都是1,那么会等分剩余项目空间,如果其中一个是2,那么它所占的剩余空间比其他元素多一倍

4.3 flex-shrink

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

.item{

flex-shrink:1 | 2 | ....;

}

如果所有子元素都是1,那么空间不足时,都会缩小。如果其中一个为0,其他元素为1,空间不足时,前者不缩小

4.4 flex-basis

定义了分配多余空间之前,项目占据的主轴空间。默认值为auto,即项目的实际大小

.item{

flex-basis: length | auto;

}

4.5 flex

是flex-grow、flex-shrink、flex-basis的简写。默认 0 1 auto。

.item{

flex: flex-grow | flex-shrink | flex-basis

}

有两个常用快捷值:auto( 1 1 auto)、none( 0 0 auto)

4.6 align-self

单个子元素可以和其他子元素有不同的排列方式,比align-items优先级高。默认值auto

.item{

align-self: auto | flex-start | flex-end | center | baseline | stretch

}

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

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

相关文章

Vuex的创建和简单使用

Vuex 1.简介 1.1简介 1.框框里面才是Vuex state:状态数据action:处理异步mutations:处理同步,视图可以同步进行渲染1.2项目创建 1.vue create 名称 2.运行后 3.下载vuex。采用的是基于vue2的版本。 npm install vuex3 --save 4.vu…

Frequency Domain Model Augmentation for Adversarial Attack

原文:[2207.05382] Frequency Domain Model Augmentation for Adversarial Attack (arxiv.org)代码:https://github.com/yuyang-long/SSA.黑盒攻击替代模型与受攻击模型之间的差距通常较大,表现为攻击性能脆弱。基于同时攻击不同模型可以提高…

C++8:模拟实现list

目录 最基础的链表结构以及迭代器实现 链表节点结构 构造函数 push_back list的迭代器 增删查改功能实现 insert erase pop_front pop_back push_front clear 默认成员函数 析构函数 拷贝构造函数 赋值操作符重载 list的完善 const迭代器 赋值操作符重…

使用BP神经网络诊断恶性乳腺癌(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 1.1.算法简介 BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出&#xf…

c语言编程规范第三部分

3、头文件应向稳定的方向包含 头文件的包含关系是一种依赖,一般来说,应当让不稳定的模块依赖稳定的模块,从而当不稳定的模块发生变化时,不会影响(编译)稳定的模块。就我们的产品来说,依赖的方向…

数据复制 软件 SnapMirror:统一复制,更快恢复

数据复制 软件 SnapMirror:统一复制,更快恢复 预测未知领域是一项棘手的工作。让 SnapMirror 软件来处理则轻松得多。 通过数据的高可用性和快速数据复制,可即时访问业务关键型数据。放松一下,它会让你满意的。 为什么用 SnapMi…

3D目标检测(一)—— 基于Point-Based方法的PointNet系列

3D目标检测(一)—— PointNet,PointNet,PointNeXt, PointMLP 目录 3D目标检测(一)—— PointNet,PointNet,PointNeXt, PointMLP 前言 零、网络使用算法 …

AQS与Synchronized异曲同工的加锁流程

在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁。Synchronized是基于JVM实现,而ReentrantLock是基于Java代码层面实现的,底层是继承的AQS。 AQS全称…

c++函数对象(仿函数)、谓词、内建函数对象

1、函数对象 1.1 概念 重载函数调用操作符的类,这个类的对象就是函数对象,在使用这个函数对象对应使用重载的()符号时,行为类似于函数调用,因此这个函数也叫仿函数。 注意:函数对象&#xff0…

多个任务并行的时候,你是否总是会手忙脚乱?

很多重要事情之所以变得迫在眉睫,需要立刻处理、应付,是因为被延误或没有进行足够的预防和准备,筹划。 面对多个任务并行的时候,你是否总是会手忙脚乱? 在项目工作中,管理者每天要面对各种工作&#xff…

移动WEB开发二、流式布局

零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…

【Linux】线程函数和线程同步详细整理(金针菇般细)

目录 一,线程函数 1.获取当前线程ID 2.创建线程 3.退出线程 4.阻塞线程 5.分离线程 6.取消线程 7.线程比较 8.测试代码(线程函数总结) 二,线程同步 1.互斥锁 2.读写锁 3.条件变量 4.信号量 一,线程函数 …

【阿旭机器学习实战】【29】产品广告投放实战案例---线性回归

【阿旭机器学习实战】系列文章主要介绍机器学习的各种算法模型及其实战案例,欢迎点赞,关注共同学习交流。 目录问题描述数据处理过程及源码通过数据可视化分析数据训练线性回归模型可视化训练好的线性回归模型结果预测问题描述 你所在的公司在电视上做产…

mybatis狂神(附自学过程中疑问解决)

首先先附上mybatis的官方文本链接mybatis – MyBatis 3 | 简介一、Mybatis介绍MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来…

Comparator和Comparable的区别以及Collections.sort排序原理

一、概述 Comparable和Comparator都是两个接口,接口都可以用来实现集合中元素的比较、排序,Comparator位于包java.util下,而Comparable位于包java.lang下,Comparable接口将比较代码嵌入自身类中,而Comparator既可以嵌…

非标题党:前端Vue React 项目编程规范化配置(大厂规范)

前端项目编程规范化配置 下述例子主要是从 代码规范化 以及 git 提交规范化 两方面进行配置。内容很多,请做好心理准备 一、代码检测工具 ESLint 在我们通过 vue create “项目名” 时,我们可以通过手动配置的方式,来配置 ESLint 来对代码进…

QDateTime的11种显示方式

QDateTime datetime QDateTime::currentDateTime(); datetime.toString(“hh:mm:ss\nyyyy/MM/dd”); datetime.toString(“hh:mm:ss ap\nyyyy/MM/dd”); datetime.toString(“hh:mm:ss\nyyyy-MM-dd”); datetime.toString(“hh:mm:ss ap\nyyyy-MM-dd”); datetime.to…

【分享】订阅用友YonSuite集简云连接器同步销售出库数据至用友YonSuite

方案场景 在企业中因多种系统孤立导致数据割裂,是现企业中现阶段面临的最大问题,而钉钉作为常用的OA审批系统,用友YonSuite作为ERP系统,原方式钉钉内完成审批再由人工将数据同步到用友YonSuite系统,数据同步过程中不仅…

将HTTP接口配置成HTTPS

一、使用Java的keytool.exe程序生成本机的TLS许可找到Java的jdk目录进入bin默认安装路径C:\Program Files\Java\jdk1.8.0_91\bin 进入命令面板,在bin的路径栏中输入cmd敲击回车即可使用keytoolkeytool -genkeypair -alias tomcat_https -keypass 123456 -keyalg RSA…

linux线程的基本知识

这里用的是Linux的pthread线程库,需要加pthread线程库。 线程的创建 第一个参数是线程id的地址。第二个参数是线程属性,一般为NULL。第三个是要执行的函数。第四个是函数的参数,一般也为NULL 线程的等待,第一个参数是线程的id,第…