首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

webkit中BFC元素临近浮动元素bug

一直以来我们都很熟悉IE浮动加倍”bug,并且绝大多数重构人员都已经很擅长在需要浮动时就直接绕过他。...其实以webkit为核心浏览器,包括但不限于Safari和Chrome,也有一个关于浮动bug,同样会造成布局错误。...这个BFC元素没有指定宽度值(或者指定width:auto) 当满足触发条件时,该BFC元素另一侧将不再受css控制(在webkit核心浏览器下),而是由你所指定浮动元素相同决定,即使你在...具体来说,可以分为两种情况: 当BFC与浮动方向相同小于或等于浮动元素占据总宽度(width+margin+padding+border)时,BFC另一侧等于所设定方向上(下图前两种情况...); 当BFC与浮动方向相同大于浮动元素占据总宽度时,BFC另一侧等于浮动元素占据总宽度(下图第三种情况)。

1.6K50

【CSS】盒子模型外边 ④ ( 元素默认外边 | 清除元素默认内外边 | 行内元素设置 )

文章目录 一、元素默认外边 1、body 标签默认外边 2、p 标签默认外边 二、清除元素默认内外边 1、清除方式 2、代码示例 三、行内元素设置 一、元素默认外边 ---...---- 1、清除方式 使用 通配符选择器 设置 清除内外边 样式 , 将所有的标签元素 默认内外边 全部设置为 0 ; 清除标签默认内外边 样式 : * { /* 清除标签默认内边...padding: 0; margin: 0; } 样式 ; 查看 p 标签样式 , 其 上下边 也消失了 ; 三、行内元素设置 ---- 为 行内元素 设置 上下边 是无效 , 建议只为...四个方向 , 仅左右边生效 */ margin: 50px; } 行内元素 ...p 标签 默认外边 显示效果 : 按下 F12 键 , 进入 调试模式 , 选中 span 行内元素 , 为其设置 四个 , 只有 左右边 50px

2.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

由position属性引申关于css进阶讨论(包含块、BFC、margin collapse)

也就是说,上下两个块级盒之间由它们之中较大元素决定,而不是他们和!...格式化则表明了在这个环境中,元素处于此环境中应当被初始化,即元素在此环境中应当如何布局等。元素如果创建了BF么BFC决定了如何对其内容进行定位,以及它与其他元素关系和相互作用。...在一个BFC中,两个相邻块级盒子垂直外边会产生折叠。即是在BFC中相邻块级元素垂直折叠(collapse)。...名词解释: 折叠:在CSS当中,相邻两个盒子(可能是兄弟关系也可能是祖先关系)外边可以结合成一个单独外边。这种合并外边方式被称为折叠,并且因而所结合成外边称为折叠外边。...折叠结果: 两个相邻外边都是正数时,折叠结果是它们两者之间较大值。 两个相邻外边都是负数时,折叠结果是两者绝对值较大值。 两个外边一正一负时,折叠结果是两者相加和。

1.1K50

CSS 面试要点:盒模型

,还可以取得相对于视窗上下左右距离 # 重叠 两个垂直外边相遇时,会发生折叠,合并后外边高度等于两折叠外边中最高那个。...只有普通文档流中垂直外边才会发生折叠,行内元素浮动元素或绝对定位之间外边不会发生折叠。...,也是浮动元素与其他元素交互区域。...# BFC 渲染规则 BFC 元素垂直方向会发生重叠,属于不同 BFC 外边不会发生重叠 BFC 区域不会与浮动元素布局重叠 BFC元素是一个独立容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素...计算BFC高度时候,浮动元素也会参与计算(清除浮动) # 创建 BFC 方式 根元素() 浮动元素 (float 值不为 none) 绝对定位元素 (position 值为 absolute

53460

理解 Css 布局和 BFC

BFC 还会导致一些其他有用行为。 BFC 可以防止 margin 折叠 了解合并是另一个被低估 CSS 技能。在下一个示例中,假设有一个背景颜色为灰色 div。...这种合并外边方式被称为折叠,并且因而所结合成外边称为折叠外边折叠结果按照如下规则计算: 两个相邻外边都是正数时,折叠结果是它们两者之间较大值。...两个相邻外边都是负数时,折叠结果是两者绝对值较大值。 两个外边一正一负时,折叠结果是两者相加和。 产生折叠必备条件:margin必须是邻接!...如果我们把盒子设为 BFC,它现在包含了标签 p 和它们,这样它们就不会折叠,我们可以看到后面容器灰色背景。...不过无论如何,你现在应该已经理解了什么是 BFC,以及如何使用 overflow 或其他方法来包裹浮动,以及知道了 BFC 可以阻止元素去环绕浮动元素,如果你想使用弹性或网格布局可以在一些不支持他们浏览器中使用

