CSS 标准流 浮动 Flex布局

目录

  • 1. 标准流
  • 2. 浮动
    • 2.1 清除浮动
  • 3. Flex 布局
    • 3.1 Flex 组成
    • 3.2 Flex 布局 - 主轴与侧轴对齐方式
      • 3.2.1 主轴对齐方式
      • 3.2.2 侧轴对齐方式
    • 3.3 Flex 布局 - 修改主轴方向
    • 3.4 Flex 布局 - 弹性伸缩比
    • 3.5 Flex 布局 - 弹性盒子换行
    • 3.6 Flex 布局 - 行对齐方式


1. 标准流

标准流:也称文档流,指的是标签在页面中默认的排布规则。例如:块元素独占一行,行元素可以一行显示多个。

2. 浮动

作用:让块元素水平排列

属性名:float

属性值描述
left左对齐
right右对齐

例如:

<style>/* 特点:顶对齐,具备行内块显示特点 */.one {width: 100px;height: 100px;background-color: red;float: left;}.two {width: 200px;height: 200px;background-color: blue;}
</style>
<body><div class="one">这是one块级元素</div><div class="two">这是two块级元素</div>
</body>

页面效果:
在这里插入图片描述

浮动特点

  • 浮动的盒子会脱离标准流的控制(脱标),不再占用标准流的位置。
  • 浮动后盒子具备行内块特点。
  • 浮动后盒子顶对齐。
  • 父级宽度不够,浮动的子级会换行。

2.1 清除浮动

场景:如果父级没有高度,子级使用了浮动,就会脱标,不再占用标准流位置,那么就无法撑开父级高度,那就可能导致页面布局错乱。

例如:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 特点:顶对齐,具备行内块显示特点 */.one {width: 300px;background-color: red;}.two {width: 200px;height: 200px;background-color: blue;float: left;}</style>
</head>
<body><div class="one">这是one块级元素<div class="two">这是two块级元素</div></div>
</body>
</html>

页面效果:
在这里插入图片描述

解决方法:清除浮动

  • 额外标签法:在父元素内容的最后添加一个块级元素,设置 CSS 属性 clear: both(清除两侧浮动的影响)
  • 单伪元素法:通过伪元素选择器,在父元素的最后添加一个块级元素,设置 CSS 属性 clear: both
<style>
.clearfix::after {content: "";display: block;clear:both;	
}
</style>
  • 双伪元素法(推荐):在父级的开头和结尾都加标签
<style>
/* 防止外边距塌陷 */
.clearfix::before,
.clearfix::after {content: "";display: table;
}
/* 清除浮动效果 */
.clearfix::after {clear: both;
}
</style>
  • overflow法:父元素添加 CSS属性 overflow: hidden(溢出隐藏)

3. Flex 布局

Flex 布局也叫弹性布局,是浏览器提倡的布局模型,非常适合结构化布局,提供了强大的空间分布和对齐能力。Flex 模型不会产生浮动布局中的脱标现象,布局网页更简单、更灵活。

3.1 Flex 组成

设置方式:给父元素设置display: flex,子元素可以自动挤压或拉伸。

组成部分

  • 弹性容器:设置了display: flex的父元素
  • 弹性盒子:在弹性容器中的盒子,沿着主轴方向排列
  • 主轴:默认在水平方向
  • 侧轴/交叉轴:默认在垂直方向

3.2 Flex 布局 - 主轴与侧轴对齐方式

属性描述
display: flex创建 Flex 容器
justify-content主轴对齐方式
align-items侧轴对齐方式
align-self某个弹性盒子侧轴对齐方式
flex-direction修改主轴方向
flex弹性伸缩比
flex-wrap弹性盒子换行
align-content行对齐方式

3.2.1 主轴对齐方式

属性名:justify-content

属性值描述
flex-start默认值,弹性盒子从起点开始依次排列
flex-end弹性盒子从终点开始依次排列
center弹性盒子沿主轴局中排列
space-between弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子之间
space-around弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子两侧
space-evenly弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等

