flex布局进阶

news2024/11/25 15:57:02

推荐看一下阮一峰老师的flex布局博客【Flex 布局教程:语法篇】(https://www.ruanyifeng.com/blog/2015/07/flex-grammar.html#),讲的非常清晰。

一、多行布局大小相同的子盒子技巧

使用弹性布局实现多行均匀布局时,如若子盒子数量不能被每行规定的子盒子数量整除时,该如何实现最后一行的子盒子和其他行的子盒子垂直对齐呢?

如下代码:

<template>
    <div class="container">
        <div class="item" v-for="item, index in 5" :key="index"></div>
    </div>
</template>

<style lang="scss" scoped>
.container {
    width: 1000px;
    height: 400px;
    background-color: pink;
    margin: 100px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    .item {
        width: 30%;
        height: 100px;
        background-color: gray;
    }
}
</style>

在这里插入图片描述

可以看到最后的一行只有两个子盒子,它们根据jusctify-content: space-between的规则贴在父盒子的两边,而业务需求是:最后一行的子元素必须按顺序和其他的子元素垂直对齐,那么如何在不影响其他行布局的前提下实现最后一行的子盒子按顺序和其他行的子盒子垂直对齐呢?我们可以使用伪元素+元素不可见来实现。

我们给父盒子增加一个宽度和子盒子一样宽的伪元素:

.container::after {
    content: '';
    width: 30%;
    visibility: hidden;
}

visibility:hidden实现了将元素隐藏,但是元素在网页中该占的位置还是占着的。

这样就成功完成了需求:
在这里插入图片描述

二、flex-flow

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

这里我们在上一小节的基础上,使用flex-flow代替flex-warp来测试一下flex-flow属性。

.container {
    width: 1000px;
    height: 400px;
    background-color: pink;
    margin: 100px;
    display: flex;
    justify-content: space-between;
    flex-flow: row wrap;  // 得到的效果是一样的
    .item {
        width: 30%;
        height: 100px;
        background-color: gray;
    }
}

得到了相同的结果。
在这里插入图片描述

三、flex-start | flex-end

center | space-between | space-around 

justify-content的这三个属性值的使用早已游刃有余了,这里我记录一下较为陌生的两个属性:

flex-start(默认值) | flex-end

flex-start是弹性布局的默认水平对齐方式,也就是左对齐,显然,flex-end就是右对齐了。

四、align-items属性进阶

和水平对齐方式一样的道理,垂直对齐方式align-item也有flex-startflex-end,不过它们分别代表上对齐和下对齐,下对齐常用于解决flex单行布局由于子盒子高度不同而导致子盒子下边界不在同一水平线的问题。如下

<template>
    <div class="container">
        <div class="item1"></div>
        <div class="item2"></div>
        <div class="item3"></div>
    </div>
</template>

<style lang="scss" scoped>
.container {
    width: 1000px;
    height: 400px;
    background-color: pink;
    margin: 100px;
    display: flex;
    justify-content: space-between;
    // align-items: flex-end;
    div {
        width: 30%;
        background-color: gray;
    }
    .item1 {
        height: 100px;
    }
    .item2 {
        height: 200px;
    }
    .item3 {
        height: 300px;
    }
}
</style>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bEQwf724-1690120788048)(C:\Users\22706\AppData\Roaming\Typora\typora-user-images\image-20230723212133179.png)]

给父盒子添加align-items: flex-end后,实现了子盒子下边界在同一水平线上。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iVHHIwS5-1690120788048)(C:\Users\22706\AppData\Roaming\Typora\typora-user-images\image-20230723212641092.png)]

align-items: flex-start | flex-end | center | baseline | stretch(默认);

值得注意的是弹性布局的垂直对齐方式默认并是上对齐,而是stretch,那么stretch是什么效果呢?stretch有延伸、张开、弹性的的意思,在弹性布局中就表示如果父盒子没有给高度并且使用了flex布局,那么父盒子的高度将由子盒子决定,根据子盒子的高度来自动撑开父盒子