1.4K00

元素margin-top导致父元素移动问题

问题分析 在MDN上面有这么一段文字: 块上外边(margin-top)和下外边(margin-bottom)有时合并(折叠)为单个,其大小为单个最大值,这种行为称为折叠。...有三种情况会产生折叠: 1、同一层相邻元素之间 元素A 元素B .A, .B { width...: 1px 0) 子元素采用浮动float或者定位position 方式排列。...solid transparent; middle元素设置padding:padding-top: 1px; 注意事项 如果参与折叠margin中包含负值,折叠margin值为最大与最小...如果所有参与折叠外边都为负,折叠外边值为最小值。这一规则适用于相邻元素和嵌套元素

2.3K20

理解 CSS 布局和 BFC

BFC 还会导致一些其他有用行为。 BFC 可以防止 margin 折叠 了解合并是另一个被低估 CSS 技能。在下一个示例中,假设有一个背景颜色为灰色 div。...这种合并外边方式被称为折叠,并且因而所结合成外边称为折叠外边折叠结果按照如下规则计算: 两个相邻外边都是正数时,折叠结果是它们两者之间较大值。...两个相邻外边都是负数时,折叠结果是两者绝对值较大值。 两个外边一正一负时,折叠结果是两者相加和。 产生折叠必备条件:margin必须是邻接!...如果我们把盒子设为 BFC,它现在包含了标签 p 和它们,这样它们就不会折叠,我们可以看到后面容器灰色背景。...不过无论如何,你现在应该已经理解了什么是 BFC,以及如何使用 overflow 或其他方法来包裹浮动,以及知道了 BFC 可以阻止元素去环绕浮动元素,如果你想使用弹性或网格布局可以在一些不支持他们浏览器中使用

1.1K00

《精通CSS》第3章 可见格式化模型

最后,内边、边框和外边框可以应用于元素,也可以单独用于某一。外边甚至可以使用负值,从而使得元素在页面中移动。...包含块并不一定就是父元素,后面我们会介绍。 3.1.3 外边折叠 前面,我们认识了各种盒子以及如何计算盒子大小。 其中外边只会影响元素元素之间距离,是一个比较简单概念。...外边折叠有以下几种情况(很重要!)。 当两个元素垂直堆叠时,上方元素下边会与下方元素上边发生折叠。...甚至同一个元素外边也会折叠,如果存在一个空元素,只有外边没有边框和内边,此时自身上下边接触,发生折叠折叠外边又接触其他元素外边,还会继续折叠。...而有了外边折叠就不会这样了。所以外边折叠是为了排版而生。 最后,外边折叠只会发生在常规文档流中块级盒子垂直方向上。行内盒子、浮动盒子或绝对定位盒子外边都不会折叠

1.3K20

CSS 面试要点:BFC(块级格式化上下文)

HTML 文档中位置决定 浮动 元素先按照普通流位置出现,再根据浮动方向尽可能向左或向右偏移,效果与印刷排版中文本环绕相似 绝对定位 元素会整体脱离普通流,因此绝对定位元素不会对其兄弟元素造成影响...元素具体位置由绝对定位坐标决定 # BFC 格式化上下文(Formatting Context)指页面中一块渲染区域,并且有一套渲染规则,它决定了其子元素如何定位,以及和其他元素关系和相互作用...display 属性值为 inline-block | table-cell | flex overflow 属性值为 hidden | scroll | auto # BFC 特性及应用 # 避免外边折叠...同一个 BFC 下外边会发生折叠 https://codepen.io/cellinlab/pen/yLvRvEM 如果要避免外边折叠,可以将其放在不同 BFC 中 https://codepen.io...所以容器只剩 2px 高度。

32820

外边折叠(Margin collapsing)笔记?

定义 外边折叠是指有时候上边与下边坍缩成较大那一个行为。它只会发生在同一BFC块级元素间,并且永远不会发生在浮动元素或绝对定位元素间。...可能情况 毗邻兄弟元素 相邻兄弟元素垂直会发生折叠,但最后一个元素需要清除浮动时例外。...父元素和第一个/最后一个子元素元素与第一个子元素margin-top可能重合,与最后一个子元素margin-bottom可能重合。...如果要在这种情况下避免外边折叠,请将两者margin区分开。区分margin-top方法有设置border、padding、inline content、清除浮动、避免创建BFC区域。...空区块 如果一个块级元素没有border、padding、inline content(行内内容)、height或者min-height将其与其他元素分开,这个块级元素margin将会被折叠

