从 HTML 到 CSS:开启网页样式之旅(七)—— CSS浮动

从 HTML 到 CSS:开启网页样式之旅(七)—— CSS浮动

  • 前言
  • 一、浮动的简介
    • 1.没有浮动的代码和效果
    • 2.加入浮动的代码和效果
  • 二、元素浮动后的特点
    • 1. 脱离文档流
    • 2.宽高特性:
    • 3.共用一行:
    • 4.margin 特性:
    • 5.区别于行内块元素:
  • 三、浮动小练习
    • 练习 1:盒子 1 右浮动
      • 移动后代码
    • 练习 2:盒子 1 左浮动
      • 移动后代码
    • 练习 3:所有盒子都浮动
      • 移动后代码
    • 练习 4:所有盒子浮动后,盒子 3 落下来
      • 问题代码
    • 练习 5:所有盒子浮动后,盒子 3 卡住了


前言

  • 之前的博客中,我们已经详细探讨了 CSS 样式的继承、元素的默认样式、元素间空白问题以及行内块的幽灵空白问题等诸多内容,这些知识为我们构建网页样式打下了坚实的基础。
  • 而今天,我们将聚焦于 CSS 中一个极为重要的布局方式 —— 浮动,深入了解它的相关概念、特点以及在实际布局中如何运用并处理其产生的影响

一、浮动的简介

  • 最初,浮动是为了实现文字环绕图片的效果而诞生的
  • 比如在网页中我们想要文字围绕着一张图片进行展示,就可以利用浮动来达成这样的效果。
  • 发展到现在浮动已然成为主流的页面布局方式之一,它能够帮助我们灵活地对网页中的各种元素进行排版布局,创造出丰富多样的页面结构。
    在这里插入图片描述

1.没有浮动的代码和效果

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Float Example</title><link rel="stylesheet" href="styles.css"><style>.container {width: 800px;margin: 0 auto;}</style>
</head><body><div class="container"><img src="../HTMLpart2Bootstrap/bootstrap-5.1.3-dist/图片/HTML5.jpg" width="200" height="200"><p class="text">Lorem ipsum dolor sit amet consectetur adipiscing elit. Fuga, esse eveniet. Soluta quas beataeaperiam velit voluptatibus at veniam minima mollitia nostrum maxime eveniet eos, totam facilis animilaudantium eius placeat earum aspernatur rerum voluptatum, sunt repellat? Quidem recusandae iusto velitincidunt veritatis quasi, labore voluptatem odit debitis eum ullam vero illum tempora dignissimosvoluptatibus eius cumque, optio nulla assumenda! Magnam quisquam laborum doloribus eveniet minima eum!Repellat, quibusdam. Illum, consectetur blanditiis fugiat quasi reiciendis inde voluptate rem sequiexplicabo, temporibus facilis quod tenetur voluptates aliquam aperiam, ducimus sint. Similique mollitiaillum liquid eos ero suscipit necessitatibus dolore maxime?</p></div>
</body></html>

在这里插入图片描述

2.加入浮动的代码和效果

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Float Example</title><link rel="stylesheet" href="styles.css"><style>/* 给图片添加左浮动,使其可以让文字环绕在右侧 */img {float: left;margin-right: 10px; /* 可以设置图片和文字之间的间隔 */}</style></head><body><div class="container"><img src="../HTMLpart2Bootstrap/bootstrap-5.1.3-dist/图片/HTML5.jpg" width="200" height="200"><p class="text">Lorem ipsum dolor sit amet consectetur adipiscing elit. Fuga, esse eveniet. Soluta quas beataeaperiam velit voluptatibus at veniam minima mollitia nostrum maxime eveniet eos, totam facilis animilaudantium eius placeat earum aspernatur rerum voluptatum, sunt repellat? Quidem recusandae iusto velitincidunt veritatis quasi, labore voluptatem odit debitis eum ullam vero illum tempora dignissimosvoluptatibus eius cumque, optio nulla assumenda! Magnam quisquam laborum doloribus eveniet minima eum!Repellat, quibusdam. Illum, consectetur blanditiis fugiat quasi reiciendis inde voluptate rem sequiexplicabo, temporibus facilis quod tenetur voluptates aliquam aperiam, ducimus sint. Similique mollitiaillum liquid eos ero suscipit necessitatibus dolore maxime?</p></div>
</body></html>

在这里插入图片描述

二、元素浮动后的特点

1. 脱离文档流

元素设浮动后脱离正常文档流,按浮动方向调整位置,不再按原有顺序排列,原位置也不再占据。

2.宽高特性:

浮动前不论何种元素,浮动后默认宽高由内容撑开,也能手动设置宽高,以满足布局要求

3.共用一行:

浮动元素可与其他元素共用一行,多个浮动盒子能依宽度和浮动方向紧凑排列,空间够就不换行,让布局更灵活紧凑

在这里插入图片描述

4.margin 特性:

浮动元素不会出现 margin 合并及塌陷问题,能精准设置四个方向的 margin 和 padding 来控制间距与内边距。

5.区别于行内块元素:

浮动元素不像行内块会被当文本处理,不存在空白问题,基于浮动规则排版更精细。

