zoukankan      html  css  js  c++  java
  • inline-block BFC 边距合并

    在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?

    首先,外边距的合并出现在垂直方向上,两个块级元素垂直外边距相邻时,两者的原外边距会合并成一个高度等于两者中较大的新外边距。

    在正常的文档流下,没有边框,没有padding,但有外边距时,上下的margin会出现合并,高度等于两者中的较大者。

    不让相邻元素外边距合并的方法:

    • 加外边框,加padding;
    • 父元素加overflow(不为visible);
    • 父元素加display:inline-block;
    • 父元素加float;

    父容器使用overflow: auto| hidden撑开高度的原理是什么?

    overflow:auto|hidden会触发BFC,由于BFC可以包含浮动,故可以感知浮动元素的高度,所以可以撑开高度。

    BFC是什么?如何形成BFC,有什么作用?

    BFC(块级元素格式上下文)形成了一个独立的空间,空间内部不受外部元素影响。

    如何形成BFC:

    1.根元素

    2.display:inline-block|table-cell|table-caption|flex|inline-flex;

    3.position:absolute|fixed;

    4.overflow:auto|hidden|scroll;

    5.float:right|left|both;

    有什么作用?

    1.可以清除浮动,包含浮动元素;

    2.不被浮动元素覆盖;

    3.阻止外边距折叠。

    浮动导致的父容器高度塌陷指什么?为什么会产生?有几种解决方法

    由于浮动脱离文档流,浮动元素不会影响父元素的宽度,使父元素的高度为“0”,从而形成高度塌陷。

    一般有两种解决办法:

    1.用clear清除浮动;

    2.使父容器形成BFC。 

    以下代码每一行的作用是什么? 为什么会产生作用? 和BFC撑开空间有什么区别?

    .clearfix:after{
        content: '';
        display: block;
        clear: both;
    }
    .clearfix{
        *zoom: 1;
    }

     作用:清除浮动

    给类选择器clearfix的元素添加一个伪类after,添加内容为空的块级元素,清除两边的浮动。

    *zoom用来触发IE浏览器下的hasLayout,解决浏览器不兼容问题。

    和BFC的区别:

    通过伪类清除浮动元素,并不是父元素感觉到了子元素中的浮动元素,而是在后面添加了一个块级元素。而元素形成BFC,是因为元素感觉到了子元素中浮动元素的宽度,而不是通过添加元素撑开父元素。

  • 相关阅读:
    《代码整洁之道》阅读笔记(三)
    pyqt5知识
    软件开发的生命周期
    软件过程与管理CMMI
    pyQt5练习(三)
    pyQt5练习(二)
    《代码整洁之道》阅读笔记(二)
    pyQt5练习(一)
    Android Studio错误:Connect to 127.0.0.1:1080 [/127.0.0.1] failed: Connection refused: connect
    AndroidStudio:Minimum supported Gradle version is XXX Current version is XXX
  • 原文地址:https://www.cnblogs.com/xiulingy/p/6211690.html
Copyright © 2011-2022 走看看