86230

CSS margin合并问题

CSS 外边合并问题 在CSS当中,相邻两个盒子(可能是兄弟关系也可能是祖先关系)外边可以结合成一个单独外边。这种合并外边方式被称为折叠,并且因而所结合成外边称为折叠外边。...'值为'visible'以外元素)与它元素外边不会折叠 浮动元素不与任何元素外边产生折叠(包括其父元素和子元素) 绝对定位元素不与任何元素外边产生折叠 inline-block元素不与任何元素外边产生折叠...注意: 浮动元素和绝对定位元素不与其他盒子产生外边折叠是因为元素会脱离当前文档流,违反了上面所述两个margin是邻接条件同时,又因为浮动和绝对定位会使元素为它内容创建新BFC,因此该元素和子元素所处...但是浮动元素脱离了当前BFC并不影响它后面的兄弟元素,后面的兄弟元素浮动元素前面的元素依然在同一个BFC当中,所以,它们之间margin还是会折叠。...使元素或子元素声明为绝对定位:position:absolute/fixed; 给父元素添加属性 overflow:auto/auto/scroll; 子元素margin使用父元素padding

1.2K30

CSS 布局

如何形成?特点是什么?有哪些应用场景?...#如何形成元素() 浮动元素(float 值不为 none) 绝对定位元素元素 position 为 absolute 或 fixed) 行内块元素元素 display 是...#BFC 特点 BFC 垂直方向(margin)重叠 BFC 是一个独立容器,外面的元素不会影响到里面的元素 BFC 区域与会与浮动元素 box 重叠 计算 BFC 高度时候浮动元素也会参与计算...#应用场景 防止浮动后导致元素高度塌陷 也就是清楚浮动,就是将父元素变为一个 BFC 就可以解决。...如设置:overflow:hidden; 避免外边折叠 两个块同在一个 BFC 会造成垂直方向外边折叠,但如果对这两个块分别设置 BFC,那么重叠问题就不存在了。

1.1K20

那些年,我们被耍过bug——haslayout

:1%; IE6 躲躲猫(peek-a-boo) bug bug 修复: _height:1%; 这里列出触发 hasLayout 元素一些效果 1.阻止外边折叠 两个相连 div 在垂直上外边会发生叠加...上图例子中,三个 div 各包含一个 p 元素,三个 div 及其包含 p 元素都有顶部和底部外边,但只有第三个 div 没有与它元素 p 外边折叠。...这是因为第三个 div 使用 zoom: 1 触发了 hasLayout ,阻止了它与它元素外边折叠。...另外,例子中也使用了 overflow: hidden 触发元素 BFC ,这利用了 BFC 阻止外边折叠特性达到元素在 IE 与现代浏览器下表现统一。...2.可以包含浮动元素,即计算高度时包括其浮动元素 效果如图: ?

66010

clearfix改良及overflow:hidden详解

这篇短文介绍了如何改进clearfix进行增强,同时对overflow:hidden进行了深入解释。...),尽管这样做我们还需要处理由clearfix造成折叠bug(译者注:指clearfix盒子内部元素垂直被扩展到盒子之外)。...该页面中最开始两个盒模型叠加行为(底边保留在盒子内部,顶则到了盒子外部)说明:生成内容将盒子内部元素保留保留在了盒子内部,而在其它浏览器下边将被扩展到盒子边缘之外。...,符合w3c关于垂直叠加说明。...更好选择 如果你可以对包含浮动元素应用宽度,那么更好办法是用下面的样式来清除浮动: selector { display: inline-block; width: ; } 引申阅读

1.3K80

理解CSS布局和块格式化上下文

[image.png] 在进行html布局及css编写时候,你是否遇到过这样问题: 子元素设置浮动脱离文档流后,父元素无法将其完全包裹 子元素浮动实现两栏布局时,另一个子元素浮动元素重叠 垂直方向外边...常见应用场景 使元素包含浮动元素 下面例子解释如何浮动内容和父元素等高,清楚浮动负面影响 html I am a floated....outer { overflow: auto; } [enter image description here] BFC防止垂直外边重叠 外边折叠规则是:当两个块级元素相邻并且在同一个块级格式化上下文时...div上之间没有内容,因此两者将会合并,因此段落最终与框顶部和底部齐平。...设置浮动情况下,我可以通过使右边div成为BFC,使两个兄弟div互相隔离、互不影响,从而达到去除文字环绕效果。

2.1K30
领券