CSS浮动:概念、特性与应用

CSS浮动是网页设计和开发中常见的布局技术之一,以下是CSS浮动相关的所有重要知识点:

一、浮动的定义与语法

浮动(float)属性可以指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它。浮动属性最初只用于在一段文本内浮动图像,实现文字环绕的效果。
作用

  1. 让多个盒子(div)水平排列成一行,使得浮动成为布局的重要手段。
  2. 可以实现盒子的左右对齐等等。
  3. 浮动最早是用来控制图片,实现文字环绕图片的效果。
    浮动的语法如下:
float: none | left | right;
属性值描述
none:元素不浮动,为默认值。
left:元素向左浮动。
right:元素向右浮动。
二、浮动元素的特点

1.脱离标准流:浮动元素会脱离正常的文档流,不再占据其原本在文档中的位置,而是漂浮在其他元素的上方或下方。
2.影响其他元素布局:浮动元素会影响其他元素的排列和布局。如果其他元素没有清除浮动,可能会出现重叠或错位的情况。
具有行内块元素特性:浮动元素会具有行内块元素的特性,即宽度会根据内容自动收缩,高度也会自适应内容。
3.顶端对齐:如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并且顶端对齐排列。

浮动口诀:

  1. 浮动口诀之 浮
    浮动——浮浮~~~漂浮在普通流的上面。 脱离标准流。 俗称 “脱标”
  1. 浮动口诀之 漏
    浮动 —— 浮动的盒子,把自己原来的位置漏给下面标准流的盒子,就是不占有原来位置,是脱离标准
    流的,我们俗称 “脱标”。
  2. 浮动口诀之 特
    浮动——特性 float属性会改变元素display属性。
    任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。 生成的块级框和我们前
    面的行内块极其相似。

特点

特点说明
加了浮动的盒子是浮起来的,漂浮在其他标准流盒子的上面。
加了浮动的盒子是不占位置的,它原来的位置漏给了标准流的盒子。
特别注意:浮动元素会改变display属性, 类似转换为了行内块,但是元素之间没有空白缝隙。
三、浮动规则

1.向左或向右浮动:浮动元素会向左或向右方向移动,直到自己的边界紧贴着包含块(一般是父元素)或者其他浮动元素的边界为止。
2.不能超出包含块:如果元素是向左(右)浮动,浮动元素的左(右)边界不能超出包含块的左(右)边界。
3.浮动元素不能层叠:如果一个元素浮动,另一个浮动元素已经在那个位置了,后浮动的元素将紧贴着前一个浮动元素(左浮找左浮,右浮找右浮)。如果水平方向剩余的空间不够显示浮动元素,浮动元素将向下移动,直到有充足的空间为止。
浮动元素会将行内级元素内容推出:浮动元素不能与行内级内容层叠,行内级内容将会被浮动元素推出。比如行内级元素、inline-block元素、块级元素的文字内容。
4.浮动只能左右浮动,不能超出本行的高度:行内级元素、inline-block元素浮动后,其顶部将与所在行的顶部对齐。

四、浮动的应用

1.图文环绕效果:浮动属性可以实现图像与文字的环绕效果,这是浮动属性的最初应用场景。
2.多列布局:在早期的CSS标准中,并没有提供好的左右布局方案,因此浮动属性一度成为网页多列布局的最常用工具。
3.导航栏等布局:浮动属性也可以用于实现导航栏等复杂布局。

五、浮动带来的问题及解决方法

1.父元素高度塌陷:如果父元素没有设置高度或包含的内容没有清除浮动,父元素的高度将无法正确计算,导致塌陷。解决方法包括使用清除浮动的伪类方法、clearfix类、overflow属性等。
2.元素重叠:如果多个浮动元素在同一行并且宽度超出父元素的宽度,这些元素可能会相互重叠。可以通过调整浮动元素的宽度或使用清除浮动的方法来解决。
文字环绕错乱:如果浮动元素与文本元素相邻,文本可能会受到浮动元素的影响而错位或环绕混乱。可以通过调整浮动元素的位置或使用CSS的其他属性(如margin、padding等)来解决。

六、浮动的扩展

1.浮动元素与父盒子的关系:

  • 子盒子的浮动参照父盒子对齐
  • 不会与父盒子的边框重叠,也不会超过父盒子的内边距

