CSS的margin属性:为什么在嵌套图中,子元素的margin设置会改变父元素的margin属性

嵌套div里子元素div使用margin可能遇到的问题 在使用嵌套div时,如果子元素设置margin属性,有时会使父元素一起移动,例如 可以看到两个div一起向下移动了,并没有达到div在div里面向下移动 50px的效果,要解决这种情况,可以给父元素增加一个框的属性 比如 可以看到效果出来了 还可以给父元素的样式代码里设置一个overflow:hidden,一样可以解决这个问题 也可以给父元素设置一个有效的padding (这里的有效指的是要给一个padding值,不能设置为none和hidde... 阅读详情

我们以下面的代码为例:

html代码:

<body>
<div class="box1">
<div class="box2"></div>
</div>
</body>

css代码:

    <style>
        .box1{
            width: 300px;
            height: 300px;
            background-color: red;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: blue;
            margin:0 auto;
            margin-top:100px;
        }
    </style>

展示结果:

我们代码设置的是box2小盒子的margin-top属性,但展示的结果却是大盒子box1的margin-top属性也发生了变化。

 

问题1:为什么在嵌套图中,设置子元素的margin,另外一个父元素也会跟着改变呢?


问题逻辑角度的解说:在回答这个问题之前我们要先看它的前提是什么,嵌套图。也是说html给它们的语义是小图嵌套在大图里面,那如果小图的margin发生改变,距离顶部有100px的间距,如果大图不跟着小图一起调整,那小图岂不是要出圈儿了,那就不符合嵌套的这个关系了。

前端设计角度的解说:当设置子元素的margin时,子元素会去找父元素的边框,因

无人机航拍实战:如何用Python代码精准计算目标地理坐标(附完整代码) 本文详细介绍了如何利用Python代码实现无人机航拍图像中目标点的精准地理位置计算。通过解析从像素坐标系到WGS84大地坐标系的完整转换链条,结合相机内参、无人机姿态与地球曲率处理,提供了可直接运行的实战代码,并重点分析了地理位置计算中的常见误差来源与应对策略,助力开发者解决实际项目中的定位漂移问题。 阅读详情

相关推荐

PCB设计之ODB++文件格式详解

ODB++(Open Database++)是一种广泛应用于PCB(印制电路板)设计和制造领域的开放数据交换格式。它由Valor Computerized Systems(现为Siemens EDA的一部分)开发,旨在替代传统的Gerber文件格式,提供更完整、结构化的制造数据,从而优化PCB设计到生产的流程。ODB++通过结构化数据整合了PCB设计到制造的全流程信息,显著提高了生产效率和准确性。尽管存在一定的兼容性挑战,但其在复杂项目和高可靠性场景中的价值不可替代。

ZZcppc的博客 9795

css子元素设置margin-top为什么影响了父元素

这篇文章主要介绍了css子元素设置margin-top为什么影响了父元素,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

无止境学的博客 797

Linux iperf 进行跑流测试时,为啥单条流会有速率上不去的问题?

iperf

1042484520@qq.com(邮箱) 3045

CSSmargin击穿问题(子元素margin-top会影响父元素

最近写一个H5页面的时候发现了这个被忽视的问题,一时没想到什么原因,搜了半天,记录一下,方便他人踩坑。唉,有些东西不用就忘。 一、问题描述 最终效果:会发现在元素上面会有20px的空白,然而我们并没有对父元素设置margin,可见是子元素margin-top:20px 影响到了父元素。 二、原因:MDN的文档:如果没有框border,内padding,行内内容,也没有创建块格式上下文或清除浮动来分开一个块元素的上margin-top与其内一个或多个后代块元素的上界..

Rich_77的博客 703

元素之间设置margin的影响及原因

在写网页布局时通常会遇见给元素之间设置margin无效或其他影响,所以简单记录下: 影响: 1.、兄弟元素间设置垂直方向上的margin时,margin会发生重叠,只选取最大值 2.子元素之间,给子元素设置margin-top时,子元素会影响父元素,带动父元素下移,影响父元素位置 注意:margin带来的影响只会发生在块元素之间,因为主要是垂直方向上的影响 原因: BFC机制的规定: W3C中指出: 在块格式化上下文中,框从包含块的顶部开始一个接一个地垂直排列。 两个兄弟框之间的

m0_45251556的博客 1531

css中的子元素设置margin-top或者margin-bottom作用到父元素上的问题

写页面的时候要实现这样一个效果要求:图标之间有一条线进行连接,最上和最下的图标没有线进行连接,数据动态加载图标和线也动态生成一、第一种实现方法横着的每条数据是一个,然后所有的数据又是一个,然后给最外层的加border-left,然后每条数据设置一个margin-left的负值,每条数据之间的间margin-bottom来设置,具体实现如下&lt;!doctype html&gt...

weixin_39855431的博客 5208

如何理解margin重叠问题

一、写在前面 根据w3c规范,两个margin产生折叠的必备条件: 1、必须处于常规文档流(不能是浮动和定位)的块,并且处于同一个BFC当中。 2、没有线盒,没有空隙,没有padding和border将他们分割。 3、都处于垂直方向相邻的外。 二、例 <!DOCTYPE html> <html lang="cn"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compa

weixin_47450807的博客 3597

margin值根据标签文本内容变化

项目中遇到的问题,生产商信息这个页面,每个生产商信息会出现有时字多,有时字少的情况,为了保持在字数变多的情况下margin值缩小,字数变少的情况下margin值变大,整体页面布局会更美观,用JS判断,demo如下; HTML部分                                     名    称:(说)分的呵呵的的额的的的     

wait9166的博客 467

子元素margin-top为何会对父元素造成影响?

我们有时候发现,div设置margin-top对整个div的位置造成了影响,对我们的布局造成了很大的困扰。 下面我们做一个测试: css结构如下: .show{ margin: 0px auto; width: 200px; height: 100px; background-color: #999999; } ....

qq_36470686的博客 5486

css布局100%,设置margin后超出布局

文章目录问题解决方式box-sizingcontent-boxborder-boxinherit 问题 我们发现,如果子元素设置宽度为100%,然后设置margin或者padding的话,会超出布局的宽度:比如 效果如下 解决方式 参考博文 参考博文2 box-sizing 通过参考博文,我们知道可以使用box-sizing来设置 content-box 是box-siziing的默认值,...

snoto的专栏 4395

子元素margin-top出现的奇怪情况

代码如下: const stylePraentDiv = { width:300, height:300, background:'#191f28' } const styleDiv = { width:100, height:100, background:'#417cd5', margin:20, } return...

Jane_96的博客 379

MarginTop 为何影响父元素MarginTop

这个问题困惑了很久,虽然没有大碍早就摸出来怎么搞定它,但始终不明白原因出在哪里,如果只是IE有问题我也不会太在意,可问题是所有上等浏览器都表现如此,这样叫我怎能安心?今天总算下狠心查出来怎么回事,居然是CSS2.1盒模型规范……虽然很别扭,非常别扭的规定。   问题如下图,两层Div结构,Outer Div属性为“margin:0 auto”,本该紧贴外框顶部的,如果没有Inner Div,或

duran1986的专栏 9986

子元素设置margin-top,父元素也受影响

合并问题常见于第一个子元素margin-top会顶开父元素父元素相邻元素的间,而且只在标准浏览器下 (FirfFox、Chrome、Opera、Sarfi)产生问题,IE下反而表现良好。例可以查看下面代码(IE下表现“正常”,标准浏览器下查看出现“bug”):     子元素设置margin-top,父元素也受影响     * {         m

沫沫酱 2万+

CSS margin出现传递和合并的问题

margin在使用过程中往往会出现难以预料的问题,比如在垂直方向会出现兄弟元素合并问题、子元素传递问题。 上下margin传递(左右不会传递): margin-top传递:如果块元素的顶部线和父元素的顶部线重叠,那么这个块元素的margin-top值会传递给父元素margin-bottom传递:如果块元素的底部线和父元素的底部线重叠,并且父元素的高度是auto,那么这个块元素的margin-bottom值会传递给父元素; 解决办法: 触发BFC,设置overflow为auto/hidden

今天的我还菜嘛 950

相邻div元素层设置margin引起的层问题解决方案

需求:up和down层,down层margin-top:-100px; 目的:down层覆盖up层100px &lt;div class="up"&gt;&lt;/div&gt; &lt;div class="down"&gt;&lt;/div&gt; 出现问题:up层覆盖down层上100px,而不是隐藏在down层下; 解决方案: 方案一:.up{    position: re...

przlovecsdn的博客 1261

子元素设置margin后,父元素的跟着一起动了

一般就是给父元素设置overflow: hidden;即可解决问题,之所以出现这种情况的原因是:普通文档流盒间,只要垂直外直接接触就会发生合并,合并后外视觉高度取两个发生合并外中较大者。发生这一现象的有三种情况:相邻兄弟块元素间、父元素及其首子元素和末子元素间(没有内框把外分隔开)、空块元素自身的合并。

William.Yao的博客 3385

子元素上的margin作用到了父元素

margin合并详解:合并现象在网页布局中非常的常见,必须对此有明确的把握,以此做到未雨绸缪,否则可能影响工作效率,甚至严重阻碍项目的进度。在网络上已经有大量的相关文章,下面结合实例代码对margin合并做一下总结。 外合并概念: 相邻的两个或者多个外在垂直方向上合并成一个外,这就是所谓的外合并。 水平方向不存在此现象。 外合并产生条件: (1)

nicexibeidage的博客 969

css父元素子元素之间margin-top的问题

问题:父元素的盒包含一个子元素,给子元素一个垂直外margin-top,父元素的盒也会受到子元素margin-top值的影响。 原因:所有毗邻的两个或者多个元素的margin将会合并为一个margin共享之。毗邻的定义为:同或者嵌套的盒元素,并且它们之间没有非空内容。padding或者border分隔。其中float和position(css2.1浮动元素和绝对定位...

a159169179的博客 837

margin重叠之子元素

margin重叠现象就是相邻的两个普通元素,上下不是普通的相加而是取其中较大的值(注意是普通元素) 同时,子元素也会发生margin重叠现象,具体情况如下 1、两个div,父元素子元素 2、分别定义其margin-top属性值,父元素为100px子元素为20px 3、结果如下,取了较大的父元素margin-top值100px

liona_koukou的博客 816

为什么第一个子元素设置margin-top父元素会跟着移动(附解决方案)

问题: 有时当我们设置子元素margin-top,但是却发现子元素没有出现上外的效果,反而是父元素出现了上外的效果。 原因: 重叠:一个盒和其孙的重叠。根据规范,一个盒如果没有上补白和上框,那么它的上应该和其文档流中的第一个孩子元素的上重叠。 解决方案 1、为父元素设置padding。 #father { width: 300px; height:...

一颗程序猿 1万+

css margin为什么重叠,CSS(margin)重叠及防止方法

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

weixin_32566515的博客 2700
上一篇: CSS的margin属性:为什么外边距垂直相遇会合并,而水平相遇则不会合并呢?
下一篇: 反射原理-图文
Elsa~
Elsa~ 《花开蝴蝶自然来》作者 《花开蝴蝶自然来》作者
博客等级 码龄9年 8135粉丝 227原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elsa~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值