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

HTML — 浮动

浮动

     HTML浮动(Float)是一种CSS布局技术,通过float: left或float: right使元素脱离常规文档流并向左/右对齐,常用于图文混排或横向排列内容。浮动元素会紧贴父容器或相邻浮动元素的边缘,但脱离文档流后可能导致父容器高度塌陷,需通过伪元素添加clear: both来修复。传统布局中,浮动被用于多栏设计或导航菜单,但因需手动计算宽度且适配性差,逐渐被Flexbox和Grid布局替代。使用浮动时需注意元素间的间距控制,避免内容重叠;现代开发中建议优先选择更直观的弹性或网格布局,仅保留浮动用于简单的文本环绕场景,如图片与文字的自然排版。


浮动的核心特性

     通过元素脱离文档流,实现水平对齐,常见于图文混排或多元素横向排列。浮动元素紧贴父容器或相邻元素边缘,但会导致父容器高度塌陷,需用clear: both清除浮动。

离文档流

HTML脱离文档流指元素(如float、fixed定位)不再占据常规布局空间,父容器可能高度塌陷,后续元素会填补其位置,需手动调整布局或清除浮动避免错位,常见于悬浮层、弹窗等场景。

<div class="float-box"></div>
<p>文字内容将围绕浮动元素排列...</p><style>
.float-box {float: left;width: 150px;height: 150px;background: skyblue;margin-right: 20px;
}
</style>

此代码效果:蓝色方块浮动后,段落文字自动环绕

元素自动转为块级元素

HTML元素通过设置display:block或特定属性(如float、position:absolute/fixed)转为块级,独占一行且可设置宽高,如默认块级元素<div>或行内元素<span>被强制转换后的表现。

span {float: left;  /* 行内元素变为块级 */width: 200px; /* 原本无效的属性生效 */
}

经典布局

HTML经典布局依赖表格、浮动或定位实现,但代码响应式适配差,需手动计算尺寸,现逐渐被Flex/Grid布局取代,适用于传统网页适配场景。

两栏布局

两栏布局是页面被分成左右两个主要区域。一个常见的例子是左侧为导航栏,右侧为主要内容区。

 如图所示,这就是一个经典的两栏布局

<div class="box"><div class="left">左栏</div><div class="right">右栏</div>
</div><style>
.left {float: left;width: 200px;background: #ffe4b5;
}
.right {float: right;width: 150px;background: #98fb98;
}
</style>

此代码就是一个正常的两栏布局框架

三栏布局

三栏布局增加了中间的内容区,两边可以作为侧边栏使用。这种布局适合内容较多且需要分类展示的网页。

  如图所示,这就是一个经典的三栏布局,HTML元素按照它们在HTML文档中的顺序从上到下、从左到右依次排列的方式。每个块级元素默认占据一整行,而内联元素则在同一行内连续排列直到没有足够的空间为止。通过改变元素的display、position等属性,我们可以调整元素的位置和排列方式,但这些操作都是基于标准文档流进行的。

<div class="box"><div class="left">左栏</div><div class="right">右栏</div><div class="main">主内容区</div>
</div><style>
.left {float: left;width: 200px;background: #ffe4b5;
}
.right {float: right;width: 150px;background: #98fb98;
}
.main {margin: 0 160px 0 210px; /* 间距设置 */
}
</style>

此代码就是一个正常的三栏布局框架


display 属性

display属性定义元素的显示模式,控制元素排列方式及子元素布局规则,例如display: none可隐藏元素。

display属性用于定义元素生成的框的类型:

block元素前后换行显示,宽度默认占满父容器。

inline元素不换行显示,只占用其内容所需的空间。

inline-block元素不会独占一行,但是它可以设置高度和宽度。

none元素不生成任何框,即该元素不会显示。


float 属性

float属性它主要用于图像环绕文本效果或创建多列布局如:使元素向左/右浮动,脱离文档流,实现图文混排或横向布局;需用clear清除浮动避免父容器高度塌陷。

left元素向左浮动。

right元素向右浮动。

none默认值,元素不会浮动

.image-left {float: left;
}
.image-right {float: right;
}

clear 属性

HTML的clear属性用于清除元素两侧的浮动影响,防止被浮动元素环绕,通常加在需恢复文档流的元素上,如clear: both解决父容器高度塌陷,适配传统浮动布局场景。

clear属性用于阻止父元素内的子元素环绕浮动元素。

left不允许元素左边有浮动元素。

right不允许元素右边有浮动元素。

both不允许元素左右两边都有浮动元素。

none默认值,允许元素四周有浮动元素。


清除浮动

