margin 塌陷bug 触发bfc】的更多相关文章

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="…
首先看一下问题案例 .wrapper{             width: 100px;             height: 100px;             background-color: aqua;             margin-top: 100px;             margin-left: 100px;         }         .inner{             width: 50px;             height: 50px;  …
 一.margin合并 css经典bug  两个块级元素 分别设置 margin-bottom 和 margin-top 并不能达到预期效果 <style> .up{ width: 200px; height: 50px; background: blue; margin-bottom: 50px; } .down{ width: 200px; height: 50px; background: pink; margin-top: 50px; } </style> </hea…
只给出关键点,具体效果不做太多示范,真正的东西只有自己试了才能记住 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塌陷:两个嵌套的div,内部div的margin-top失效,内部对于外部的div并没有产生一个margin值,而是外部的div相对于上面的div产生了一个margin值. 弥补方法: 1.在父级div添加border-top:1px solid #rrggbb; 思考:采用这种解决方案,貌似会被产品经理揍死~~~,平白无故多了一像素,不能忍. 2.BFC:block format context 块级格式化上下文,创建了 BFC 的元素就是一个独立的盒子,不过只有 Block-le…
一.元素的块级与行级特性 在CSS属性display控制元素是否及如何显示的特性,常用的值有none.inline.block.inline-block,在CSS3中还有一些新的特性状态,在这里不做讨论. 这里我们主要讨论display在CSS布局中涉及到主要属性值inline.block.inline-block三个特性状态. 通常我们在使用元素做页面布局设计时会说行级元素和块级元素,我们通常也遵循块级元素搭建页面设计架构,使用行级元素和行级块元素设计内容.  行级元素(内联元素inline)…
<!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,…
**1.margin塌陷**问题:垂直方向的父子关系的盒子使用不当会产生margin塌陷.给子级设置margin-top时,他不会相对父级一起动,只有他的margin超过父级的margin时,才会生效,但会带着父级一起动(作者总结,官方定义自己查看).如: ```<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name=&quo…
首先来解释一下什么是marg塌陷? 父子嵌套元素垂直方向的margin,父子元素是结合在一起的,他们两个会取其中最大的值 正常情况下应该是父级元素相对于浏览器定位,而子级元素相对于父级元素定位 但是margin塌陷是在父级相对于浏览器定位时,子级没有相对于父级元素定位,就像父级的框框没有了,子级相对于父级就像是塌陷了 解决方法:触发bfc (块级格式化上下文) 如何触发bfc? 1.position : absolute; 2.display : inline-block; 3.float 4.…
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 > <…
一. 什么是标准文档流 文本流其实就是文档的读取和输出顺序,也就是我们通常看到的由左到右.由上而下的读取和输出形式,在网页中每个元素都是按照这个顺序进行排序和显示的,而float和position两个属性可以将元素从文本流脱离出来显示. 标准文档流的围观现象有3种: 1.空白折叠现象:多个空格或者换行会被折叠成一个. 2.高矮不齐,底边对齐. 3.自动换行,一行写不完,自动换行. <!DOCTYPE html> <html lang="en"> <head…
如果两个盒子是包含关系,如果让子盒子在父盒子之内向下平移100px:(margin塌陷现象)解决方案: padding , border , overflow <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>盒子模型</title> <style>/*margin塌陷*/ .box1 { wi…
来源于官方文档对于外边距合并的解释: 注释:只有普通文档流中块框的垂直外边距才会发生外边距合并.行内框.浮动框或绝对定位之间的外边距不会合并. 出现外边距塌陷的三种情况: 1.相邻兄弟元素之间 若两者都为正外边距以最大的外边距为准: 若存在负边距, 合并后的外边距为最大正外边距减去绝对值最大的负边距: 若无正外边距,则用0减去绝对值最大负边距. 2.父元素与第一个/最后一个子元素之间 如果块级元素的 margin-top/margin-bottom 与它的第一个/最后一个子元素的margin-t…
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>…
我工作基本上就是写业务逻辑,不怎么写页面就一直觉得页面布局特高深.有天我同事问我,知道margin塌陷是什么东西不,我说我不知道(反正我也不用,管他呢),他说面试的时候问的(...那这必须得去看啊). 其实这个东西,基本上每个人都遇到过,只不过你不知道它的专业术语而已. 你写两个嵌套div的时候 <div id="div1" style="width:200px;height:200px;background:yellow"> <div id=&q…
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,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑. 我们来看一个例子: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>margin塌陷</title> <style type="text/css"> *…
盒模型.浮动和定位是CSS中最重要的三个概念.它们共同决定了一个元素在页面中以怎样的形式进行排布与显示. 一.盒模型 1. 定义 盒模型是CSS的核心概念.一个页面中,所有的元素(不管他最终显示是圆形.矩形还是三角形)都被看作一个矩形盒子,这个盒子包含了内容区.内边距.边框和外边距. 图1. CSS盒模型 我们可以把它想象成现实世界中网购的快递盒子,外边距就是这个盒子离其他盒子的距离,边框就是这个盒子的材料,内边距就是内层缓震的泡沫,而内容区自然就是你网购的物品.但难以理解的是CSS的盒模型与现…
margin的塌陷现象 标准文档流中,竖直方向的margin不叠加,以较大的为准. 如果不在标准流,比如盒子都浮动了,那么两个盒子之间是没有塌陷现象的: 盒子居中margin:0 auto; margin的值可以为auto,表示自动.当left.right两个方向,都是auto的时候,盒子居中了: margin-left: auto; margin-right: auto; 简写为 margin: auto; 表示上下,auto表示左右 注意: 1) 使用margin:0 auto; 的盒子,必…
问题来源 今天做项目的时候发现了一个问题,在使用text-indent属性对元素进行缩进是发现在360浏览器下发生了元素偏移,跟margin-left的效果一样,打开f12发现3607.1浏览采用的ie7.0的文档模式,果然在ie7里面测试是一样的结果 IE7下效果 其他浏览器下效果 之所以这样是因为ie6.7浏览器不支持display属性的inline-block值,你设置了也会忽视,而恰巧我的页面中的元素就使用了display:inline-block属性,但是在ie7看来就是inline…
<!DOCTYPEHTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <metaname=""content=""> <style> *{ margin:0px; padding:0px; }   #no1{ background:#808000; wi…
在进行简单的div盒子嵌套时,发现设置margin-top时存在bug,然后就去谷歌搜索了一下,发现margin确实存在bug. bug的现象是父子元素嵌套时,如果子元素是块元素时,对块元素设置margin-top ,如果父元素没有边框,那么margin-top会作用在父元素上. 下面是body里的代码: <div class="red"> <div class="black"></div> </div> style里…
继续上一次的学习,这次又发现了margin的第二个bug.既当同时对两个相邻的div盒子设置margin时,他们之间的间隙不能正常显示. 具体表述为:先建立两个div1和div2 <div class="div1"></div> <div class="div2"></div> div2设置成margin-top,div1设置margin-bottom,代码如下: .div1{ width: 200px;height:…
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的…
1.在标准文档流中,块级标签之间竖直方向的margin会以大的为准,这就是margin的塌陷现象. 但是,脱标之后就不会出现margin的塌陷现象. 2.margin:0 auto;  会让盒子水平居中,但是他有他的使用注意事项: 标准流的盒子而且有宽度的盒子才能用margin:0 auto;让其居中:文本居中要使用text-align:center;.…
原文地址:margin系列之bug巡演 by @doyoe IE6浮动双倍margin bug 这当是IE6最为经典的bug之一. 触发方式 元素被设置浮动 元素在与浮动一致的方向上设置margin值 来看看详细的代码吧: HTML <div id="demo"> <p>IE6下浮动方向上的margin值将会双倍于其指定值</p> </div> CSS #demo { overflow: hidden; width: 400px; mar…
塌陷问题 当两个盒子在垂直方向上设置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…
IE6中很多Bug都可以通过触发layout得到解决,以上的解决方法无论是设置zoom:1还是设置width和height其实都是为了触发layout.下列的CSS属性或取值会让一个元素获得layout: position:absolute 绝对定位元素的包含区块(containing block)就会经常在这一方面出问题float:left|right 由于layout元素的特性,浮动模型会有很多怪异的表现 display:inline-block 当一个内联级别的元素需要layout的时候就…