HTML — 浮动

news2025/4/13 12:39:54

浮动

     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布局替代,仅保留简单场景(如文本环绕图片)使用。

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

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

相关文章

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…

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

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

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

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

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

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

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

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

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

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

如何在 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首次正式发布。核心语言特性…

通过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);…

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; …

使用 VcXsrv 在 Windows 10 上运行 Ubuntu 图形界面

VcXsrv 是一款用于 Windows 的开源 X 服务器&#xff0c;它允许在 Windows 系统上显示 Linux 的图形应用程序。当在 Windows 10 上安装并正确配置 VcXsrv 后&#xff0c;通过设置 WSL2 中的DISPLAY环境变量&#xff0c;使其指向运行 VcXsrv 的 Windows 主机的 IP 地址&#xff…

LSTM-SVM长短期记忆神经网络结合支持向量机组合模型多特征分类预测/故障诊断,适合新手小白研究学习(Matlab完整源码和数据)

LSTM-SVM长短期记忆神经网络结合支持向量机组合模型多特征分类预测/故障诊断&#xff0c;适合新手小白研究学习&#xff08;Matlab完整源码和数据&#xff09; 目录 LSTM-SVM长短期记忆神经网络结合支持向量机组合模型多特征分类预测/故障诊断&#xff0c;适合新手小白研究学习…

Autoware源码总结

Autoware源码网站 项目简介 教程 Autoware的整体架构如下图&#xff0c;主要包括传感器sensing、高精地图map data、车辆接口vehicle interface、感知perception&#xff08;动态障碍物检测detection、跟踪tracking、预测prediction&#xff1b;交通信号灯检测detection、分类c…

QT聊天项目DAY01

1.新建初始项目 2.修改UI格式 运行效果 3.创建登录界面 设计登录界面UI 设计布局 调整布局间距 往水平布局中拖入标签和文本输入框 更换控件名称并固定高度 添加窗口部件 往现有的资源文件中导入图片 添加水平布局 4.设置登陆界面为主窗口的核心组件 #pragma once#include &l…