p元素margin垂直空间重叠问题,bfc

BFC是什么?如何触发BFC?(实现两栏/三栏布局) BFC是什么?如何触发?两栏/三栏布局如何实现? 阅读详情

一个HTML元素要创建BFC,则满足下列的任意一个或多个条件即可:

1、float的值不是none。(float:left 或者float:right)

2、position的值不是static或者relative。(position:absolute或者position:fixed)

3、display的值是inline-block、table-cell、flex、table-caption或者inline-flex

4、overflow的值不是visible(overflow:hidden、overflow:scroll)           

5、父元素与正常文件流的子元素(非浮动子元素)自动形成一个BFC                                                                                              

BFC中盒子怎么对齐

在一个BFC中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列

W3C给出得规范是:在BFC中,每一个盒子(子元素)的左外边缘(margin-left)会触碰到容器的左边缘(border-left)(对于从右到左的格式来说,则触碰到右边缘)。浮动也是如此(尽管盒子里的行盒子 Line Box 可能由于浮动而变窄)。

.

图片: Alt
正常情况下一个BFC是由父元素和子元素组成的,有时候也只有一个父元素

BFC的特征

(1)所有子元素(包含浮动元素)与容器(父元素)左边对齐

(2)属于同一个BFC的父元素和子元素,相邻的父子或者兄弟间margin垂直方向会重叠,若2个元素属于不同的BFC,则垂直方向不会重叠

(3)可以自动撑开容器(若子元素是float的,父元素设置overflow:hidden,父元素就形成一个BFC)

防止margin重叠我们就可以从BFC的特征入手,让2个相邻的元素不是属于一个BFC

    <style>
    .container1 {
        color: #fff;
    }

    .first {
        margin-bottom: 20px;
        padding-left: 10px;
        height: 200px;
        width: 200px;
        background-color: #28adbd;
    }

    .second {
        margin-top: 20px;
        height: 200px;
        width: 200px;
        background-color: #6871c1;
    }
    </style>


<body>
    <div class="container1">
        <div class="first">first p</div>
        <div style="overflow:hidden">
            <div class="second">second p</div>
        </div>
    </div>
</body>

由于class 为second的元素外面套了一个div(一定要套一个div,因为overflow:hidden 是设置在父元素上,里面一定要有子元素),并设置了overflow:hidden,相当于新创建了一个新的BFC, first 与second 属于2个BFC所以margin不会重叠

另一种方法,子元素浮动,浮动相当于新建了BFC,所以不会重叠


   <style>
    .container1 {
        color: #fff;
        width:200px;
    }

    .first {
        margin-bottom: 20px;
        padding-left: 10px;
        height: 200px;
        width: 200px;
        background-color: #28adbd;
    }

    .second {
        margin-top: 20px;
        height: 200px;
        width: 200px;
        background-color: #6871c1;
    }
    </style>


<body>
    <div class="container1">
        <div class="first" style="">first p</div>
        <div class="second" style="float:left">second p</div>
      </div>
</body>

相邻的子元素2个都浮动或者下面的一个浮动

转载自链接:https://my.oschina.net/u/2612473/blog/2221555

Elsevier投稿避坑指南:Ocean Engineering论文格式要求详解(附Checklist模板) 本文详细解析Elsevier旗下期刊Ocean Engineering的投稿格式要求与常见陷阱,提供实用的Checklist模板。涵盖文章类型确认、作者贡献声明、图表规范、数据声明等关键环节,帮助研究者高效通过格式审查。特别强调LaTeX排版细节、图表分辨率要求及现代伦理声明规范,助力海洋工程领域学者顺利投稿。 阅读详情

相关推荐

中山大学_数据科学与计算机_预推免

前言 2019 年 9 月中旬是中山大学预推免时间,本人没能进到夏令营,但是最后在预推免上岸也算不幸中的万幸。 记忆不一定准确,但希望能帮到他人。 想看 流程 的可以直接看总结,正文部分有本人心路历程。 预推免 中山大学的预推免大致可以分为 报道,机试,面试 三大部分,而且尤其是面试,所有人加起来总时长 3 天,幸运的是,本人被安排在第一天的下午第一场,上午就是机试,报道,机试,面试,无缝衔接。 ...

