最详细的高度塌陷解决方案

【CSS】高度塌陷及解决方案 文章目录什么是高度塌陷解决高度塌陷 什么是高度塌陷 在文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高。 但是当为子元素设置浮动以后,子元素会完全脱离文档流, 此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷。 父元素高度自适应(不写高度),子元素 float 后,造成父元素高度为0,称为高度塌陷问题。 <style type="text/css"> .box1 { /* 父元素未设置高度,高度由子元素撑开 */ b 阅读详情

在网页布局中我们经常会遇到高度塌陷的这样的问题,那么什么是高度塌陷呢?

什么是高度塌陷?

父元素高度自适应,子元素float之后,造成父元素高度为0,称为高度塌陷。他的产生条件就是子元素浮动

如何解决高度塌陷呢?

这里作者总结了8中解决方法和每种方法的优缺点

方案一

给父元素添加固定高度,适合做高度固定的布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .parent{
            /* 添加固定高度 */
            height: 400px;
            border: 5px solid red;
        }
        .son {
            width: 200px;
            height: 200px;
            background: yellow;
            float: left;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="son"></div>
    </div>
</body>
</html>

UTOOLS1582430884477.png

优点:简单、代码少、容易掌握
缺点:只适合做高度固定的布局,要给出精确的高度,如果和父级div不一样时,会产生新的问题
建议:不推荐使用,只建议高度固定的布局使用
方案二

给父元素添加overflow:hidden

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .parent{
            border: 5px solid red;
            /* 使用overflow:hidden可以让父元素的盒子自动撑开
            	注意为了解决IE兼容问题我们需要添加zoom:1属性
            */
            overflow: hidden;
        }
        .son {
            width: 200px;
            height: 200px;
            background: yellow;
            float: left;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="son"></div>
    </div>
</body>
</html>

UTOOLS1582431219797.png

优点:简单,代码少,浏览器支持好
缺点:不能和position配合使用,因为超出的尺寸会被隐藏
建议:在页面布局中如果经常使用到定位不建议使用这个方法解决高度塌陷问题
方案三

给父元素结尾添加div标签clear:both

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .parent{
            border: 5px solid red;
        }
        .son{
            width: 400px;
            height: 400px;
            background-color: yellow;
            float:left;
        }
        span{
            clear: both;
            /* 下面两行代码是解决IE兼容问题,因为在IE兼容部分块元素会自带16px的高度 */
            height: 0;
            overflow: hidden;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="son"></div>
        <div></div>
    </div>
</body>
</html>

UTOOLS1582431729912.png

优点:简单、代码少、浏览器支持好、不容易出现怪问题
缺点:不少初学者不理解原理,需要增加多余的空标签,让人感觉不好
建议:不推荐使用,但是此方法是以前主要是用的一种清除浮动的方法
方案四

万能清除法(更适合整站开发)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .parent{
            border: 5px solid red;
        }
        .son {
            width: 400px;height: 400px;
            background: yellow;
            float: left;
        }
        .parent::after{
            content: "";
            display: block;
            clear: both;
            /* height:0;和overflow:hidden;是为了解决IE兼容的问题 */
            height: 0;
            overflow: hidden;
            /* visibility:hidden;是为了去除content中的文字 */
            visibility: hidden;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="son"></div>
    </div>
</body>
</html>

UTOOLS1582432198047.png

优点:浏览器支持好、不容易出现怪问题
缺点:代码多、不少初学者不理解原理,要两句代码结合才能让主流浏览器都支持
建议:推荐使用,建议定义公共类,以减少CSS代码
方案五

父级定义overflow:auto

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .parent{
            border: 5px solid red;
            /* 此方法与overflow:auto的原理是一样不过auto是内容超出后出现滚动条 */
            overflow: auto;
        }
        .son {
            width: 400px;
            height: 400px;
            background: yellow;
            float: left;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="son">使用父级元素dingyioverflow:auto方法</div>
    </div>
</body>
</html>

UTOOLS1582432631020.png

优点:简单、代码少、浏览器支持好
缺点:内部宽度超过父元素容器之后,会出现滚动条
建议:由于会出现滚动条的原因不推荐大家使用
方案六

父级容器一起浮动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width= , initial-scale=1.0">
    <title>Document</title>
    <style>

        .parent{
            border: 5px solid red;
            float: left;
        }
        .son {
            width: 400px;
            height: 400px;
            background: yellow;
            float: left;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="son"></div>
    </div>
</body>
</html>

UTOOLS1582433681875.png

优点:没有优点
缺点:会产生新的浮动问题
建议:不推荐使用,出现各种各种问题,了解就好
方案七

父级容器定义display:table;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .parent{
            border: 5px solid red;
            /* 改变元素类型 inline-block/flex/inlin-flex/table/table-cell/table-caption都可以 */
            display: table;
        }
        .son{
            width: 400px;
            height: 400px;
            background: yellow;
            float: left;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="son">父级元素类型定义为table</div>
    </div>
</body>
</html>

UTOOLS1582434158446.png

方案八

给父元素结尾添加

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .parent{
            border: 5px solid red;
        }
        .son {
            width: 400px;
            height: 400px;
            float: left;
            background: yellow;
        }
        /* 给br标签清除浮动 */
        br{
            clear: both;
            height: 0;
            overflow: hidden;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="son">给父元素结尾添加br标前然后clear:both;</div>
        <br>
    </div>
</body>
</html>

UTOOLS1582434647758.png

优点:代码少,浏览器支持好
缺点:造成多余代码,而且br标签在页面本来就是会换行的作用不符合语义化规范
建议:不推荐使用,只做了解

高度塌陷的产生条件和解决方法 这是一些前端容易问到的问题,大家一起共勉。主要为大家解决一些平常经常遇到的问题,大家一起解决,一起指正。 立即下载

相关推荐

从专利库到Zemax:一个6mm定焦镜头从零到交付的完整设计流程(含CodeV转换技巧)

本文详细介绍了6mm定焦镜头从专利库检索到最终交付的全流程设计,重点解析了CodeV与Zemax工具链的无缝衔接技巧。通过实际案例展示规格定义、专利筛选、结构适配、非球面优化等关键步骤,帮助光学设计工程师提升设计效率和制造良率。特别包含CodeV转换Zemax的实用技巧,适用于机器视觉和安防镜头开发。

weixin_42561040的博客 160

解决高度塌陷的几种方法

解决float造成的高度塌陷问题

l15367918596的博客 5448

IC面试常考题 Verilog三分频电路设计(占空比50%,三分之一,三分之二)

实现三分频电路最简单的是: 利用计数器实现。 时序图分析(本人比较懒,平常科研忙,所以直接手画时序图了,懒得用软件画了): 直接上图分析:利用计数器每隔三个周期信号翻转一次,同时在不同的计数下翻转得到的同步信号 clk_1和clk_2,再利用异或即可实现出一个不同占空比的三分频信号(同样的方法也可扩展到其他奇数分频设计中)。 例如占空比50%: module Div_three( input clk, input rst_n, output div_three ); reg

qq_41884662的博客 1万+

高度塌陷的产生原因及解决方法

什么是高度塌陷? 当父元素未设置高度时,所有子元素浮动后,造成子元素脱离文档流进而无法把父元素撑开,父元素高度为0产生高度塌陷,称为高度塌陷问题。 父元素高度塌陷后,父元素以下的元素都会向上移动,导致布局混乱,所以我们要解决高度塌陷的问题。 如下代码: <div class="box"> <div class="div1">div1</div>...

Mencre的博客 9680

倾斜摄影与激光点云融合建模:Photoscan+ContextCapture避坑指南

本文详细解析了倾斜摄影与激光点云融合建模的技术流程,重点介绍了使用Agisoft Metashape(原Photoscan)与ContextCapture进行数据融合的实战指南。文章深入探讨了数据预处理、坐标系统一、空三计算策略及在ContextCapture中进行点云配准等关键步骤,旨在帮助从业者规避常见陷阱,高效构建兼具高精度几何与真实纹理的三维实景模型。

weixin_29062613的博客 248

从零到一:RF-DETR如何通过神经架构搜索重塑实时目标检测的边界

RF-DETR通过创新的权重共享神经架构搜索(NAS)机制,重新定义了实时目标检测的技术边界。这项技术在COCO等基准测试中表现卓越,成为首个AP超过60的实时检测器,同时保持跨领域稳定性和高效推理速度。RF-DETR的动态架构调整能力使其能够适应从嵌入式设备到云端服务器的各种硬件环境,为工业质检、自动驾驶等场景提供灵活解决方案。

weixin_29061531的博客 467

解决高度坍陷问题三种策略

这里写自定义目录标题*第一种*第二种第三种 高度塌陷问题是我们在学习css和html5时不可避免的一个易错点,下面是个人整理的关于高度塌陷的三个解决办法 首先,对高度塌陷进行介绍,在html5中,父元素的高度是由后代元素撑起来的,当我们后代元素设置为float时,就会造成父元素的高度塌陷,会致使父元素下面的元素往上顶,造成元素重叠。解决方法如下: 第一种 **overflow: auto;** 当我们将溢出标志overflow设置为auto时,可以消去后代元素浮动造成的高度塌陷问题

weixin_43650802的博客 284

经纬度转换为UTM坐标

UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航。将地球划分为60个纵向的区域。每个区域宽6度,从赤道开始往南北两级方向划分。每个区域都有一个特定的字母。

weixin_45626706的博客 7275

高度塌陷、清除与BFC(内含完美解决方案)

完美解决高度塌陷与外边距折叠问题,BFC,浮动效果清除

comegoing_xin_lv的博客 1619

别再手动写JSON了!用Node-RED OPC UA节点5分钟搞定楼宇温湿度数据采集

本文介绍了如何利用Node-RED和OPC UA节点快速实现楼宇温湿度数据的自动化采集与JSON格式转换。通过可视化工具Node-RED,开发者无需编写复杂代码,5分钟内即可完成从传感器到数据输出的全流程配置,大幅提升智慧楼宇和工业物联网项目的实施效率。

weixin_30368405的博客 431

SAP_FI模块_固定资产期初导入全流程(含导入代码)

SAP 期初导入资产主数据以及金额相关的操作全流程记录,包含了批导程序的代码,以及错误记录

风沙的博客 1404

小张前端学习(二):CSS基础

文章目录CSS引入CSS基本语法CSS特性 1.最新版本:CSS3.0 CSS引入 举例: 1.内联样式 <h1 style="color: red;">CSS学习</h1> 2.内部样式 <head> <style> h1 { color: green; } </style> </head> <body> <h1>CSS学习

小张的快乐码农生活 372

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。

TxNet 1751

高度塌陷最详细解决方案

通常在咱们网页布局中都会遇到高度塌陷这个问题,今天就来详细讲解一下这个问题 高度塌陷 父元素不写高度时,子元素写了浮动后,父元素会发生高度塌陷(造成父元素高度为 0) 以下动图演示了高度塌陷,可以看到给子元素添加浮动后,父元素的高度变为了0 下面就来讲解一下怎么解决高度塌陷问题,这里只为大家总结几种最常用的方法,不常用方法等后期添加 1、给父元素添加声明overflow:hidden 优点:代码少、简单 缺点:1、只适用于高版本游览器,IE6不支持。 2、不能和position定位.

Optimistic的博客 344

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

解决margin塌陷的问题_高度塌陷最详细解决方案

通常在咱们网页布局中都会遇到高度塌陷这个问题,今天就来详细讲解一下这个问题高度塌陷父元素不写高度时,子元素写了浮动后,父元素会发生高度塌陷(造成父元素高度为 0)以下动图演示了高度塌陷,可以看到给子元素添加浮动后,父元素的高度变为了0下面就来讲解一下怎么解决高度塌陷问题,这里只为大家总结几种最常用的方法,不常用方法等后期添加1、给父元素添加声明overflow:hidden优点:代码少、简单缺点:...

weixin_36413247的博客 2600

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

解决高度塌陷--父元素未被子元素撑开问题,外边距重叠问题

文章目录 前言 一、解决办法是什么? 二、某些方法不推荐的原因 1.某些方法不推荐的原因 2.什么是BFC? 总结 前言 什么是高度塌陷? 高度塌陷是指当子元素设置浮动后,导致子元素脱离文档流,无法撑起父元素的高度,下方元素自动上移,造成页面布局混乱 其中a是父元素,b是子元素(且设置浮动) 一、解决办法 办法一:父元素同样设置浮动 例如:.a{float:left} 其中a为父元素----->不推荐,原因在下一个模块解释 办法二:为父元素...

前端如逆水行舟... 2802

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

高度塌陷和BFC

高度塌陷和BFC 文章目录高度塌陷和BFC前言一、什么是高度塌陷?二、BFC1.什么是BFC?2.如何开启BFC?总结 前言 在网页的制作过程中,常常会因为元素的浮动而导致高度塌陷。本文介绍了高度塌陷通过使用BFC的基本解决方案。 一、什么是高度塌陷? 浮动元素父元素高度自适应(高度塌陷),当子元素有浮动并且父元素没有高度的情况下父元素会出现高度塌陷。 二、BFC 1.什么是BFC? BFC(Block Formatting Context) 块级格式化环境 - BFC是CSS中的一个隐含的属性 开启B

Sy_origami的博客 557

CSS - 什么是高度塌陷 及 高度塌陷的解决方法

一、什么是高度塌陷? 在文档流中,父元素的高度默认是被子元素撑开的,即子元素多高,父元素多高。但是为子元素设置浮动后,子元素会完全脱离文档流,此时会导致子元素无法撑起父元素,父元素高度塌陷。 <div class="a"> <div class="b"> </div> </div> 1. 子元素未设置浮动 .b{ width: 100px; height: 100px; background

asfcyg的博客 1939

【CSS笔记】高度塌陷、伪元素选择器及伪类选择器

高度塌陷: 父元素高度自适应,子元素 float 后,造成父元素高度为0解决高度塌陷: 1、个给高度塌陷的元素添加一个属性 overflow:hidden 触发了BFC,在计算BFC元素高度时,浮动元素也会参与计算 弊端:溢出隐藏 2、清除浮动 2.1、在高度塌陷的元素里面的最下面,添加一个空的<div></div> 2.2、给空的div加一个属性clear:b...

吾昂王 409

浮动元素造成的父级高度塌陷

问题: 父级元素不给高度,子元素浮动,会造成父元素高度塌陷 解决办法: 1: 给父元素添加高度 height:; 缺点: 不灵活 2: 给父级元素添加overfow:hidden;(触发了一个bfc区域) 缺点: 定位出去的元素将会被隐藏 3: 给浮动元素的 最后 面添加一个空标签(块级元素) 空标签的样式: width: 0; height: ...

止水Itachi 195

解决高度塌陷问题

高度塌陷:在浮动布局中,父元素的高度默认是被子元素撑开的。当子元素浮动以后,其会完全脱离文档流,子元素从文档流脱离,将会无法撑起父元素的高度,导致父元素高度的缺失。 父元素的高度丢失以后,其下的元素会上移,导致页面布局的混乱,因此高度塌陷的问题必须要解决! 由于我们希望父元素的高度是被子元素撑开的,因此父元素不设置高度。 <html lang="en"> <head> <meta charset="UTF-8"> <meta http-e

weixin_53844810的博客 305

深入理解 CSS 高度塌陷问题及解决方案

在 CSS 布局中,​**高度塌陷**(Collapsing Height)​​ 是一个**常见但容易被忽视**的问题。当父元素包含浮动(`float`)的子元素时,父元素的高度可能会“塌陷”为 `0`,导致布局错乱。本文将详细解析高度塌陷的原因、影响以及多种解决方案,帮助你写出更健壮的 CSS 代码。

weixin_43172311的博客 1425

absolute导致的高度塌陷问题——解决方法

前段时间写前端页面排版的时候又又又遇到了absolute导致的父元素高度塌陷的问题,以前代码写的少所以遇到问题就是查查查,问题解决后了一个漫长的学期后又遇到一样的问题又得重新查查查,所以这次索性总结一下。 什么是高度塌陷? 在文档流中,父元素的高度默认被子元素撑开的,也就是说子元素多高父元素就多高,但是当为我们子元素设置浮动以后,子元素就会完全脱离文档流,此时会导致子元素无法撑开父元素的高度,导致父元素的高度塌陷。由于父元素的高度塌陷,则父元素下的所有元素都会向上移动,导致页面的布局混乱。 PS:因为pos

weixin_44066534的博客 2万+

CSS中浮动float带来的高度塌陷问题及4种解决方案

当为子元素设置浮动以后,子元素会完全脱离文档流,此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷。由于父元素的高度塌陷了,则父元素下的所有元素都会向上移动,这样将会导致页面布局混乱。所以在开发中一定要避免出现高度塌陷的问题。

csgojingyu的博客 2578

高度塌陷问题和解决高度塌陷问题

什么是高度塌陷 在文档流中,父元素的高度默认是由子元素撑开的,等于说子元素多高,父元素就多高,但是当为子元素设置了浮动之后,子元素会脱离文档流,此时,将会导致子元素无法撑起父元素的高度,会导致父元素的高度塌陷 高度塌陷会导致的问题 会使父元素下面的兄弟元素都想上移动,会使页面布局变化,影响原来的布局 未塌陷之前 塌陷之后: 解决高度塌陷问题 第一种: 直接设置父元素的高和宽,使其固定 不方便,不推荐,这样设置父元素的高度不会适应子元素的高度 第二种 用Block Formatting Context简称

你好牛蛙! 2427

前端----高度塌陷及解决办法(最详细解)

高度塌陷产生原因: 在浮动布局中,父元素的高度默认被子元素撑开,当子元素浮动后,其会完全脱离文档流,子元素从文档流中脱离将会无法撑起父元素的高度,导致父元素的高度丢失。 解决高度塌陷缘由: 由于高度塌陷会影响页面中其他元素的布局(父元素塌陷后,其下面的元素将会自动上移),将会导致页面混乱,因此解决高度塌陷是不可逃避的问题。 解决办法: 1.将父元素高度写死,这样可避免高度塌陷,但这样也会让父元素高度不再被子元素撑开,将会导致各种问题,因此这种方法不推荐。 2.开启BFC BFC(Block Formatti

qqshenbaobao的博客 8283
上一篇: 如何优雅的进行MySQL优化
下一篇: 老司机带你解决浏览器兼容
小小荧
博客等级 码龄9年 133粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值