例如:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 特点:顶对齐,具备行内块显示特点 */.one {height: 600px;border: 1px black solid;display: flex;justify-content: space-evenly;}.two {width: 200px;height: 200px;background-color: pink;float: left;}</style>
</head>
<body><div class="one"><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div></div>
</body>
</html>>

页面效果:
在这里插入图片描述

3.2.2 侧轴对齐方式

属性名

  • align-items:当前弹性容器内所有弹性盒子的侧轴对齐方式(给弹性容器设置)
  • align-self:单独控制某个弹性盒子的侧轴对齐方式(给弹性盒子设置)
属性值描述
stretch弹性盒子沿着轴线被拉伸至铺满容器(弹性盒子没有设置轴线方向尺寸才拉伸)
center弹性盒子沿侧轴局中排列
flex-start弹性盒子从起点开始依次排列
flex-end弹性盒子从终点开始依次排列

例如:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 特点:顶对齐,具备行内块显示特点 */.one {height: 600px;border: 1px black solid;display: flex;justify-content: space-evenly;align-items: center;}.two {width: 200px;height: 200px;background-color: pink;}.two:nth-child(3){width: 200px;height: 200px;background-color: pink;align-self: flex-start;}</style>
</head>
<body><div class="one"><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div></div>
</body>
</html>>

页面效果:
在这里插入图片描述

3.3 Flex 布局 - 修改主轴方向

主轴默认在水平方向,侧轴默认在垂直方向

属性名:flex-direction

属性值描述
row水平方向,从左向右(默认)
column垂直方向,从上向下
row-reverse水平方向,从右向左
column-reverse垂直方向,从下向上

注:当我们修改主轴为垂直方向时,侧轴自动变为水平方向

例如:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 特点:顶对齐,具备行内块显示特点 */.one {height: 1000px;border: 1px black solid;display: flex;justify-content: space-evenly;align-items: center;/* 修改主轴方向为自上向下 */flex-direction: column;}.two {width: 200px;height: 200px;background-color: pink;border: 1px black solid;}.two:nth-child(3){width: 200px;height: 200px;background-color: pink;align-self: flex-start;}</style>
</head>
<body><div class="one"><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div></div>
</body>
</html>>

页面效果:
在这里插入图片描述

3.4 Flex 布局 - 弹性伸缩比

作用:控制弹性盒子的主轴方向尺寸。

属性名:flex
属性值:整数数字,表示占用父级剩余尺寸的份数

3.5 Flex 布局 - 弹性盒子换行

弹性盒子可以自动挤压或拉伸,默认情况下,所有弹性盒子都在一行显示

属性名:flex-wrap

属性值描述
wrap换行
nowrap不换行(默认)

例如:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 特点:顶对齐,具备行内块显示特点 */.one {height: 1000px;border: 1px black solid;display: flex;justify-content: space-evenly;align-items: center;/* 换行 */flex-wrap: wrap;}.two {width: 400px;height: 400px;background-color: pink;border: 1px black solid;}</style>
</head>
<body><div class="one"><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div></div>
</body>
</html>>

页面效果:
在这里插入图片描述

3.6 Flex 布局 - 行对齐方式

作用:对多行弹性盒子的行对齐方式进行设置,对单行盒子不起效果

属性名:align-content

属性值描述
flex-start默认值,弹性盒子从起点开始依次排列
flex-end弹性盒子从终点开始依次排列
center弹性盒子沿主轴居中排列
space-between弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子之间
space-around弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子两侧
space-evenly弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等

例如:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 特点:顶对齐,具备行内块显示特点 */.one {height: 1000px;border: 1px black solid;display: flex;justify-content: space-evenly;align-content: end;flex-wrap: wrap;}.two {width: 300px;height: 300px;background-color: pink;border: 1px black solid;}</style>
</head>
<body><div class="one"><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div><div class="two">这是two块级元素</div></div>
</body>
</html>>

页面效果:
在这里插入图片描述


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

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

相关文章

使用selenium时出现element click intercepted报错的解决办法

