CSS伸缩盒模型

CSS伸缩盒模型

伸缩盒模型是CSS中的一种布局手段,可以使元素具有弹性,让元素可以跟随页面大小的改变而改变。

1. 伸缩容器

给元素设置display:flexdisplay:inline-flex ,就是伸缩容器。

2. 主轴与侧轴

  • 主轴: 伸缩项目沿着主轴排列,主轴默认是水平的,默认方向是:从左到右。
  • 侧轴: 与主轴垂直的就是侧轴,侧轴默认是垂直的,默认方向是:从上到下。

主轴的属性:

属性名作用
flex-direction
主轴方向

row :主轴方向水平从左到右(默认)
row-reverse :主轴方向水平从右到左
column :主轴方向垂直从上到下
column-reverse :主轴方向垂直从下到上
flex-wrap
主轴换行

nowrap :不换行(默认)
wrap :自动换行
wrap-reverse :反向换行
flex-flow
复合属性
flex-direction 和 flex-wrap
justify-content
主轴对齐

flex-start :主轴起点对齐(默认)
flex-end :主轴终点对齐
center :居中对齐
space-between :均匀分布,两端对齐(最常用)
space-around :均匀分布,两端距离是中间距离的一半
space-evenly :完全平分

注意:改变了主轴的方向,侧轴方向也随之改变。

侧轴的属性:

属性名作用
align-items
侧轴一行对齐

flex-start :顶端对齐
flex-end :尾端对齐
center :水平对齐
baseline : 伸缩项目的第一行文字的基线对齐
stretch :如果伸缩项目未设置高度,将占满整个容器的高度(默认)
align-content
侧轴多行对齐

flex-start :顶端对齐
flex-end :尾端对齐
center :与侧轴的中点对齐
space-between :两端对齐,中间平均分布
space-around :均匀分布,上下两端距离是中间距离的一半
space-evenly : 完全平分
stretch :占满整个侧轴(默认)

3. flex练习1

用flex完成以下排列:

image-20240202212002463

3.1 代码演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>flex练习1</title>
    <style>
        *{
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }
        
        .wrapper{
            width: 400px;
            height: 200px;
            margin: auto;
            border: 1px solid #ccc;
            display: flex;
            /* align-items指定元素在纵轴上的排布方式 */
            align-items: center;
            /* justify-content指定元素在主轴上的排布方式 */
            justify-content: space-around;
        }

        .box{
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background-color: #f00;
        }
    </style>
</head>
<body>
    <div class="wrapper">
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
    </div>
</body>
</html>

4. flex练习2

用flex,完成骰子的点数。

image-20240202212159838

4.1 分析思路

image-20240202213028669

4.2 代码演示

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>骰子点数</title>
		<style>
			* {
				margin: 0;
				padding: 0;
				box-sizing: border-box;
			}

			.wrapper {
				margin: 100px 100px;
				width: 500px;
				height: 500px;
				border-radius: 10px;
				background-color: #232323;
				display: flex;
				flex-wrap: wrap;
				align-items: center;
				justify-content: space-around;
			}

			.dot {
				width: 20px;
				height: 20px;
				border-radius: 50%;
				background-color: #000;
			}

			.box-common {
				width: 100px;
				height: 100px;
				display: flex;
				background-color: #fff;
				padding: 4px;
				margin: 60px;
				border-radius: 8px;
			}

			.box {
				align-items: center;
				justify-content: center;
			}

			.box2 {
				flex-direction: column;
				justify-content: space-between;
				align-items: center;
			}
			/* align-self子元素属性,控制自身的排列 */
			.dot2-1 {
				align-self: flex-start;
			}
			/* align-self子元素属性,控制自身的排列 */
			.dot2-2 {
				align-self: flex-end;
			}

			/* 3点的写法 */
			.box3 {
				justify-content: space-between;
			}
			.dot3-1 {
				align-self: flex-start;
			}
			.dot3-2 {
				align-self: center;
			}
			.dot3-3 {
				align-self: flex-end;
			}
			/* box4 */
			.box4 {
				flex-wrap: wrap;
			}
			.dot4 {
				width: 50%;
				height: 50%;
				display: flex;
			}
			.dot4:nth-child(2) {
				justify-content: flex-end;
			}
			.dot4:nth-child(3) {
				align-items: flex-end;
			}
			.dot4:nth-child(4) {
				justify-content: flex-end;
				align-items: flex-end;
			}
		</style>
	</head>

	<body>
		<div class="wrapper">
			<!-- 一点 父容器,主轴居中,侧轴居中-->
			<div class="box box-common">
				<div class="dot"></div>
			</div>
			<!-- 二点 主容器主轴为侧轴,居中,每一个子项单独控制,第一个flex-start,第二个flex-end-->
			<div class="box2 box-common">
				<div class="dot dot2-1"></div>
				<div class="dot dot2-2"></div>
			</div>
			<!-- 三点 同2点写法一样,只不过中间的点是center-->
			<div class="box3 box-common">
				<div class="dot dot3-1"></div>
				<div class="dot dot3-2"></div>
				<div class="dot dot3-3"></div>
			</div>
			<!-- 四点 分为四个部分,嵌套两层flex盒子-->
			<div class="box4 box-common">
				<div class="dot4">
					<div class="dot"></div>
				</div>
				<div class="dot4">
					<div class="dot"></div>
				</div>
				<div class="dot4">
					<div class="dot"></div>
				</div>
				<div class="dot4">
					<div class="dot"></div>
				</div>
			</div>
		</div>
	</body>