三、浮动小练习

练习 1:盒子 1 右浮动

在这里插入图片描述

<head><meta charset="UTF-8"><title>03_浮动的小练习</title><style>.outer {width: 500px;background-color: gray;border: 1px solid black;}.box {width: 100px;height: 100px;background-color: skyblue;border: 1px solid black;margin: 10px;}</style>
</head>
<body><div class="outer"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div></div>
</body>

效果图
在这里插入图片描述

移动后代码

<head><meta charset="UTF-8"><title>03_浮动的小练习</title><style>.outer {width: 500px;background-color: gray;border: 1px solid black;}.box {width: 100px;height: 100px;background-color: skyblue;border: 1px solid black;margin: 10px;}.box1 {float: right;}</style>
</head>
<body><div class="outer"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div></div>
</body>

在这里插入图片描述

在上述代码中,通过给类名为 box1 的 div 元素设置 float: right,使其向右浮动

练习 2:盒子 1 左浮动

在这里插入图片描述
移动后图片
在这里插入图片描述

移动后代码

<head><meta charset="UTF-8"><title>03_浮动的小练习</title><style>.outer {width: 500px;background-color: gray;border: 1px solid black;}.box {width: 100px;height: 100px;background-color: skyblue;border: 1px solid black;margin: 10px;}.box1 {float: left;}</style>
</head>
<body><div class="outer"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div></div>
</body>

在这里插入图片描述

这里将 box1 的浮动属性设置为 float: left,它就会向左浮动,靠页面左侧显示,后面的文本内容会环绕在它的右侧,实现了左浮动的布局效果。

练习 3:所有盒子都浮动

在这里插入图片描述

移动后代码

<head><meta charset="UTF-8"><title>03_浮动的小练习</title><style>.outer {width: 500px;background-color: gray;border: 1px solid black;}.box {width: 100px;height: 100px;background-color: skyblue;border: 1px solid black;margin: 10px;float: left;}</style>
</head>
<body><div class="outer"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div></div>
</body>

在这里插入图片描述

给所有类名为 box 的 div 元素都设置 float: left,它们就都会向左浮动,在同一行依次排列(只要一行空间足够),通过设置 margin-right 来控制盒子之间的间距,展现出所有盒子浮动后的布局效果。

练习 4:所有盒子浮动后,盒子 3 落下来

在这里插入图片描述

问题代码

<head><meta charset="UTF-8"><title>03_浮动的小练习</title><style>.outer {width: 500px;background-color: gray;border: 1px solid black;}.box {width: 200px;height: 200px;background-color: skyblue;border: 1px solid black;margin: 10px;float: left;}</style>
</head>
<body><div class="outer"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div></div>
</body>

练习 5:所有盒子浮动后,盒子 3 卡住了

<head><meta charset="UTF-8"><title>03_浮动的小练习</title><style>.outer {width: 500px;background-color: gray;border: 1px solid black;}.box {width: 200px;height: 200px;background-color: skyblue;border: 1px solid black;margin: 10px;float: left;}.box1 {height: 230;}</style>
</head>
<body><div class="outer"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div></div>
</body>

在这里插入图片描述

只增加盒子1的长度,将三挤下去

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

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

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

相关文章

微信小程序实现图片拖拽调换位置效果 -- 开箱即用

在编写类似发布朋友圈功能的功能时&#xff0c;需要实现图片的拖拽排序&#xff0c;删除图片等功能。 一、效果展示 **博主的小程序首页也采用了该示例代码&#xff0c;可以在威信中搜索&#xff1a;我的百宝工具箱 二、示例代码 1.1、在自己的小程序中创建组件 1.2、组件…

通过 FRP 实现 P2P 通信:控制端与被控制端配置指南

本文介绍了如何通过 FRP 实现 P2P 通信。FRP&#xff08;Fast Reverse Proxy&#xff09;是一款高效的内网穿透工具&#xff0c;能够帮助用户突破 NAT 和防火墙的限制&#xff0c;将内网服务暴露到公网。通过 P2P 通信方式&#xff0c;FRP 提供了更加高效、低延迟的网络传输方式…

MySQL Explain 指南

MySQL Explain 指南 idselect_typetablepartitionstypepossible_keyskeykeylenrefrowsfilteredExtra 使用 explain 执行 DML 语句时&#xff0c;数据不会发生变化。explain 的结果可能包含多行数据&#xff0c;每行对应一个表。若涉及 union 操作&#xff0c;MySQL 会创建临时表…

如何给 JavaScript 函数添加参数校验?

在 JavaScript 中&#xff0c;对函数参数进行校验是确保代码健壮性和防止错误的重要手段。参数校验不仅能提高代码的可读性&#xff0c;还能帮助捕获潜在的错误。下面&#xff0c;我们将结合实际项目代码示例&#xff0c;讲解如何给 JavaScript 函数添加参数校验。 常见的参数…

php7.4安装pg扩展-contos7

今天接到一个需求&#xff0c;就是需要用thinkphp6链接pg(postgresql)数据库。废话不多说&#xff0c;直接上操作步骤 一、安装依赖 yum install -y sqlite-devel libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-dev…

