当前位置: 首页 > article >正文

【CSS3】04-标准流 + 浮动 + flex布局

本文介绍浮动与flex布局。

目录

1. 标准流

2. 浮动

2.1 基本使用

特点

脱标

2.2 清除浮动

2.2.1 额外标签法

2.2.2 单伪元素法

2.2.3 双伪元素法(推荐)

2.2.4 overflow(最简单)

3. flex布局

3.1 组成

3.2 主轴与侧轴对齐方式

3.2.1 主轴

3.2.2 侧轴

3.3 修改主轴方向

3.4 弹性伸缩比

3.5 弹性换行与行对齐

3.5.1 弹性盒子换行

3.5.2 行对齐方式


1. 标准流

也叫文档流,指的是标签在页面中默认的排布规则

例如:块元素独占一行,行内元素可以一行显示多个


2. 浮动

让块级元素水平排列

2.1 基本使用

属性名:float

属性值:left  左对齐;right  右对齐

两个标签都加上 左浮动:都靠左

第二个改为右浮动:一左一右

特点

顶对齐,具备行内块的显示模式


脱标

给标签加上浮动,本身属于让其脱离标准流的控制

如果一个有浮动,另一个没有浮动,效果如下:

就会出现上面的叠加效果,因为浮动后的,不是标准流了,所以浏览器不会认为它在占用空间,下面没有加浮动的标签顺其自然的上移和one标签重叠。

所以最好两个都要浮动。


2.2 清除浮动

浮动元素会脱标,如果浮动的父级没有高度,子级无法撑开父级高度(可能导致页面布局错乱)

解决方法:清除浮动(清除浮动带来的影响)

先看正常的:

现在注释掉top的高度

因为 top.div 里的两个盒子是浮动的,属于脱标,浏览器会认为其不存在,所以出现上面的情况。


2.2.1 额外标签法

在父元素内容的最后添加一个块级元素,设置CSS属性:clear:both


2.2.2 单伪元素法

在父元素内容的最后添加一个块级元素

可以直接使用如下代码:

.clearfix::after {content: "";clear: both;display: block;
}


2.2.3 双伪元素法(推荐)

        /* 双伪元素 *//* before 解决外边距塌陷问题 */.clearfix::before,.clearfix::after {content: "";display: block;}.clearfix::after {clear: both;}</style>
</head>
<body><div class="top clearfix">      <div class="left"></div><div class="right"></div></div><div class="bottom"></div>
</body>


2.2.4 overflow(最简单)

父元素添加CSS属性 overflow:hidden


3. flex布局

flex布局也叫弹性布局,是浏览器提倡的布局类型,非常适合结构化布局,提供了强大的空间分布和对齐能力。

flex布局不会产生浮动布局中的脱标现象,更简单更灵活。

3.1 组成

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

组成部分:

弹性容器、弹性盒子(是容器的子级)、主轴(默认水平)、侧轴/交叉轴(默认垂直)

沿着主轴方向排列,自动挤压。


3.2 主轴与侧轴对齐方式

3.2.1 主轴

justify-content

常用后四个

flex-end

center

space-between

空白间距均匀分配在弹性盒子之间

space-around

空白间距均匀分布在弹性盒子两侧,两个弹性盒子之间的距离是两侧的2倍

space-evenly

各个间距都相等


3.2.2 侧轴

align-items  当前弹性容器内所有弹性盒子的侧轴对齐方式

align-self  单独控制某个弹性盒子的侧轴对齐方式

前两个常用

align-items:

stretch

弹性盒子没有侧轴尺寸时才有效

center

flex-start

flex-end

align-self:

只举例一个,剩下都可以尝试

center


3.3 修改主轴方向

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

flex-direction

主轴方向变了,侧轴自动也会变化

只测试column


3.4 弹性伸缩比

控制弹性盒子的主轴方向的尺寸

属性名:flex

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

如果修改了主轴方向呢?

控制盒子的高


3.5 弹性换行与行对齐

3.5.1 弹性盒子换行

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