这里再了解一下属性基线对齐:

baseline: 子盒子与第一行文字的基线对齐。

css中的基线(baseline0)并不是汉字文字的下端沿,而是英文字母x的下端沿,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CpuVoPeZ-1690120788048)(C:\Users\22706\AppData\Roaming\Typora\typora-user-images\image-20230723215602328.png)]

五、子盒子属性flex: none | [<‘flex-grow’> <‘flex-shrink’>? || <‘flex-basis’>]

阮一峰老师的博客讲解的非常详细:Flex 布局教程:语法篇

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

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

相关文章

AI Chat 设计模式:9. 命令模式

本文是该系列的第九篇&#xff0c;采用问答式的方式展开&#xff0c;问题由我提出&#xff0c;答案由 Chat AI 作出&#xff0c;灰色背景的文字则主要是我的一些思考和补充。 问题列表 Q.1 介绍下命令模式A.1Q.2 详细说说命令模式适用于啥场景呢A.2Q.3 举一个命令模式的例子&a…

网络知识点之-BGP协议

边界网关协议&#xff08;BGP&#xff09;是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议&#xff0c;也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系…

SQL 连接(JOIN)

SQL 连接&#xff08;JOIN&#xff09;是一种用于将两个或多个表中的数据相互匹配的操作&#xff0c;从而形成一个新的数据集合。JOIN 操作常用于查询和分析数据库中的数据&#xff0c;可以根据不同的连接方式返回不同的结果集。 SQL join 用于把来自两个或多个表的行结合起来…

明解STM32—GPIO理论基础知识篇之寄存器原理​

一、前言 在之前的STM32的GPIO理论基础知识中&#xff0c;分别对基本结构和工作模式进行了详细的介绍。GPIO基本结构中主要对GPIO内部的各个功能电路逐一的进行的分析&#xff1b;GPIO工作模式中主要介绍GPIO应用在不同的使用场景下&#xff0c;GPIO端口的静态特征配置和动态的…

FinClip 小程序桌面端商店上线啦

随着技术的不断进步和用户需求的增长&#xff0c;移动应用程序市场日益蓬勃发展。 然而&#xff0c;开发者们面临着一个严峻的挑战&#xff1a;“如何在不同的操作系统上开发和发布应用程序&#xff0c;以满足不同用户群体的需求&#xff1f;”在这方面&#xff0c;使用小程序…

【C++】深层次了解继承,从基础概念到复杂菱形继承问题(文章结尾有菱形继承常见面试题)

1.继承的概念及定义 继承的概念 继承是面向对象设计使代码可以复用的重要手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生的类&#xff0c;称为派生类。 继承的概念并不是固定的&#xff0c;只要能够通过自己的语言…

浅聊webpack的工作原理

参考文献: https://webpack.docschina.org/concepts/ 简述一下 WebPack 是一个模块打包工具&#xff0c;可以使用 WebPack 管理模块。在 webpack 看来&#xff0c;项目里所有资源皆模块&#xff0c;分析模块间的依赖关系&#xff0c;最终编绎输出模块为 HTML、JavaScript、CS…

C++OpenCV(5):图像模糊操作(四种滤波方法)

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 &#x1f506; OpenCV项目地址及源代码&#xff1a;点击这里 文章目录 图像模糊操作均值滤波高斯滤波中值滤波双边滤波 图像模糊操作 关于图片的噪声&#xff1a;指的是图片中存在的不必要或者多余的干扰数…

MySQL-多表查询-案例1

案例 根据需求完成多表查询的SQL语句的编写将资料汇中准备好的数据的SQL脚本导入到数据库中准备数据中各表的关系如下 具体代码 -- 分类表 create table category(id int unsigned primary key auto_increment comment 主键ID,name varchar(20) not null unique comment 分类名…

ARM练习

通过汇编语言完成LED1-3循环点亮练习 .text .global _start _start: /**********LED1点灯**************/ /*初始化RCC*/ RCC_INIT:LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0X1<<4)ORR R2,R1,#(0x1<<5)STR R1,[R0]STR R2,[R0]LED1_INIT:设置输出模式LDR R0,0X5…