HTML清除浮动解决父容器高度塌陷,常用方法:添加空元素clear:both,父级overflow:hidden现代布局推荐Flex/Grid替代浮动。

清除

在浮动元素后面添加一个空的<div>标签,并设置clear:both 。

<div style="clear: both"></div>

 BFC触发

为父容器设置overflow: hidden

.box {border: 3px solid #48dbfb;margin-bottom: 30px;padding: 10px;overflow: hidden; /* 关键代码:触发BFC */
}

浮动与现代布局对比

特性FloatFlexboxGrid
布局维度一维一维二维
响应式支持需要媒体查询内置弹性内置响应
内容流控制破坏文档流保持文档流保持文档流
浏览器兼容性全支持IE10+IE11+

总结 

     HTML浮动(Float)是CSS早期核心布局技术,通过float: left/right使元素脱离文档流并向指定方向对齐,常用于实现图文混排(如图片文字环绕)或多栏布局。浮动元素会紧贴父容器或相邻浮动元素边缘,但脱离文档流的特性会导致父容器高度塌陷(不包含浮动元素高度),需通过以下方式解决:  

  1. 清除浮动:在父容器末尾添加clear: both的空元素;  
  2. BFC触发:为父容器设置overflow: hidden;  

浮动布局需手动计算宽度且响应式适配困难,现代开发中更推荐FlexboxGrid布局替代,仅保留简单场景(如文本环绕图片)使用。

相关文章:

HTML — 浮动

浮动 HTML浮动&#xff08;Float&#xff09;是一种CSS布局技术&#xff0c;通过float: left或float: right使元素脱离常规文档流并向左/右对齐&#xff0c;常用于图文混排或横向排列内容。浮动元素会紧贴父容器或相邻浮动元素的边缘&#xff0c;但脱离文档流后可能导致父容器高…...

IP节点详解及国内IP节点获取指南

获取国内IP节点通常涉及网络技术或数据资源的使用&#xff0c;IP地址作为网络设备的唯一标识&#xff0c;对于网络连接和通信至关重要。详细介绍几种修改网络IP地址的常用方法&#xff0c;无论是对于家庭用户还是企业用户&#xff0c;希望能找到适合自己的解决方案。以下是方法…...

AD9253 LVDS 高速ADC驱动开发

1、查阅AD9253器件手册 2、查阅Xilinx xapp524手册 3、该款ADC工作在125Msps下&#xff0c;14bit - 2Lane - 1frame 模式。 对应&#xff1a;data clock时钟为500M DDR mode。data line rate&#xff1a;1Gbps。frame clock&#xff1a;1/4 data clock 具体内容&#xff1a;…...

pycharm2024.3.5版本配置conda踩坑

配置解释器是conda时&#xff0c;死活选不到自己的环境 看了很多&#xff0c;都是说要选scripts下的conda.exe 都没用 主要坑在于这是新版的pycharm 是配置condabin 下的 conda.bat 参考&#xff1a;PyCharm配置PyTorch环境(完美解决找不到Conda可执行文件python.exe问题) …...

【异常处理】Clion IDE中cmake时头文件找不到 头文件飘红

如图所示是我的clion项目目录 我自定义的data_structure.h和func_declaration.h在unit_test.c中无法检索到 cmakelists.txt配置文件如下所示&#xff1a; cmake_minimum_required(VERSION 3.30) project(noc C) #设置头文件的目录 include_directories(${CMAKE_SOURCE_DIR}/…...

14 - VDMA彩条显示实验

文章目录 1 实验任务2 系统框图3 硬件设计4 软件设计 1 实验任务 本实验任务是PS端写彩条数据至DDR3内存中&#xff0c;然后通过PL端的VDMA IP核将彩条数据通过HDMI接口输出显示。 2 系统框图 本实验是用HDMI接口固定输出1080P的彩条图&#xff0c;所以&#xff1a; rgb2lc…...

每天学一个 Linux 命令(13):touch