win10&#xff0c;python3.8.10。 selenium版本如下&#xff08;用pip38 show selenium查看&#xff09;&#xff1a; 在定位中&#xff0c;定位了一个按钮&#xff08;特点&#xff1a;button下还有span然后才是文本&#xff09;&#xff0c;代码如下&#xff1a; from sele…

ubuntu22.04 CH340/CH34x 驱动安装

CH34x驱动地址&#xff1a;CH341SER_LINUX.ZIP - 南京沁恒微电子股份有限公司 1、卸载旧驱动&#xff08;如果存在&#xff09; sudo rmmod ch341.ko 2、解压进入 driver 目录 unzip CH341SER_LINUX.ZIP cd CH341SER_LINUX/driver 3、编译 make 可能错误&#xff1a; make[1]…

51单片机中断和定时的结合应用

#include <reg52.h>unsigned int cnt 0;sbit led P1^1;// 初始化定时器 void TimerSetup(){TMOD 0x01; // 定时器的第1个模式TH0 0xB8; // 定时器的初始值-高位TL0 0x00; // 定时器的初始值-低位TR0 1; //启动定时器cnt 0;EA 1; // 开启总中断ET0 1; // 时间中断…

4月26日 阶段性学习汇报

1.毕业设计与毕业论文 毕业设计已经弄完&#xff0c;加入了KNN算法&#xff0c;实现了基于四种常见病的判断&#xff0c;毕业论文写完&#xff0c;格式还需要调整&#xff0c;下周一发给指导老师初稿。目前在弄答辩ppt&#xff08;25%&#xff09;。25号26号两天都在参加校运会…

Python升级打怪(5)

链式调用:用一个函数的返回值作为另外一个函数参数 嵌套调用:一个函数在另一个函数定义里面&#xff0c;而调用该定义函数既可以使用在其里面的函数 在Pycharm中调试器的左下角能够看到函数之间的"调用栈" 调用栈里面描述了当前这个代码的函数之间&#xff0c;调用…

AI生图美学在淘宝的实践应用

本文介绍了如何制定和应用美学标准来评估和改善人工智能生成的图像质量&#xff0c;特别是在电商领域的应用&#xff0c;主要分为制定美学标准、训练美学模型、应用美学模型、升级淘宝风格模型四个步骤。 美学的定义与分析 图像质量标准&#xff1a;现代设计框架下&#xff0c;…

黑马-设计模式-笔记(未完)

一、基础 UML类图 可见性&#xff1a; public- private#protected 表示方式&#xff1a;属性&#xff1a;可见性 名称:类型[默认值]方法&#xff1a;可见性 名称(参数)[:返回类型] 关系&#xff1a;关联关系&#xff1a;实线&#xff0c;引用关系&#xff0c;类属性里有另一个…

Pycharm/Dataspell中使用jupyter导入ros humble包

配置ros humble对应python包路径文件 首先在~/.local/lib/python3.10/site-packages目录下新建一个.pth文件&#xff0c;如下图所示。 将对应的ros humble的python包的路径配置在上述文件中&#xff0c;一行放置一个路径&#xff0c;对应的路径如下图所示。 完成上述操作后…

苹果电脑装虚拟机好用吗 苹果电脑装虚拟机要钱吗 Parallels对mac的损害 Parallels占用多大空间 PD19

在当今数字化的时代&#xff0c;人们对电脑系统跨设备互联的需求越来越高。作为拥有广泛用户群体的苹果电脑&#xff0c;许多用户会有在Mac系统中运行其他操作系统的需求。在这种情况下&#xff0c;安装虚拟机是一个较好的解决方案。那么接下来就给大家介绍苹果电脑装虚拟机好用…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(三)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 4 - 6节&#xff09; P5《04.快速入门》 本节来实现一个 HelloWorld 效果&#xff1a; 1、打开编辑器&#xff0c;选择新建项目&…

SpringBoot War打包部署

修改打包方式 <packaging>war</packaging>修改 Servlet 容器的 scope <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></d…