CentOS7.X 安装RustDesk自建服务器实现远程桌面控制

参照文章CentOS安装RustDesk自建服务器中间总有几个位置出错&#xff0c;经实践做个记录防止遗忘 一 环境&工具准备 1.1 阿里云轻量服务器、Centos7系统、目前最高1.1.11版本rustdesk-server-linux-amd64.zip 1.2 阿里云轻量服务器–安全组–开放端口&#xff1a;TCP(21…

TCP Analysis Flags 之 TCP Spurious Retransmission

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…

c# 设计模式--抽象工厂模式 (Abstract Factory)

定义 抽象工厂模式是一种创建型设计模式&#xff0c;它提供了一种创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。抽象工厂模式强调的是对象族的创建&#xff0c;而不是单一对象的创建。 用例写法 假设我们有一个场景&#xff0c;需要根据不同的平…

MySQL 8.0 的主主复制(双向复制)

在 Windows Server 2022 Datacenter 上配置 MySQL 8.0 的主主复制&#xff08;双向复制&#xff09;&#xff0c;步骤与 Linux 类似&#xff0c;但有一些特定的配置和路径需要注意。以下是详细的简化步骤&#xff1a; 1. 使用 root 用户登录 确保你以 root 用户登录到 MySQL …

1. 设计模式的由来

设计模式的灵感来自建筑师亚历山大的“设计套路”&#xff0c;后来被程序员借用&#xff0c;总结出一套“编程武功秘籍”。 20世纪90年代&#xff0c;四位软件工程师&#xff08;被称为“四人帮”&#xff09;——Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides&…

【笔记】Linux中使用到的一些操作

1、查找指定文件并执行删除 find . -name "checkpoint_*_*.pth" -type f -exec rm -f {} \; 2、查看每个文件夹占用空间 du -h --max-depth1 3、移动文件 mv valid.zip ./xg mv 文件 目标位置 4、删除文件夹 rmdir folder rm -r folder # 递归删除文件夹下所有内容…

java如何判断object是基本数据类型还是引用数据类型

如何判断object是基本数据类型还是引用数据类型 ‍ 直接用apache commons下的工具类isPrimitiveOrWrapper即可,没必要造轮子 /*** Returns whether the given {code type} is a primitive or primitive wrapper ({link Boolean}, {link Byte}, {link Character},* {link Shor…

Java线程的interrupt中断、wait-notify/all(源码级分析)

实例方法&#xff1a; interrupt()方法是设置结束阻塞(sleep、wait等)&#xff0c;并且设置中断标记true isInterrupted()判断当前是否中断 静态方法&#xff1a; Thread.interrupted():调用这个方法的线程中断标记位还原为false 那么好&#xff0c;既然上面的方法作用是清…

Burp Suite 实战指南:Proxy 捕获与修改流量、HTTP History 筛选与分析

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

12月第1周AI资讯

阅读时间:3-4min 更新时间:2024.12.2-2024.12.6 目录 OpenAI CEO Sam Altman 预告“12天OpenAI”系列活动 腾讯HunyuanVideo:130亿参数的开源视频生成模型 李飞飞的World Labs发布空间智能技术预览版 中科院联手腾讯打造“AI带货王”AnchorCrafter OpenAI CEO Sam Alt…

服务器带宽与数据安全的重要性与作用

服务器带宽指的是服务器与外部网络通信的能力&#xff0c;即服务器发送和接收数据的速率。带宽越大&#xff0c;服务器在同一时间内能够处理的数据量就越多&#xff0c;数据传输的速度和稳定性也就越高。在数字化时代&#xff0c;企业对于数据的依赖程度日益加深&#xff0c;无…

YoloV8实战:使用Yolo训练Objects365数据集

摘要 预训练模型在提高训练成绩上是非常有效,大家通常使用COCO数据集训练的模型做为预训练模型,在小型数据集做实验发现,使用COCO数据集训练的预训练模型比没有使用预训练模型的得分能高出2%mAP,同时,如果使用Objects365做预训练,能比没有使用预训练的模型高出4%的mAP,…

从零开始学TiDB(1) 核心组件架构概述

首先TiDB深度兼容MySQL 5.7 1. TiDB Server SQL语句的解析与编译&#xff1a;首先一条SQL语句最先到达的地方是TiDB Server集群&#xff0c;TiDB Server是无状态的&#xff0c;不存储数据&#xff0c;SQL 发过来之后TiDB Server 负责 解析&#xff0c;优化&#xff0c;编译 这…

记录一次使用git无权限的问题排查

正常的配置了公私钥之后&#xff0c;在gitlab中也存储了配对的公钥&#xff0c;但当使用git clone 时&#xff0c;总是报无权限 由于在这台机器中添加了多个公私钥&#xff0c;有点复杂&#xff0c;我们可以使用命令 ssh -vvvT 调试一下 ssh -vvvT yourGitlabAddr

VsCode运行Ts文件

1. 生成package.json文件 npm init 2. 生成tsconfig.json文件 tsc --init 3. Vscode运行ts文件 在ts文件点击右键执行Run Code,执行ts文件