Linux 文件管理命令:touch touch 是 Linux 中一个简单但高频使用的命令,主要用于创建空文件或修改文件的时间戳(访问时间、修改时间)。它是文件管理和脚本操作的实用工具。 1. 命令作用 创建空文件:快速生成一个或多个空白文件。更新时间戳:修改文件的访问时间(Access …...

PromptUp 网站介绍:AI助力,轻松创作

1. 网站定位与核心功能 promptup.net 可能是一个面向 创作者、设计师、营销人员及艺术爱好者 的AI辅助创作平台,主打 零门槛、智能化的内容生成与优化。其核心功能可能包括: AI艺术创作:通过输入关键词、选择主题或拖放模板,快速生成风格多样的数字艺术作品(如插画、海报…...

高级java每日一道面试题-2025年3月26日-微服务篇[Nacos篇]-在Spring Cloud项目中如何集成Nacos?

如果有遗漏,评论区告诉我进行补充 面试官: 在Spring Cloud项目中如何集成Nacos&#xff1f; 我回答: 在Spring Cloud项目中集成Nacos&#xff0c;可以充分利用Nacos作为服务注册与发现中心以及配置管理中心的功能。以下是详细的步骤和说明&#xff0c;帮助你完成这一集成过程…...

AI 大语言模型 (LLM) 平台的整体概览与未来发展

&#x1f4cb; 分析报告&#xff1a;AI 大语言模型 (LLM) 平台的整体概览与未来发展 自动生成的结构化分析报告 &#x1f4bb; 整体概述&#xff1a;AI LLM 平台的市场现状与发展动力 随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;Large Language Models, L…...

Java中的Map vs Python字典:核心对比与使用指南

一、核心概念 1. 基本定义 Python字典&#xff08;dict&#xff09; &#xff1a;动态类型键值对集合&#xff0c;语法简洁&#xff0c;支持快速查找。Java Map&#xff1a;接口&#xff0c;常用实现类如 HashMap、LinkedHashMap&#xff0c;需声明键值类型&#xff08;泛型&…...

人工智能100问☞第3问:深度学习的核心原理是什么?

目录 一、通俗解释 二、专业解析 三、权威参考 深度学习的核心原理是​​通过构建多层神经网络结构,逐层自动提取并组合数据特征,利用反向传播算法优化参数,从而实现对复杂数据的高层次抽象和精准预测​​。 一、通俗解释 ​​深度学习的核心原理,就像是教计算机像婴儿…...

金能电力:配电房为什么离不开绝缘胶板

在当今电力系统日益复杂、对供电稳定性与安全性要求极高的时代&#xff0c;每一个细节都关乎着电力供应的顺畅以及工作人员的生命安全。而配电房里常常被大家忽视的绝缘垫&#xff0c;实则起着至关重要的 “守护” 作用。今天&#xff0c;金能电力就来给大家详细讲讲配电房为什…...

Python 深度学习实战 第1章 什么是深度学习代码示例

第1章&#xff1a;什么是深度学习 内容概要 第1章介绍了深度学习的背景、发展历史及其在人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;中的地位。本章探讨了深度学习的定义、其与其他机器学习方法的关系&#xff0c;以及深度学习在近年来取得的成…...

【模块化拆解与多视角信息1】基础信息:隐藏的筛选规则——那些简历上没说出口的暗号

写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...

【HD-RK3576-PI】VNC 远程桌面连接

在当今数字化时代&#xff0c;高效便捷的操作方式是技术爱好者与专业人士的共同追求。对于使用 HD-RK3576-PI微型单板计算机的用户而言&#xff0c;当面临没有显示屏的场景时&#xff0c;如何实现远程操作桌面系统呢&#xff1f;别担心&#xff0c;VNC 远程桌面连接将为你解决这…...

Vue.js 中 v-if 的使用及其原理

在 Vue.js 的开发过程中&#xff0c;条件渲染是一项极为常见的需求。v-if指令作为 Vue.js 实现条件渲染的关键手段&#xff0c;能够根据表达式的真假来决定是否渲染某一块 DOM 元素。它在优化页面展示逻辑、提升用户体验等方面发挥着重要作用。接下来&#xff0c;我们就深入探讨…...

电梯广告江湖的终局:分众 “吃掉” 新潮,是救赎还是迷途?

文 / 大力财经 作者 / 魏力 导言&#xff1a;商业世界的底层运行法则&#xff0c;从来都是能量流动的自然映射。宇宙第一性原理和运行法则是&#xff0c;能量大的吸引能量小的。电梯里的战争与和平&#xff0c;从对抗到合并&#xff0c;成为中国商业竞争史中关于博弈与进化的…...

第十六届蓝桥杯大赛软件赛省赛 C/C++ 大学B组

由于官方没有公布题目的数据, 所以代码仅供参考 1. 移动距离 题目链接&#xff1a;P12130 [蓝桥杯 2025 省 B] 移动距离 - 洛谷 【问题描述】 小明初始在二维平面的原点&#xff0c;他想前往坐标 (233, 666)。在移动过程中&#xff0c;他 只能采用以下两种移动方式&#xf…...

如何在 CentOS 7 系统上以容器方式部署 GitLab,使用 ZeroNews 通过互联网访问 GitLab 私有仓库,进行代码版本发布与更新

第 1 步&#xff1a; 部署 GitLab 容器​ 在开始部署 GitLab 容器之前&#xff0c;您需要创建本地目录来存储 GitLab 数据、配置和日志&#xff1a; #创建本地目录 mkdir -p /opt/docker/gitlab/data mkdir -p /opt/docker/gitlab/config mkdir -p /opt/docker/gitlab/log#gi…...

第1章 对大型语言模型的介绍

人类正处在一个关键转折点。自2012年起&#xff0c;基于深度神经网络的人工智能系统研发进入快速通道&#xff0c;将这一技术推向了新高度&#xff1a;至2019年底&#xff0c;首个能够撰写与人类文章真假难辨的软件系统问世&#xff0c;这个名为GPT-2&#xff08;生成型预训练变…...

Quartus II的IP核调用及仿真测试

目录 第一章 什么是IP核&#xff1f;第二章 什么是LPM&#xff1f;第一节 设置LPM_COUNTER模块参数第二节 仿真 第三章 什么是PLL&#xff1f;第一节 设置ALTPLL&#xff08;嵌入式锁相环&#xff09;模块参数第二节 仿真 第四章 什么是RAM&#xff1f;第一节 RAM_1PORT的调用第…...

JDK(Java Development Kit)从发布至今所有主要版本 的详细差异、新增特性及关键更新的总结,按时间顺序排列

以下是 JDK&#xff08;Java Development Kit&#xff09;从发布至今所有主要版本 的详细差异、新增特性及关键更新的总结&#xff0c;按时间顺序排列&#xff1a; 1. JDK 1.0 (1996) 发布年份&#xff1a;1996年1月23日关键特性&#xff1a; Java首次正式发布。核心语言特性…...

Vue 3 和 Vue 2 的区别及优点

Vue.js 是一个流行的 JavaScript 框架&#xff0c;广泛用于构建用户界面和单页应用。自 Vue 3 发布以来&#xff0c;很多开发者开始探索 Vue 3 相较于 Vue 2 的新特性和优势。Vue 3 引入了许多改进&#xff0c;优化了性能、增强了功能、提升了开发体验。本文将详细介绍 Vue 2 和…...

Linux 入门五:Makefile—— 从手动编译到工程自动化的蜕变

一、概述&#xff1a;Makefile—— 工程编译的 “智能指挥官” 1. 为什么需要 Makefile&#xff1f; 手动编译的痛点&#xff1a;当工程包含数十个源文件时&#xff0c;每次修改都需重复输入冗长的编译命令&#xff08;如gcc file1.c file2.c -o app&#xff09;&#xff0c;…...

通过websocket给服务端发送订单催单提醒消息

controller层 GetMapping("/reminder/{id}")public Result Remainder(PathVariable("id") Long id){orderService.remainder(id);return Result.success();} 实现类 Overridepublic void remainder(Long id) {Orders ordersDB orderMapper.getById(id);…...

【NumPy科学计算:高性能数组操作核心指南】

目录 前言&#xff1a;技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解关键技术模块技术选型对比 二、实战演示环境配置要求核心代码实现运行结果验证 三、性能对比测试方法论量化数据对比结果分析 四、最佳实践推荐方案 ✅常见错误 ❌调试技…...

c++ 表格控件 UltimateGrid 控件实例

控件区域&#xff1a; 使用效果&#xff1a; 代码如下&#xff1a; void MyUGCtrl::OnSetup() { m_nButtonIndex AddCellType(&m_button); SetNumberCols(6); AppendRow(); CUGCell cell; int rows, cols; int row 0; // 头部 int nHeaderRow -1; …...

从单机版到超级APP:MCP如何解锁AI的超能力

MCP&#xff1a;AI界的“万能充电宝”——让AI从此告别“语言不通”的尴尬&#xff01; 开篇&#xff1a;AI咖啡馆的尴尬日常 想象一下这样的场景&#xff1a; 一位AI助手在咖啡馆里手忙脚乱——它想帮用户点杯咖啡&#xff0c;但需要先写代码调用天气API&#xff08;“今天下…...

【算法】 欧拉函数与欧拉降幂 python

欧拉函数 欧拉函数 ϕ ( n ) \phi(n) ϕ(n) 表示小于等于 n 的正整数中与 n 互质的数的个数。即&#xff1a; ϕ ( n ) ∣ { k ∈ Z ∣ 1 ≤ k ≤ n , gcd ⁡ ( k , n ) 1 } ∣ \phi(n) \left| \{ k \in \mathbb{Z}^ \mid 1 \leq k \leq n, \gcd(k, n) 1 \} \right| ϕ(n)…...