flex-wrap

属性值:

wrap   换行

nowrap   不换行(默认)


3.5.2 行对齐方式

行与行之间的对齐方式(默认垂直方向)

align-content

属性值:(和主轴对齐方式一样)

演示效果:

flex-start

flex-end

center

space-between

space-around

space-evenly

注意:

align-content对单行的没有效果

也就是如果不换行(没有wrap)就没有效果,都在一行


本文介绍浮动与flex布局,重点掌握flex布局。

相关文章:

【CSS3】04-标准流 + 浮动 + flex布局

本文介绍浮动与flex布局。 目录 1. 标准流 2. 浮动 2.1 基本使用 特点 脱标 2.2 清除浮动 2.2.1 额外标签法 2.2.2 单伪元素法 2.2.3 双伪元素法(推荐) 2.2.4 overflow(最简单) 3. flex布局 3.1 组成 3.2 主轴与侧轴对齐方式 3.2.1 主轴 3.2.2 侧轴 3.3 修改主…...

内网环境将nginx的http改完https访问

原文参考链接&#xff1a;https://www.cnblogs.com/leilcoding/p/16138778.html 编写生成证书的脚本 vim gen-ssl.sh #!/bin/sh # create self-signed server certificate: read -p "Enter your domain [www.example.com]: " DOMAIN echo "Create server key…...

使用 libevent 处理 TCP 粘包问题(基于 Content-Length 或双 \r\n)