2.浮动元素与兄弟盒子的关系:

在一个父级盒子中,如果前一个兄弟盒子是:

  • 浮动的,那么当前盒子会与前一个盒子的顶部对齐;
  • 普通流的,那么当前盒子会显示在前一个兄弟盒子的下方。
七、清除浮动的方法

清除浮动的本质:清除浮动主要为了解决父级元素因为子级浮动引起内部高度为0 的问题。清除浮动之后, 父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了

1.使用空的〈div〉元素进行清除:在浮动元素的末尾添加一个空的〈div〉元素,并为其设置clear: both;样式属性。这将在浮动元素下方创建一个空白元素,使得父容器能够正确地包围浮动元素。但这种方法会增加额外的HTML元素,不利于代码简洁性。
使用伪元素进行清除(推荐使用):使用::after伪元素为父容器添加一个空的块级元素,并应用clear: both;样式属性。这种方法可以避免额外的HTML元素,且更符合CSS的语义化原则。
2.使用clearfix类进行清除:定义一个clearfix类,并将其应用于包含浮动元素的父容器。通过在父容器上添加clearfix类,将自动清除浮动。这种方法需要额外的CSS代码,但可以减少HTML中的类名使用。
3.使用overflow属性进行清除:将父容器的overflow属性设置为auto或hidden。这将创建一个新的BFC(块格式化上下文)来包含浮动元素。这种方法简单易用,但可能会影响父容器的滚动条显示或内容溢出处理。

综上所述,CSS浮动是一种强大的布局技术,但也需要谨慎使用并选择合适的清除浮动方法来解决其带来的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文件管理 II(文件的物理结构、存储空间管理)

一、文件的物理结构 文件实际上是一种抽象数据类型,我们要研究它的逻辑结构、物理结构,以及关于它的一系列操作。文件的物理结构就是研究文件的实现,即文件数据在物理存储设备上是如何分布和组织的。同一个问题有两个方面的回答:…

半导体、晶体管、集成电路、芯片、CPU、单片机、单片机最小系统、单片机开发板-概念串联辨析

下面概念定义从小到大串联: 半导体(semiconductor): 是一类常温下导电性能介于导体与绝缘体之间的材料,这种材料的导电性可以随着外部环境比如电压、温度、光照的变换而改变。常见的半导体材料有硅、锗、砷化镓等。 晶…

【Z240001】基于SpringBoot+Vue实现的酒店管理系统的设计与实现

基于SpringBootVue实现的酒店管理系统的设计与实现 1. 项目描述2. 运行环境3.界面展示4.源码获取 1. 项目描述 基于SpringBootVue实现的酒店管理系统设计了管理员、员工、用户三种角色。 前台界面里游客和已经登录的用户可以浏览客房信息、公告信息等,已经登录的用…

【计算机网络】解决bind error

服务器有时可以立即重启,有时候无法立即重启 — bind error 首先要知道:四次挥手动作完成之后,主动断开连接的一方要维持一段时间的TIME_WAIT bind error原因:因为是服务器主动断开的,所以服务器要去维持TIME_WAIT状…

爬虫实战:采集知乎XXX话题数据

目录 反爬虫的本意和其带来的挑战目标实战开发准备代码开发发现问题1. 发现问题[01]2. 发现问题[02] 解决问题1. 解决问题[01]2. 解决问题[02] 最终结果 结语 反爬虫的本意和其带来的挑战 在这个数字化时代社交媒体已经成为人们表达观点的重要渠道,对企业来说&…

关于相机选型的一些参数说明

上一篇:关于相机的一些参数计算(靶面、视野等) 目录 1.卷帘快门和全局快门1.1 卷帘快门1.2 全局快门PS:视觉伺服与快门选择 2.黑白和彩色3.CCD和CMOS3.1 CCD3.2 CMOSCCD VS CMOS 4.面阵和线扫4.1 面阵4.2 线扫4.3 面阵 VS 线扫 5.…

使用 helm 部署 gitlab

一、下载 Gitlab chart 进入 artifacthub 官网 选择你想要的版本(我选择的chart版本是 8.4.0 , gitlab 版本是17.4.0 ) 进入到控制台,添加helm仓库 如果你想不改任何配置,你可以执行安装命令,等待安装即可helm instal…

