MarginTop 为何影响父元素的 MarginTop

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

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


Inner Div [margin-top: 10px]

Outer Div [margin: 0 auto]

 HTML Demo Area
 这个“问题”……它是CSS2.1的盒模型中规定的内容—— Collapsing margins
In this specification, the expression  collapsing margins means that adjoining margins (no non-empty content, padding or border areas or clearance separate them) of two or more boxes (which may be next to one another or nested) combine to form a single margin. 所有毗邻的两个或更多盒元素的margin将会合并为一个margin共享之。毗邻的定义为:同级或者嵌套的盒元素,并且它们之间没有非空内容、Padding或Border分隔。

  这就是原因了。“嵌套”的盒元素也算“毗邻”,也会 Collapsing Margins。这个合并Margin其实很常见,就是文章段落元素<p/>,并列很多个的时候,每一个都有上下1em的margin,但相邻的<p/>之间只会显示1em的间隔而不是相加的2em。这个很好理解,我就是奇怪为什么W3C要让嵌套的元素也共享Margin,想不出来在什么情况下需要这样的表现。   这个问题的避免方法很多,只要破坏它出现的条件就行。给 Outer Div 加上 padding/border,或者给 Outer Div / Inner Div 设置为 float/position:absolute(CSS2.1规定浮动元素和绝对定位元素不参与Margin折叠)。   更多信息,关于不同值的margin折叠后表现的计算方法等等,可自行查阅W3C的CSS2.1规范:Collapsing margins

集成电路设计笔记(七)UVLO设计 1. 什么是UVLO 欠压锁定(Undervoltage-Lockout)简称UVLO,是电子设备中在电源电压低于正常工程准位时,切断电源的电路。在嵌入式系统中常会用UVLO监控电池电压,若电压低于一定值,会直接切断电源,保护嵌入式系统的电路。 许多电子设备中都有UVLO的功能,例如在镇流器中就有UVLO电路,若电压过低时直接切断电源。 UVLO就是低电压锁定; 低压关断. 欠压关断模式是当供电电压低于IC的开启门限电压时的一种保护模式。欠压关断模式可保证IC在供电电压不足时不致于被损坏。一个低电压锁定( 阅读详情

相关推荐

[运动规划算法]基于飞行走廊的轨迹优化

文章目录简介一、介绍二、原理飞行走廊生成三、项目演示参考 简介 Btraj是一个在线的四旋翼无人机的运动规划框架,主要用于未知环境中的自主导航。基于机载状态估计和环境感知,采用基于快速行进(FM *)的路径搜索方法,从基于构建的欧氏距离场(ESDF)中寻找路径,以实现更好的时间分配。通过对环境进行膨胀生成四旋翼无人机的飞行飞行走廊。使用伯恩斯坦多项式将轨迹表示为分段Bezier曲线,并将整个轨迹生成问题转换成凸问题。通过使用Bezier曲线,可以确保轨迹的安全性和高阶动力学可行性,可以将轨迹完全限制在安全

xiewf的博客 8032

css中给子元素添加margin-top影响父元素

css给子元素添加margin-top影响父元素

java实现一个简单的计算器的加减乘除功能 2170

ISP图像处理Verilog仿真框架搭建(附代码)

基于Verilog的图像处理仿真框架搭建

路漫漫其修远兮,吾将上下而求索 1855

子元素的margin-top为什么会影响父元素

子元素的margin-top影响父元素的原因及解决方案

apeiziwei的博客 1786

子类元素设置margin-top,父类元素一起移动的原因以及解决思路

初学者,不要骂

qq_60614034的博客 1898

CSS - 你遇到过子元素设置margin-top影响父元素的情况吗

例如在一个div盒子元素内,需要设置一个标题,我们用一个p标签做为这个标题元素。根据UI设计要求,标题元素需要距离父div元素20px,理所当然想到的就是为标题元素设置margin-top为20px,希望可以撑开距离顶部的距离。但根据经验可知,这样做是存在问题的,父div元素会紧跟着p元素向下20px,并没有达到撑开20px的效果。先来看一下最初的代码和下图的效果。

xingyu_qie的专栏 1423

css中子元素设置margin-top影响父元素

demo代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> <style> .content_top{ width: 500p...

weixin_40763897的博客 4232

(转)MarginTop 为何影响父元素MarginTop

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

weixin_30367543的博客 91

代码设置margintop_css中子元素设置margin-top为什么影响父元素

本文介绍了css中子元素设置margin-top为什么影响父元素,分享给大家,具体如下:*{margin: 0px; padding: 0px;}.show{margin: 0px auto;width: 200px;height: 100px;background-color: #999999;}.show h2{margin-top: 50px;cursor: pointer;}crysta...

weixin_39844481的博客 110

子元素的margin-top为什么会影响父元素

1.两个元素,当你为子元素设置margin-top的时候,你会发现什么呢? 2.解决方法 父元素设置 1- overflow: hidden 2- display: inline-block;或者float布局 3- border: 1px solid transparent; 4- position: absolute

苏苏就是小苏苏的博客 3256

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

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

无止境学的博客 798

子元素margin-top为何会影响父元素

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

行云出岫 254

子元素的margin-top影响父元素

---恢复内容开始--- 之前在写项目的时候,发现原本想让父子元素之间加点边距,却让父元素产生了margin-top,于是百度之后发现了原因。 在css2.1盒模型中 In this specific...

weixin_39037804的博客 273

子元素设置margin-top影响父元素

问题描述:当我只给子元素设置了margin-top当时候,父元素却也跟着一起改变了。 代码部分: <style> .outer{ width: 200px; height: 200px; background-color: #eee; } .inner{ width: 50px; height: 50px; background-color: green; margin-top: 20px; } </style> <div class="

Panda0218的博客 352

关于子元素的margin-top影响父元素

我的第一篇博文,感觉不开个博客不行了,一是记录自己的学习历程,而是可以当做笔记来看,之前让我遇到了一个头疼的问题,现在干脆写出来以免忘了! 接下来看看这个问题“子元素为什么设置margin影响父元素margin” 我加点文字在这里 先把html,body,div的默认margin,padding设为0,。 再给父元素设置宽高,子元素设置宽高。

焕野,唤野 414

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

外边距合并问题常见于第一个子元素的margin-top会顶开父元素父元素相邻元素的间距,而且只在标准浏览器下 (FirfFox、Chrome、Opera、Sarfi)产生问题,IE下反而表现良好。例子可以查看下面代码(IE下表现“正常”,标准浏览器下查看出现“bug”):&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;    &lt;title&gt;子...

xhbd_933的博客 428

详解 layout_marginTop 与 layout_marginBottom

layout_marginTop,layout_marginBottom,layout_marginRight,layout_marginLeft 是 RelativeLayout 中的四种属性,今天在进行UI设计的时候,着实困扰了好久,索性做个总结。先上结论: layout_marginTop 指定该属性所在控件距上部最近控件的最小值; layout_marginBottom 指定该属性所在控件距

Hultron的博客 6万+

【详解marginTopmarginBottom】

layout_marginTop,layout_marginBottom,layout_marginRight,layout_marginLeft 是 RelativeLayout 中的四种属性,今天在进行UI设计的时候,着实困扰了好久,索性做个总结。 先上结论: layout_marginTop 指定该属性所在控件距上部最近控件的最小值; layout_marginBottom...

weixin_33701564的博客 1935
上一篇: TMS笔记
下一篇: 容易忘记的css用法
duran1986
博客等级 码龄17年 30粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值