Mybatis入门(入门案例,IDEA配置SQL提示,JDBC介绍,lombok介绍)

目录 一、Mybatis入门案例介绍整体步骤创建SpringBoot项目pom依赖准备测试数据新建实体类配置Mybatis数据库连接信息新建接口类,编写SQL代码单元测试 二、IDEA配置SQL提示三、JDBC是什么案例JDBC和Mybatis对比 四、数据库连接池介绍如何实现一个数据库连接池切换数据库连接池 五…

Oracle导出导入dmp等文件类型的多表数据的常用方法、遇见的常见问题和解决办法(exp无效sql???)

使用PLSQL执行导出表数据的时候有两种方法 1、使用Oracle命令【imp--exp】【impdp--expdp】 但是如果你的本机没有安装有Oracle数据库&#xff0c;使用的instant client远程连接服务器上的Oracle数据库时候&#xff0c;你没有Oracle数据库带有的exp.exe、imp.exe等扩展文件&a…

Android kotlin 协程异步async与await介绍与使用

一、介绍 在kotlin语言中&#xff0c;协程是一个处理耗时的操作&#xff0c;但是很多人都知道同步和异步&#xff0c;但是不知道该如何正确的使用&#xff0c;如果处理不好&#xff0c;看似异步&#xff0c;其实在runBloacking模块中使用的结果是同步的。 针对如何同步和如何异…

day04 51单片机-矩阵按键

1 矩阵按键 1.1 需求描述 本案例实现以下功能&#xff1a;按下矩阵按键SW5到SW20&#xff0c;数码管会显示对应的按键编号。 1.2 硬件设计 1.2.1 硬件原理图 1.2.2 矩阵按键原理 1.3软件设计 1&#xff09;Int_MatrixKeyboard.h 在项目的Int目录下创建Int_MatrixKeyboard…

Acer宏碁掠夺者战斧300笔记本电脑PH315-52工厂模式原装Win10系统安装包 恢复出厂开箱状态 带恢复重置

宏碁掠夺者PH315-52原厂Windows10工厂包镜像下载&#xff0c;预装oem系统 链接&#xff1a;https://pan.baidu.com/s/1grmJzz6nW1GOaImY_ymXGw?pwdi286 提取码&#xff1a;i286 原厂W10系统自带所有驱动、PredatorSense风扇键盘控制中心、Office办公软件、出厂主题壁纸、系统…

C语言简易类json格式解析

在使用MQTT时&#xff0c;获取的数据基本上都是json格式的&#xff0c;虽然C语言也可以添加第三方的解析库&#xff0c;但有些资源少的单片机用着还是挺吃力的&#xff0c;所以自己简单写了一个从json格式中获取数据的&#xff0c;说白了就是一个字符串查找。就比如下面这一段 …

Scrapy 爬虫教程:从原理到实战

Scrapy 爬虫教程&#xff1a;从原理到实战 一、Scrapy框架简介 Scrapy是一个由Python开发的高效网络爬虫框架&#xff0c;用于从网站上抓取数据并提取结构化信息。它采用异步IO处理请求&#xff0c;能够同时发送多个请求&#xff0c;极大地提高了爬虫效率。 二、Scrapy运行原…

Elasticsearch单机部署(Linux)

1. 准备环境 本文中Elasticsearch版本为7.12.0&#xff0c;JDK版本为1.8.0&#xff0c;Linux环境部署。 扩展&#xff1a; &#xff08;1&#xff09;查看Elasticsearch对应的常用的jdk版本如下&#xff1a;&#xff08;详情可看官网的支持一览表&#xff09; Elasticsearch a…

机器学习 -- 分类问题

场景 探讨了一个回归任务——预测住房价格&#xff0c;用到了线性回归、决策树以及随机森林等各种算法。本次中我们将把注意力转向分类系统。我们曾经对MNIST进行了分类任务&#xff0c;这次我们重新回到这里&#xff0c;细致的再来一次。 开始 获取数据 Scikit-Learn提供了…