在基于 libevent 的 TCP 服务器开发中,处理消息边界是常见需求。以下是两种主流分包方案的完整实现: 一、基于 Content-Length 的分包方案 1.1 数据结构设计 typedef struct {struct bufferevent *bev;int content_length; // 当前消息的预期长度int received_bytes; //…...

论坛系统的测试

项目背景 论坛系统采用前后端分离的方式来实现&#xff0c;同时使用数据库 来处理相关的数据&#xff0c;同时将其部署到服务器上。前端主要有7个页面组成&#xff1a;登录页&#xff0c;列表页&#xff0c;论坛详情页&#xff0c;编辑页&#xff0c;个人信息页&#xff0c;我…...

宠物店小程序怎么做?助力实体店实现营销突破

宠物店小程序怎么做&#xff1f;助力实体店实现营销突破 ——一个宠物店老板的“真香”实战分享 ​一、行业现状&#xff1a;线下宠物店的“流量焦虑”​ 作为开了3年宠物店的“铲屎官供应商”&#xff0c;这两年明显感觉生意难做了&#xff1a;某宝9.9包邮的狗粮、某团“满…...

《Mycat核心技术》第21章:高可用负载均衡集群的实现(HAProxy + Keepalived + Mycat)

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 星球项目地址&#xff1a;https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…...

obsidian ios git同步

首先感谢几位博主的文章&#xff0c;我现在时间久了&#xff0c;未保存原文地址。以下是我自己的执行步骤总结。 应用商店安装 iSH 打开iSH&#xff0c;执行 apk update 安装下面软件&#xff0c;&#xff08;我觉得只安装第一个应该就行&#xff0c;下次测试&#xff09;。 …...

当 “原子” 遇上 “光腔”:量子计算的新舞台

在微观世界里&#xff0c;原子就像一个个会 “跳舞” 的小精灵&#xff0c;而科学家正试图用 “光的牢笼” 困住它们&#xff0c;让这些小精灵为量子计算 “打工”。最近&#xff0c;哈佛大学和 MIT 的研究团队在《科学》杂志上发表了一项突破性研究&#xff0c;他们让单个原子…...

移动端六大语言速记:第1部分 - 基础语法与控制结构

移动端六大语言速记&#xff1a;第1部分 - 基础语法与控制结构 本文将对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言的基础语法与控制结构&#xff0c;帮助开发者快速理解各语言间的差异与共性。 1. 基础语法 1.1 数据类型 各语言的基本数据…...

针对 SQL 查询中 IN 子句性能优化 以及 等值 JOIN 和不等值 JOIN 对比 的详细解决方案、代码示例及表格总结

以下是针对 SQL 查询中 IN 子句性能优化 以及 等值 JOIN 和不等值 JOIN 对比 的详细解决方案、代码示例及表格总结&#xff1a; 问题 1&#xff1a;IN 的候选值过多&#xff08;如超过 1000 个&#xff09; 问题描述 当 IN 列表中的值过多时&#xff0c;SQL 会逐个比较每个值…...

微信小程序唤起app

1、前提 1、app与小程序主体需一致&#xff0c;可以前往微信公众平台关联。 2、小程序的场景值为1069&#xff0c;也就是得从app打开小程序&#xff0c;小程序才能唤起app。 2、vue3代码示例 <template><view class"maxBox bgc"><button open-typ…...

深度学习Note.5(机器学习.6)

1.Runner类 一个任务应用机器学习方法流程&#xff1a; 数据集构建 模型构建 损失函数定义 优化器 模型训练 模型评价 模型预测 所以根据以上&#xff0c;我们把机器学习模型基本要素封装成一个Runner类&#xff08;加上模型保存、模型加载等功能。&#xff09; Runne…...

从零开始设计Transformer模型(1/2)——剥离RNN,保留Attention

声明&#xff1a; 本文基于哔站博主【Shusenwang】的视频课程【RNN模型及NLP应用】&#xff0c;结合自身的理解所作&#xff0c;旨在帮助大家了解学习NLP自然语言处理基础知识。配合着视频课程学习效果更佳。 材料来源&#xff1a;【Shusenwang】的视频课程【RNN模型及NLP应用…...

Uniapp 持续出现 Invalid Host/Origin header 解决方法

目录 前言1. 问题所示2. 原理分析前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 爬虫神器,无代码爬取,就来:bright.cn 1. 问题所示 执行代码的时候,源源不断,一直持续出现这个 Invalid Host/Origin header [WDS]...

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的缓存技术:使用 Redis 提升性能

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、开篇整…...

音视频 YUV格式详解

前言 本文介绍YUV色彩模型,YUV的分类和常见格式。 RGB色彩模型 在RGB颜色空间中,任意色光F都可以使用R、G、B三色不同的分量混合相加而成即: F = R + G + B.。即我们熟悉的三原色模型。 RGB色彩空间根据每个分量在计算机中占用的存储字节数可以分为以下几种类型,字节数…...

华为配置篇-BGP实验

BGP 一、简述二、常用命令总结三、实验 一、简述 IBGP 水平分割&#xff1a;从一个 IBGP 对等体学到的路由&#xff0c;不会再通告给其他的 IBGP 对等体。在一个 AS 内部&#xff0c;路由器之间通过 IBGP 交换路由信息。如果没有水平分割机制&#xff0c;当多个路由器之间形成…...

一个服务器算分布式吗,分布式需要几个服务器

一个服务器不构成分布式系统。分布式系统的核心在于多台独立的计算机&#xff08;服务器&#xff09;协同工作&#xff0c;通过通信网络共享资源、共同完成任务。以下是对问题的详细分析&#xff1a; 1. 单台服务器 ≠ 分布式 单台服务器的架构是集中式的&#xff0c;所有功能…...

vue element-ui 工程创建

vue element-ui 工程创建 按照步骤 &#xff1a; https://blog.csdn.net/wowocpp/article/details/146590400 创建工程 vue create demo3 cd demo3 npm run serve 在demo3 目录里面 执行如下命令 npm install element-ui -S 然后查看 package.json main.js 添加代码&…...

unity点击button后不松开通过拖拽显示模型松开后模型实例化

using System.Collections; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;[RequireComponent(typeof(Button))] // 确保脚本挂在Button上 public class DragButtonSpawner : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandle…...

arco design框架中的树形表格使用中的缓存问题

目录 1.问题 2.解决方案 1.问题 arco design框架中的树形表格使用中的缓存问题&#xff0c;使用了树形表格的load-more懒加载 点击展开按钮后&#xff0c;点击关闭&#xff0c;再次点击展开按钮时&#xff0c;没有调用查询接口&#xff0c;而是使用了缓存的数据。 2.解决方…...

《AI大模型应知应会100篇》第2篇:大模型核心术语解析:参数、Token、推理与训练

第2篇&#xff1a;大模型核心术语解析&#xff1a;参数、Token、推理与训练 摘要 本文将用通俗易懂的语言拆解大模型领域的四大核心概念&#xff1a;参数、Token、训练与推理。通过案例对比、代码实战和成本计算&#xff0c;帮助读者快速掌握这些术语的底层逻辑与实际应用价值…...

【28BYJ-48】STM32同时驱动4个步进电机,支持调速与正反转

资料下载&#xff1a;待更新。。。。 先驱动起来再说&#xff0c;干中学&#xff01;&#xff01;&#xff01; 1、实现功能 STM32同时驱动4个步进电机&#xff0c;支持单独调速与正反转控制 需要资源&#xff1a;16个任意IO口1ms定时器中断 目录 资料下载&#xff1a;待更…...

手动实现一个迷你Llama:使用SentencePiece实现自己的tokenizer

自己训练一个tokenizertokenizer需要的模块SentencePiece 库tokenizer类中的初始化函数tokenizer类中的encode函数tokenizer类中的decode函数完整代码训练函数数据分片临时文件SentencePiece 训练参数 自己训练一个tokenizer tokenizer需要的模块 encode: 将句子转换为tokend…...

【超详细】讲解Ubuntu上如何配置分区方案

Ubuntu 的分区方案 一、通用分区方案&#xff08;200G为例&#xff09; EFI系统分区&#xff08;仅UEFI启动模式需要&#xff0c;&#xff09; 大小&#xff1a;512MB–1GB类型&#xff1a;主分区&#xff08;FAT32格式&#xff09;挂载点&#xff1a;/boot/efi说明&#xff1…...

Gradle-基础

一.安装 1. 2.配置环境变量 GRADLE_HOME D:\gradle\gradle-5.6.4 GRADLE_USER_HOME D:\gradle\localRepository 3.下载源配置 安装目录下的init.d文件夹里创建一个init.gradle文件&#xff0c;下载顺序从上到下&#xff0c;内容&#xff1…...

Anolis系统下安装Jenkins

1.安装java、maven yum install -y java-17-openjdk-devel maven git wget 2.配置环境变量 1.查看java和maven所在目录 [rootlocalhost ~]# which java /usr/bin/java [rootlocalhost bin]# ll /usr/bin/java lrwxrwxrwx 1 root root 22 4月 1 17:20 /usr/bin/java ->…...

Python网络爬虫:从入门到实践

目录 什么是网络爬虫&#xff1f; 网络爬虫的工作原理 常用Python爬虫库 编写爬虫的步骤 实战示例 注意事项与道德规范 未来趋势 1. 什么是网络爬虫&#xff1f; 网络爬虫&#xff08;Web Crawler&#xff09;是一种自动化程序&#xff0c;通过模拟人类浏览行为&#x…...

LabVIEW 调用 Python 函数

此程序是 LabVIEW 调用 Python 函数实现双精度数相加的典型示例。通过 LabVIEW 搭建交互框架&#xff0c;借助 “Open Python Session” 创建 Python 代码运行环境&#xff0c;定位 Python 模块路径后调用 “Add” 函数&#xff0c;最终实现数据处理并关闭会话。整个流程展现了…...

视频分析设备平台EasyCVR视频结构化AI智能分析:筑牢校园阳光考场远程监控网

一、背景分析​ 近年来&#xff0c;学校考试的舞弊现象屡禁不止&#xff0c;严重破坏考试的公平性&#xff0c;不仅损害广大考生的切身利益&#xff0c;也在社会上造成恶劣的影响。为有效制止舞弊行为&#xff0c;收集确凿的舞弊证据&#xff0c;在考场部署一套可靠的视频监控…...