为什么子元素设置margin-top会作用在父元素上?

原因在于:CSS 外边距合并

复现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
html * {
      margin:0;
      padding: 0;
}
</style>
<body>
    <section style = "background:orange;">
        <article style  =‘height:100px;margin-top:40px;background:red‘></article>
    </section>
</body>
</html>

这里子元素设置margin-top会作用在父元素上了。

解决方法:

1、为父元素设置padding。 
2、为父元素设置border。 
2、为父元素设置 overflow: hidden 。

原文地址:https://www.cnblogs.com/aiyr/p/9962748.html

时间: 2024-11-07 12:44:49

为什么子元素设置margin-top会作用在父元素上?的相关文章

子元素用margin-top 为什么反而作用在父元素上?对使用margin-top 的元素本身不起作用?

在这个说明中,“collapsing margins”(折叠margin)的意思是:2个或以上盒模型之间(关系可以是相邻或嵌套)相邻的margin属性(这之间不能有非空内容.padding区域.border边框或使用清除分离方法)结合表示为一个单独的margin.在css2.1中,水平的margin不会被折叠.垂直margin可能在一些盒模型中被折叠:1.在常规文档流中,2个或以上的块级盒模型相邻的垂直margin会被折叠.最终的margin值计算方法如下:a.全部都为正值,取最大者:b.不全是

为什么margin-top不是作用于父元素

为什么margin-top不是作用于父元素:至于margin-top属性的基本用法再简单不过,那就是设置一个对象的上外边距,看下面的代码实例: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" conten

[ jquery 过滤器 parents(expr) ] 此方法用于在选择器的基础之上搜索被选元素沿着父元素链找到符合参数的那个父元素,完成需求,如果没有参数,他会一直沿着父元素链解析到 html 标签

取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素 "!DOCTYPE html").可以通过一个可选的表达式进行筛选 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords

垂直居中——父元素高度确定的单行文本、父元素高度确定的多行文本

声明:来自http://www.imooc.com/learn/9 学习 父元素高度确定的单行文本的竖直居中 是通过设置父元素的 height 和 line-height 高度一致来实现的. .container{ height:100px; line-height:100px; background:#999; } 父元素高度确定的多行文本 使用插入 table (包括tbody.tr.td)标签,同时设置 vertical-align:middle. <body> <table>

元素设置float属性后,其后面的元素的位置问题

分两种情况: .content{ width:350px; height:150px; color:#fff; } .content1,.content2{ background-color: #00f; } .content2{ margin-top:10px; } .one{ background-color:#f00; float: left; } .two{ background-color: #3dfeca; } .content1 .one, .content2 .one{ heig

父元素如何围住浮动子元素

当元素使用float属性,将脱离文档流,因此父元素便不会包围它. <section> <div class="左栏"> 我是左栏 我是左栏 我是左栏 我是左栏 </div> <div class="右栏"> 我是右栏 </div> </section> <footer>我是页脚</footer> CSS样式如下: section{ border: 1px solid #3

子元素要绝对定位时,父元素应该怎么办?

昨天做练习时,遇到了这个问题: 如果子元素设置绝对定位(absolute),父元素需要设置相对定位(relative),否则子元素就不知道会飘到哪去了. 但总觉得还是没搞清楚,就去百度了,得到了一些见解,以下: 一.表 实现子元素在父元素中的绝对定位必须满足以下两个条件: 1.父元素要有相对定位属性(position:relative), 2.子元素设置绝对定位(position:absolute),并且同时加四个方向(top,bottom,left,right)的任意方向的属性值 <!DOCT

margin并不能够扩大父元素的尺寸

margin并不能够扩大父元素的尺寸:很多初学者以为设置margin外边距能够撑开父元素,其实并不是这样的.代码如下: <!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落</titl

margin-top影响父元素定位

写样式时无意中发现margin-top会影响到父元素的定位,下面是示例: HTML代码: <div class="demo"> <div class="inner"> 子元素 </div> </div> CSS代码: .demo{ width: 100%; height: 100%; background: #a4c1de; } .inner{ width: 200px; height: 200px; backgrou