React (三)

文章目录 项目地址十二、性能优化12.1 使用useMemo避免不必要的计算12.2 使用memo缓存组件,防止过度渲染12.3 useCallBack缓存函数12.4 useCallBack里访问之前的状态(没懂)十三、Styled-Components13.1 安装13.2给普通html元素添加样式13.3 继承和覆盖样式13.4 给react组件添…

win10局域网加密共享设置

1、创建共享账户 我的电脑右键选择管理 选择本地用户和组 -> 用户 双击用户 在空白区域右键,新建用户 然后创建用户 点击创建后 2、设置网络 右下角网络右键

如何从 VMware 官网下载最新版本的 VMware Workstation

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 下载VMware 📒📝 操作步骤🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 你是否曾尝试从 VMware 官网下载 VMware Workstation,但总是被繁杂的选择和复杂的操作困扰?VMware 提供的产品种类繁多,而且官网页面设计复…

服务器数据恢复—raid5阵列热备盘上线失败导致EXT3文件系统不可用的数据恢复案例

服务器数据恢复环境: 两组分别由4块SAS硬盘组建的raid5阵列,两组阵列划分的LUN组成LVM架构,格式化为EXT3文件系统。 服务器故障: 一组raid5阵列中的一块硬盘离线。热备盘自动上线替换离线硬盘,但在热备盘上线同步数据…

机械设计学习资料

免费送大家学习资源,已整理好,仅供学习 下载网址: https://www.zzhlszk.com/?qZ02-%E6%9C%BA%E6%A2%B0%E8%AE%BE%E8%AE%A1%E8%A7%84%E8%8C%83SOP.zip

Proteus 8.17的详细安装教程

通过百度网盘分享的文件:Proteus8.17(64bit).zip 链接:https://pan.baidu.com/s/1zu8ts1Idhgg9DGUHpAve7Q 提取码:8q8v 1.右击【Proteus8.17(64bit).zip】,选择【全部解压缩......】。 , 2.…

qt添加模块

以QtNetwork模块为例 方式一 扩展-qt vs tools-qt project settings 方式二 右键选中项目-属性-qt project settings 方法三 在此界面选择select modules,即可进行相应模块添加

Win11 22H2/23H2系统11月可选更新KB5046732发布!

系统之家11月22日报道,微软针对Win11 22H2/23H2版本推送了2024年11月最新可选更新补丁KB5046732,更新后,系统版本号升至22621.4541和22631.4541。本次更新后系统托盘能够显示缩短的日期和时间,文件资源管理器窗口很小时搜索框被切…

【解决】Unity TMPro字体中文显示错误/不全问题

问题描述:字体变成方块 原因:字体资源所承载的长度有限 1.找一个中文字体放入Assets中 2.选中字体创建为TMPro 字体资源 3.选中创建好的字体资源(蓝色的大F) 在右边的属性中找到Atlas Width h和 Atlas Heigth,修改的大一点&…

Python中“暂停”(time.sleep?input?)

input函数最是经典,在多种实现中简单粗暴单纯而经济。 (笔记模板由python脚本于2024年11月22日 10:58:38创建,本篇笔记适合比较熟悉python的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大…

SpringMVC 执行流程详解

目录 前言1. SpringMVC 的核心组件概述1.1 DispatcherServlet1.2 HandlerMapping1.3 HandlerAdapter1.4 拦截器(HandlerInterceptor)1.5 ViewResolver 2. SpringMVC 的执行流程详解2.1 接收请求并分发2.2 获取 HandlerExecutionChain2.3 获取 HandlerAda…

扩散模型从原理到实战 入门

diffusion-models-class-CN/unit1/README_CN.md at main darcula1993/diffusion-models-class-CN GitHub 你可以使用命令行来通过此令牌登录 (huggingface-cli login) 或者运行以下单元来登录: from huggingface_hub import notebook_loginnotebook_login() http…

企业信息化-走进身份管理之搭建篇

​一、身份管理是什么 我们先要弄懂统一身份管理到底是什么? 统一身份管理(Unified Identity Manager,UIM),身份管理(Identity Management,简称IDM),也被称为IAM&#…