一把健 5208

垂直方向margin重叠原因与解决方法

我们经常写样式的时候会遇到垂直方向margin重叠的问题,如下代码: <style> .container1 { color: #fff; } .first { margin-bottom: 20px; padding-left: 10px; ...

weixin_33743661的博客 1671

数据清洗(Data Cleansing)

数据清洗(Data Cleansing)是指对数据进行处理和纠错,以去除或修复数据集中存在的错误、不致、不完整和冗余的数据,从而使数据更加准确、可靠和有用。数据清洗是数据处理和数据分析中一个非常重要的步骤,它可以帮助我们提高数据的质量,从而提高数据分析和机器学习的准确性和可靠性。数据清洗是一个重要的过程,它可以帮助我们提高数据的质量,从而提高数据分析和机器学习的准确性和可靠性。在实际应用中,我们可以使用一些工具和技术来实现数据清洗,例如 Pandas、NumPy 和 OpenRefine 等。通过数据清洗,

meimei169500的博客 1万+

p标签,css重置它自带的margin

其实最初写代码.CSS时, 总会事儿有点多,跟Ui的不是有点不像,是太不像了.哈哈… 在每个项目,一开始时,便会初始化很多标签 感悟很深 标签 它是自带margin的,所有,很多时候, 某一页面,一使用到它, 它会先给它清零,初始化 p{ margin:auto; } 然后,可以任意对它胡作非为了. ...

weixin_48557454的博客 1648

椭圆 —— 从理论推导到最小二乘法拟合

前言 椭圆在高中数学里就开始提到,都是从标准方程开始如: x2a2+y2b2=1(a>b>0) \frac{x^2}{a^2}+\frac{y^2}{b^2}=1(a>b>0) a2x2​+b2y2​=1(a>b>0) 其中 aaa 为椭圆的长轴,bbb 为椭圆短轴。如长轴为 111 ,短轴为 0.50.50.5 的椭圆可以这样画出 ezplot('x^2/1^2 + y^2/0.5^2 = 1',[-1.5 1.5 -1 1]) grid on; 标准方程可以很方便

学徒浩子 2万+

Python自动化生成HyperMesh Tcl命令流:从几何建模到有限元分析

本文详细介绍了如何利用Python自动化生成HyperMesh的Tcl命令流,实现从几何建模到有限元分析的全流程二次开发。通过封装常用操作函数,工程师可以高效完成参数化建模、自动网格划分及求解器文件输出,显著提升CAE前处理效率与标准化水平。

weixin_29041767的博客 423

html中加大p的距离,P标签段落距离如何设置?

在网页中文章段落一般我们用html标签进行分段,使用p标签上一段文章与下一段文章中间就会产生距离,如何控制p与p之间的间距呢?下面本篇文章就来给大家介绍一下p标签段落距离如何调整与设置。方法1:使用CSS padding内补白(内边距)可以推荐使用padding设置段落上下间距。通过设置上下内补白,内距离即可实现p段落上下间距设置。语法:p{padding:10px 0;}示例:段落案例p {pa...

weixin_32226157的博客 2593

WPF+MVVM案例实战(一)- 设备状态LED灯变化实现

采用WPF+MVVM框架实现,MVVM框架使用CommunityToolkit.Mvvm 依赖包,代码案例部署了三个LED灯,按照红黄绿三色后台自动刷新状态进行变化,根据后台数据不同,UI层显示不同颜色。

lingshuangcanxue 1382

CSS 外边距(margin)重叠及防止方法

边界重叠是指两个或多个盒子(可能相邻也可能嵌套)的相邻边界(其间没有任何非空内容、补白、边框)重合在一起而形成一个单一边界。 两个或多个块级盒子的垂直相邻边界会重合。结果的边界宽度是相邻边界宽度中最大的值。如果出现负边界,则在最大的正边界中减去绝对值最大的负边界。如果没有正边界,则从零中减去绝对值最大的负边界。注意:相邻的盒子可能并非是由父子关系或同胞关系的元素生成。 但是边界的重叠也有例

前端岚枫 3976

下采样优化实战:用ADown显著提升YOLOv11的多尺度特征保持能力

ADown 以“可编程梯度信息+多分支特征融合”打破了传统下采样的性能壁垒,为 YOLOv11 带来了多尺度特征的精准传递能力。从原理到代码集成,本教程已为你铺就了一条“小目标检测精度跃升”的实战路径。现在就动手尝试吧——当你看到模型对极小目标也能精准识别,且特征图细节完整时,你会明白这份技术探索的价值。我很乐意在你实践过程中帮你解决任何问题,让我们一起推动目标检测在下采样领域的边界。

FJN110的博客 421

理解 margin 垂直重叠的原因和解决方案

// 本文参考多篇文章,视频,官方文档而成,具体链接均在文中给出 从 BFC 开始 margin 垂直方向重叠并不是一个 BUG 而是一种官方规定的规则,这个规则就叫做 BFC(block formating contexts),如果你还不了解 BFC,可以观看这个视频快速学习。 如果你想看 w3c 关于 BFC 的 margin 垂直方向重叠的规定,点击这里 在这个规定里,规定了 BFC 的其中一个特性,这个特性就是块级元素上下排列时,margin 重叠,且重叠的 margin 值为最大的那个值 综上,m

码的世界 2029

华为OD机试 - 压缩日志查询(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。某设备需要记录每分钟检测到的指标值。为了节约存储空间,将连续相同指标值的记录合并。压缩之前:202411231000,11 202411231001,11 202411231002,12 202411231003,12 202411231004,

学Java,找哪吒 1880

有遇到过margin重叠/塌陷问题吗?BFC?

1、什么是margin重叠/塌陷? 2、开发中常见的margin塌陷 3、出现margin塌陷的原因 4、什么是BFC? 5、BFC的6个特性 6、BFC的功能总结 7、触发BFC的CSS属性 8、解决margin塌陷的办法 ① 对于父子元素 ② 对于兄弟元素

小草莓的博客 1641

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

BFC的理解和margin重叠的理解

在理解BFC之前,先了解一个margin重叠(合并) margin重叠(合并): 块级元素的上外边距(margin-top)与下外边距(margin-bottom)有时会合并为单 个外边距,这样的现象称为“margin 合并”。 发生重叠前提条件: 1、普通文档流中的块级元素(不包括行内、浮动、绝对定位元素) 2、只发生在垂直方向 //css部分 *{ margin:0; ...

进步的记录 790

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

什么是BFC机制,如何触发BFC(消除浮动带来的父元素塌陷、垂直方向margin重叠、嵌套块级元素父元素margin塌陷)

简单来说,BFC提供了一个独立的布局环境,BFC中的元素布局不受外部元素的影响,也不会影响到外部元素。触发BFC的几种方式1、给元素设置浮动 float: left | right2、给元素设置脱离文档流的定位 position: absolute | fixed3、给元素设置内容溢出 overflow: hidden | scroll |auto4、给元素设置 display: flex | inline-block | table-cell。几种常见问题:1、父级外边距折叠塌陷问题2、margi

qq_40261601的博客 2396

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

谈谈对BFC的理解

两个p元素之间的距离为100px,发生了margin重叠(塌陷),以最大的为准,如果第一个P的margin为80的话,两个P之间的距离还是100,以最大的为准。而BFC在计算高度时,浮动元素也会参与,所以我们可以触发.par元素生成BFC,则内部浮动元素计算高度时候也会计算。这时候,新的BFC不会与浮动的.aside元素重叠。可以看到上面几个案例,都体现了BFC实际就是页面一个独立的容器,里面的子元素不影响外面的元素。BFC目的是形成一个相对于外界完全独立的空间,让内部的子元素不会影响到外部的元素。

常来常往,共同成长 1804

腾讯一面:谈谈你对BFC的理解

最近博主在腾讯面试中遇到这样一个面试题,这个问题也是前端面试的高频问题,作为一名前端开发工程师,css是我们的必备技能,熟悉BFC是我们写好css的关键,博主在这给大家细细道来。

A_D_H_E_R_E的博客 1012

深入学习CSS外边距margin(重叠效果,margin传递效果,margin:auto实现块级元素水平垂直居中效果)...

前言 margin是盒模型几个属性中一个非常特殊的属性。简单举几个例子:只有margin不显示当前元素背景,只有margin可以设置为负值,margin和宽高支持auto,以及margin具有非常奇怪的重叠特性。 重叠 margin重叠又叫margin合并,发生这种情况有两个前提 1、只发生在block元素上(不包括float、absolute、inline-block元素) 2、只发生...

745

BFC到底是什么,如何触发

本文转载自 https://github.com/febobo/web-interview/issues/99 一、是什么 我们在页面布局的时候,经常出现以下情况: 这个元素高度怎么没了? 这两栏布局怎么没法自适应? 这两个元素的间距怎么有点奇怪的样子? … 原因是元素之间相互的影响,导致了意料之外的情况,这里就涉及到BFC概念 BFC(Block Formatting Context),即块级格式化上下文,它是页面中的一块渲染区域,并且有一套属于自己的渲染规则: 内部的盒子会在垂直方向上一个接.

不营养、的博客 989

BFC 是什么

在页面布局的时候,经常出现以下情况: 这个元素高度怎么没了? 这两栏布局怎么没法自适应? 这两个元素的间距怎么有点奇怪的样子? ...... 原因是元素之间相互的影响,导致了意料之外的情况,这里就涉及到BFC概念 BFC(Block Formatting Context),即块级格式化上下文,它是页面中的一块渲染区域,并且有一套属于自己的渲染规则: 内部的盒子会在垂直方向上一个接一个的放置 对于同一个 BFC 的俩个相邻的盒子的 margin 会发生重叠,与方向无关。 每个元素的左外边距与包含块的左边

zz130428的博客 3298

【谈谈你对BFC的理解?】

官方定义:BFC(Block Formatting Context)块格式化上下文, 是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。简单的理解:BFC就是一个块级容器,它会隔离外部,让盒子里面的元素不影响外面的元素,也就是在搭建页面的时候,不影响外面的布局。1、可以利用BFC解决两个相邻元素的上下margin重叠问题;2、可以利用BFC解决高度塌陷问题;3、可以利用BFC实现多栏布局(两栏、三栏、圣杯、双飞翼等)。

m0_45991266的博客 1334

到底用对BFC了吗?

而且如果其中一个p标签的margin为90px,两个p标签margin值还是100px,以最大的为准;前面讲到,每个元素的左外边距与包含块的左边界相接触因此,虽然.aslide 为浮动元素,但是 main 的左边依然会与包含块的左边相接触而 BFC 的区域不会与浮动盒子重叠。而 BFC 在计算高度时,浮动元素也会参与,所以我们可以触发.par元素生成 BFC,则内部浮动元素计算高度时候也会计算。BFC目的是形成一个相对完全独立于外界的空间,让内部的子元素不会影响到外部的元素;

weixin_62936589的博客 1032

什么是BFC?

BFC讲解

m0_46239267的博客 590

什么是BFC,对BFC的理解

先来看两个相关的概念:Box: Box 是 CSS 布局的对象和基本单位,一个页面是由很多个 Box 组成的,这个Box就是我们所说的盒模型。Formatting context: 块级上下文格式化,它是页面中的一块染区域,并且有一套染规则,它决定了其子元素将如何定位,以及和其他元索的关系和相互作用。块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS染的一部分,是布局过程中生成块级盒子的区域,也是浮动元素与其他元素的交互限定区域。

weixin_53818172的博客 401

BFC概念、触发条件、布局规则以及定位、宽高自适应简述

BFC BFC概念: 解释什么是BFC之前,我们需要先知道Box、Formatting Context的概念。 **Box:CSS 布局的基本单位,直观来说,一个页面就是由若干盒子组成。display 属性,决定了这个 Box 的类型。 不同类型的 Box, 会参与不同的 Formatting Context(一个决定如何渲染文档的容器),因此Box内的元素会以不同的方式渲染。让我们看看有哪些盒子...

swlsqf的博客 769
上一篇: 移动端 ios 字体偏上问题
下一篇: 字体行高奇数
ZhouMin8877
博客等级 码龄9年 4粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值