解决margin塌陷问题】的更多相关文章

首先来解释一下什么是marg塌陷? 父子嵌套元素垂直方向的margin,父子元素是结合在一起的,他们两个会取其中最大的值 正常情况下应该是父级元素相对于浏览器定位,而子级元素相对于父级元素定位 但是margin塌陷是在父级相对于浏览器定位时,子级没有相对于父级元素定位,就像父级的框框没有了,子级相对于父级就像是塌陷了 解决方法:触发bfc (块级格式化上下文) 如何触发bfc? 1.position : absolute; 2.display : inline-block; 3.float 4.…
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>嘿嘿嘿</title> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no,…
父元素添加: border: 1px solid transparent; 或者 over-flow:hidden;…
来源于官方文档对于外边距合并的解释: 注释:只有普通文档流中块框的垂直外边距才会发生外边距合并.行内框.浮动框或绝对定位之间的外边距不会合并. 出现外边距塌陷的三种情况: 1.相邻兄弟元素之间 若两者都为正外边距以最大的外边距为准: 若存在负边距, 合并后的外边距为最大正外边距减去绝对值最大的负边距: 若无正外边距,则用0减去绝对值最大负边距. 2.父元素与第一个/最后一个子元素之间 如果块级元素的 margin-top/margin-bottom 与它的第一个/最后一个子元素的margin-t…
我工作基本上就是写业务逻辑,不怎么写页面就一直觉得页面布局特高深.有天我同事问我,知道margin塌陷是什么东西不,我说我不知道(反正我也不用,管他呢),他说面试的时候问的(...那这必须得去看啊). 其实这个东西,基本上每个人都遇到过,只不过你不知道它的专业术语而已. 你写两个嵌套div的时候 <div id="div1" style="width:200px;height:200px;background:yellow"> <div id=&q…
margin塌陷 先举个例子 <style> body{ background-color:#000; } .wrapper{ width:200px; height:200px; background-color:red; margin-top:100px; } .box{ width:50px; height:50px; background-color:#eee; opacity:0.8; } </style> </head> <body > <…
盒模型.浮动和定位是CSS中最重要的三个概念.它们共同决定了一个元素在页面中以怎样的形式进行排布与显示. 一.盒模型 1. 定义 盒模型是CSS的核心概念.一个页面中,所有的元素(不管他最终显示是圆形.矩形还是三角形)都被看作一个矩形盒子,这个盒子包含了内容区.内边距.边框和外边距. 图1. CSS盒模型 我们可以把它想象成现实世界中网购的快递盒子,外边距就是这个盒子离其他盒子的距离,边框就是这个盒子的材料,内边距就是内层缓震的泡沫,而内容区自然就是你网购的物品.但难以理解的是CSS的盒模型与现…
首先看一下问题案例 .wrapper{             width: 100px;             height: 100px;             background-color: aqua;             margin-top: 100px;             margin-left: 100px;         }         .inner{             width: 50px;             height: 50px;  …
**1.margin塌陷**问题:垂直方向的父子关系的盒子使用不当会产生margin塌陷.给子级设置margin-top时,他不会相对父级一起动,只有他的margin超过父级的margin时,才会生效,但会带着父级一起动(作者总结,官方定义自己查看).如: ```<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name=&quo…
一. 什么是标准文档流 文本流其实就是文档的读取和输出顺序,也就是我们通常看到的由左到右.由上而下的读取和输出形式,在网页中每个元素都是按照这个顺序进行排序和显示的,而float和position两个属性可以将元素从文本流脱离出来显示. 标准文档流的围观现象有3种: 1.空白折叠现象:多个空格或者换行会被折叠成一个. 2.高矮不齐,底边对齐. 3.自动换行,一行写不完,自动换行. <!DOCTYPE html> <html lang="en"> <head…
只给出关键点,具体效果不做太多示范,真正的东西只有自己试了才能记住 BFC BFC触发: 1.position:absolute/fixed 2.float:left/right 3.display:inline-block 4.overflow:hidden/scroll 关于触发方法还有一些table-cell之类的触发方法,但是已经很少用 BFC特性: 1.触发BFC的元素,内部元素不会影响到外部其他元素 2.BFC可以看到浮动元素(包括内部元素),文本元素也能看到浮动元素 (提一下flo…
margin合并 当两个元素在垂直方向并列,分别设置margin值时会发生一个margin合并的现象 举个例子,有两个div,垂直并列,box1设置margin-bottom:20px,box2设置margin-top:50px, <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title>…
如果两个盒子是包含关系,如果让子盒子在父盒子之内向下平移100px:(margin塌陷现象)解决方案: padding , border , overflow <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>盒子模型</title> <style>/*margin塌陷*/ .box1 { wi…
1.margin塌陷 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>margin的塌陷</title> <style type="text/css"> *{ padding: 0; margin: 0; } .box1{ width: 300px; height: 200…
一.同级块级元素塌陷 html <h2> 同级块级元素塌陷 </h2> <div class="block1"> block1 </div> <div class="block2"> block2 </div>    <div class="block3">        <div class="ib1 ib">          …
margin塌陷:两个嵌套的div,内部div的margin-top失效,内部对于外部的div并没有产生一个margin值,而是外部的div相对于上面的div产生了一个margin值. 弥补方法: 1.在父级div添加border-top:1px solid #rrggbb; 思考:采用这种解决方案,貌似会被产品经理揍死~~~,平白无故多了一像素,不能忍. 2.BFC:block format context 块级格式化上下文,创建了 BFC 的元素就是一个独立的盒子,不过只有 Block-le…
当时说到了盒模型,盒模型包含着margin,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑. 我们来看一个例子: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>margin塌陷</title> <style type="text/css"> *…
1.overflow:hidden  溢出隐藏 给一个元素中设置overflow:hidden ,那么该元素的内容若超出了给定的宽度和高度属性,那么超出的部分将会被隐藏,不占位. 代码如下: 运行结果如下: 2. overflow:hidden 清除浮动 一般而言,父级元素不设置高度时,高度由随内容增加自适应高度.当父级元素内部的子元素全部都设置浮动float之后,子元素会脱离标准流,不占位,父级元素检测不到子元素的高度,父级元素高度为0.那么问题来了,如下: 运行结果如下: 如上,由于父级元素…
塌陷问题 当两个盒子在垂直方向上设置margin值时,会出现一个有趣的塌陷现象. ①垂直并列 首先设置两个DIV,并为其制定宽高 1 /*HTML部分*/ 2 <body> 3 <div class="box1">box1</div> 4 <div class="box2">box2</div> 5 </body> 6 /*CSS部分*/ 7 <style> 8 *{ 9 margi…
有两个有嵌套关系的div,如果外层div的父元素的padding值为0,那么内层子div的margin-top或margin-bottom的值会转移给外层的父div,即magrin塌陷现象. 解决办法: 1.在父元素div上加上:overflow:hidden; 2.把margin-top外边距改成padding-top内边距: 3.父元素div产生边距重叠的边有不为0的padding或宽度不为0且style不为none的border;父元素添加padding-top:1px; 4.让父元素生成…
场景:两个相互嵌套的块级元素,父子元素相互紧贴margin-top会合并作用在父元素的子元素结果:导致两个盒子同时移动 解决方法: 1.给父元素设置overflow:hidden 2.给父元素设置浮动       /* float:left */ 3.将父元素转为行内块元素  /*display:inline-block*/ 注意:1.在行内元素中垂直方向的margin和padding是无效使用的 2.如果两个盒子(块元素),子盒子不设置宽度使用的父元素的宽度,设置margin和padding是…
<!DOCTYPEHTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <metaname=""content=""> <style> *{ margin:0px; padding:0px; }   #no1{ background:#808000; wi…
1: <!DOCTYPEHTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> 2: <html> 3: <head> 4: <title></title> 5: <metaname=""content=""> 6: <style> 7: *{ 8: margin:0px; 9: padding:0px; 10: }…
一.两个div并列,上面div的margin-bottom和下面div的margin-top会塌陷,也就说会取上面div的margin-bottom和下面div的margin-top的最大值作为两个并列div中间的margin显示值.解决方法:两个div并列,只设置其中一个块上或下margin的一处即可. 二.父块div内含子块div,且父div没有border-top.padding-top或overflow:hidden这些css属性,这时父.子div的margin-top值会取两个div的…
margin的塌陷现象 标准文档流中,竖直方向的margin不叠加,以较大的为准. 如果不在标准流,比如盒子都浮动了,那么两个盒子之间是没有塌陷现象的: 盒子居中margin:0 auto; margin的值可以为auto,表示自动.当left.right两个方向,都是auto的时候,盒子居中了: margin-left: auto; margin-right: auto; 简写为 margin: auto; 表示上下,auto表示左右 注意: 1) 使用margin:0 auto; 的盒子,必…
  对于以下简单代码: 如果您认为应该是这样的话: 那就错了.结果是这样的: 因为CSS中存在一个margin collapse,即边界塌陷或者说边界重叠.对于上下两个并列的div块而言,上面div的margin-bottom和下面div的margin-top会塌陷,也就是会取上下两者margin里最大值作为显示值,所以从这个意义上说:CSS及浏览器的设计者们希望我们在布局时,如果遇到上下两个并排内容块的安排,最好只设置其中每个块上或下margin的一处即可. 但对于父块DIV内含子块DIV的情…
浮动会使元素尽量向左或向右移动,直到碰到包含框或另外一个浮动元素的盒子模型的边缘 包含框并不会改变里面浮动元素的宽高,浮动元素宽高不会限制在包含块以内 <!DOCTYPE html> <html> <head> <style type="text/css"> * { margin:0; padding:0; } .container { width:110px; height:100px; border:1px solid blue; }…
1.在标准文档流中,块级标签之间竖直方向的margin会以大的为准,这就是margin的塌陷现象. 但是,脱标之后就不会出现margin的塌陷现象. 2.margin:0 auto;  会让盒子水平居中,但是他有他的使用注意事项: 标准流的盒子而且有宽度的盒子才能用margin:0 auto;让其居中:文本居中要使用text-align:center;.…
margin重叠有两种情况: 1.兄弟级的垂直块之间,margin这个属性上下边距,会发生重叠的情况 解决办法:float浮动或display:inline-block 2 .父子级的块之间,子级的上下margin会与父级上下margin重叠 解决办法:父级加overflow:hidden或加padding或加border,子级加position:absolute…
1.bfc block format context 2.如何触发一个盒子的bfc position:absolute; display: inline-block float:left/right; overflow:hidden; <html> <head> <link rel="stylesheet" href="cs2.css"> </head> <body> <div class="…