</html>

5. 青蛙小游戏

Flexbox Froggy(弹性盒小青蛙)是一个帮助你快速学习前端 Flex 布局的小游戏,可以通过玩游戏的方式进行巩固flex知识。

项目地址:https://flexboxfroggy.com/

image-20240202213434991

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年:用OKR管理你的生活

在科技高速发展的时代&#xff0c;越来越多的企业和团队开始采用OKR&#xff08;Objectives and Key Results&#xff09;管理方法来设定目标并跟踪进度。你是否想过&#xff0c;将OKR理念引入个人生活&#xff0c;以更有效地实现人生目标&#xff1f;本文将探讨如何在2024年运…

句子嵌入: 交叉编码和重排序

这个系列目的是揭开嵌入的神秘面纱&#xff0c;并展示如何在你的项目中使用它们。第一篇博客介绍了如何使用和扩展开源嵌入模型&#xff0c;选择现有的模型&#xff0c;当前的评价方法&#xff0c;以及生态系统的发展状态。第二篇博客将会更一步深入嵌入并解释双向编码和交叉编…

Java基于微信小程序的医院挂号系统

文章目录 1 简介2 技术栈3 系统目标3.2 系统功能需求分析3.2.1 功能需求分析 4 系统模块设计4.1 数据库模块设计 5 系统的实现5.1 微信小程序个人中心5.2 科**室内容查看的实现**5.3 预约挂号的实现5.4 后台管理界面实现5.5 医生预约管理5.6 医生信息管理 参考文献7 推荐阅读8 …

『 C++ - STL 』unordered_xxx系列关联式容器及其封装(万字)

文章目录 &#x1f3a1; unordered系列关联式容器&#x1f3a1; 哈希表的改造&#x1f3a2; 节点的设置与总体框架&#x1f3a2; 迭代器的封装&#x1f3a0; 迭代器的框架&#x1f3a0; operator()运算符重载&#x1f3a0; 其余成员函数/运算符重载 &#x1f3a2; 迭代器begin(…

ES监控方法以及核心指标

文章目录 1. 监控指标采集1.1 部署elasticsearch_exporter1.2 prometheus采集elasticsearch_exporter的暴露指标1.3 promethues配置告警规则或者配置grafana大盘 2. 核心告警指标2.1 es核心指标2.2 es容量模型建议 3. 参考文章 探讨es的监控数据采集方式以及需要关注的核心指标…

ArcGIS的UTM与高斯-克吕格投影分带要点总结

UTM&#xff08;通用横轴墨卡托投影、等角横轴割椭圆柱投影&#xff09;投影分带投影要点&#xff1a; 1&#xff09;UTM投影采用6度分带 2&#xff09;可根据公式计算&#xff0c;带数&#xff08;经度整数位/6&#xff09;的整数部分31 3&#xff09;北半球地区&#xff0…

使用dbeaver导入Excel到mysql数据库

最近业务需要将Excel导入到mysql数据库中&#xff0c;之前一直用的heisql&#xff0c;但是heidisql的导入功能太弱了&#xff0c;后来用了dbeaver&#xff0c;功能很强大。 一、安装dbeaver 首先去官网下载dbeaver社区版&#xff0c;社区版免费&#xff1a;dbeaver.io/ dbea…

ISIS 特性验证(ATT置位、渗透、认证)

拓扑图 配置 sysname AR1 # isis 1is-level level-1cost-style widenetwork-entity 49.0001.0000.0000.0001.00 # interface GigabitEthernet0/0/0ip address 12.1.1.1 255.255.255.0 isis enable 1 # interface GigabitEthernet0/0/1ip address 13.1.1.1 255.255.255.0 isis e…

【Java安全】ysoserial-URLDNS链分析