Spring(10) 生成和替换Banner启动图案

目录 1.背景2.推荐网站3.如何集成到spring项目中4.效果展示 1.背景 我们在启动 Spring 项目的时候经常会看到一个 Spring 字样的启动图案。如下所示&#xff1a; 如果我们也想根据我们的内容生成这样的图案&#xff0c;应该怎么操作呢&#xff1f; 2.推荐网站 可以生成这种图…

Docker 制作镜像

自定义制作镜像 我们学习了Dockerfile语法,那么如何应用Dockerfile制作自定义的镜像呢?那今天我们就来实战一下,以主流的微服务Jar 为例子,开启我们自定义制作镜像之旅。 建立简单Springboot项目,并打包成jar 简历demo项目(访问路径 /start/springboot)配置端口,以及利…

P2196 [NOIP1996 提高组] 挖地雷

[NOIP1996 提高组] 挖地雷 题目描述 在一个地图上有 N ( N ≤ 20 ) N\ (N \le 20) N (N≤20) 个地窖&#xff0c;每个地窖中埋有一定数量的地雷。同时&#xff0c;给出地窖之间的连接路径。当地窖及其连接的数据给出之后&#xff0c;某人可以从任一处开始挖地雷&#xff0c;…

飞行动力学 - 第14节-飞机的配平 之 基础点摘要

飞行动力学 - 第14节-飞机的配平 之 基础点摘要 1. 最大上偏配平角2. 重心前限3. 配平曲线4. 空气压缩性影响 & 配平曲线5. 马赫速配平曲线6. 地面效应7. 地效的影响8. 参考资料 1. 最大上偏配平角 升降舵下偏为正从操纵性的角度&#xff0c;重心应该位于【重心前限】 X c…

投个 3D 冰壶,上班玩一玩

本篇文章将介绍如何使用物理引擎和图扑 3D 可视化技术来呈现冰壶运动的模拟。 Oimo.js 物理引擎 Oimo.js 是一个轻量级的物理引擎&#xff0c;它使用 JavaScript 语言编写&#xff0c;并且基于 OimoPhysics 引擎进行了改进和优化。Oimo.js 核心库只有 150K &#xff0c;专门用…

408计算机考研-101-数据结构-基本概念

数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式。 数据结构分为逻辑结构和物理结构(存储结构) 逻辑结构 逻辑结构是指数据之间的相互关系和组织方式。 按照数据元素之间的关系不同&#xff0c;可以分为以下4种&#xff1a; 集合结构线性接口树结构图结构 …

华为OD机试真题 Java 实现【数字游戏】【2023 B卷 100分】,附详细解题思路

TOC 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

操作系统练习:进程间通信(共享内存方式)

说明 本文是《操作系统概念(第九版)》3.4节“进程间通信”的练习。 进程间通信主要由两种模型&#xff1a; 共享内存消息传递 本文使用共享内存的方式实现进程间的通信 创建消息生产者 创建生产者的主要操作包括&#xff1a; 定义共享内存的大小、名称&#xff0c;以及通…

SJA1000的简单调试

文章目录 基本过程SJA1000波特率计算公式验收滤波器使用其他关于CLKOUT测试寄存器初始化过程中会产生中断扩展帧、标准帧的区分计算器 基本过程 SJA1000的接口连接到FPGA上&#xff0c;采用软核进行CAN数据的收发。调试花了1天多的时间&#xff0c;有点波折&#xff0c;下面按…

最新版edge浏览器中安装xpath插件

最近在跟着尚硅谷进行爬虫的学习&#xff0c;老师给出了在谷歌浏览器安装Xpath插件的方法&#xff0c;由于电脑上面未安装谷歌浏览器&#xff0c;所以在网上搜索了在edge上安装Xpath插件的方法&#xff0c;安装完成以后发现使用快捷键 CTRL SHIFTX不能够打开&#xff0c;以为是…