前言 Java安全中经常会提到反序列化&#xff0c;一个将Java对象转换为字节序列传输&#xff08;或保存&#xff09;并在接收字节序列后反序列化为Java对象的机制&#xff0c;在传输&#xff08;或保存&#xff09;的过程中&#xff0c;恶意攻击者能够将传输的字节序列替换为恶…

ideal打包,如何访问项目根目录的libs中的jar包

参考&#xff1a;idea maven 导入lib中jar 并打包_maven引入lib中的jar包-CSDN博客 解决办法&#xff0c;只需要在pom文件中加入 <includeSystemScope>true</includeSystemScope> <build><!-- <includeSystemScope>true</includeSystemScope&g…

Matlab数据快速处理指南

文章目录 Excel文件转Mat或工作区从Excel文件读取数据并转换为.mat文件从Excel文件读取数据并加载到工作区 Mat文件转ExcelExcel快速实现万行级填充各种数据类型的操作创建结构体访问结构体字段修改结构体字段的值添加新字段删除字段遍历结构体字段 Excel文件转Mat或工作区 在…

Java中JVM常用参数配置(提供配置示例)

目录 前言一、内存参数配置二、垃圾收集器配置三、GC策略配置3.1、基础通用配置3.2、Parallel 和 Parallel Old 常用参数配置3.3、CMS 常用参数配置3.4、G1 常用参数配置 四、GC日志配置五、dump 日志参数配置5.1、OutOfMemory异常时生成dump文件5.2、发生Full GC时生成dump文件…

《Git 简易速速上手小册》第1章:Git 基础(2024 最新版)

文章目录 1.1 Git 简介&#xff1a;版本控制的演变1.1.1 基础知识讲解1.1.2 重点案例&#xff1a;协作开发流程优化案例&#xff1a;功能开发与分支策略 1.1.3 拓展案例 1&#xff1a;代码审查与合并1.1.4 拓展案例 2&#xff1a;冲突解决 1.2 安装和配置 Git&#xff1a;首次设…

WebSocket基础详解

文章目录 前言由来简介优缺点适用场景兼容性 API介绍构造函数实例方法send()close() 实例属性ws.readyState&#xff08;只读&#xff09;ws.bufferedAmount&#xff08;只读&#xff09;ws.binaryTypeextensions&#xff08;只读&#xff09;protocol&#xff08;只读&#xf…

React+Antd实现表格自动向上滚动

1、效果 2、环境 1、react18 2、antd 4 3、代码实现 原理&#xff1a;创建一个定时器&#xff0c;修改表格ant-table-body的scrollTop属性实现滚动&#xff0c;监听表层的元素div的鼠标移入和移出实现实现鼠标进入元素滚动暂停&#xff0c;移出元素的时候表格滚动继续。 一…

VXLAN网关技术及应用实例详解

1.特性概述 VXLAN是VLAN扩展方案草案&#xff0c;是NVo3中的一种网络虚拟化技术。采用MAC in UDP封装方式&#xff0c;将二层报文用三层协议进行封装&#xff0c;可对二层网络在三层范围进行扩展&#xff0c;同时支持24bits的VNIID ( 16M租户能力&#xff09;&#xff0c;满足…

项目02《游戏-09-开发》Unity3D

基于 项目02《游戏-08-开发》Unity3D &#xff0c; 本次任务是做抽卡界面&#xff0c;获取的卡片增添在背包中&#xff0c;并在背包中可以删除卡片&#xff0c; 首先在Canvas下创建一个空物体&#xff0c;命名为LotteryPanel&#xff0c;作为抽卡界面&#xff0c; …

华视 CVR-100UC 身份证读取 html二次开发模板

python读卡&#xff1a;python读卡 最近小唐应要求要开发一个前端的身份证读卡界面&#xff0c;结果华视CVR-100UC 的读取界面是在是有点&#xff0c;而且怎么调试连官方最基本的启动程序都执行不了。CertReader.ocx 已成功&#xff0c;后面在问询一系列前辈之后&#xff0c;大…

探索设计模式的魅力:设计之美-揭秘设计模式、原则与UML的魔法

设计模式专栏&#xff1a;http://t.csdnimg.cn/U54zu 目录 一、引言 二、设计模式与设计原则 设计模式 设计原则 三、面向对象设计原则 四、UML&#xff08;统一建模语言&#xff09; 4.1 UML是什么 UML是一种语言 UML是一种建模语言 UML是一种图形化语言 4.2 UML有什么 4.…

使用 git 上传文件时,运行 命令 git pull origin 时未成功,出现报错信息

项目场景&#xff1a; 背景&#xff1a; 使用 git 上传文件时&#xff0c;运行 命令 git pull origin 时未成功&#xff0c;出现报错信息 问题描述 问题&#xff1a; $ git pull origin print --allow-unrelated-histories error: Pulling is not possible because you hav…