关于margin

时间:2023-12-26 08:27:37

----W3School

    -----margin

    CSS 边距属性定义元素周围的空间。通过使用单独的属性,可以对上、右、下、左的外边距进行设置。也可以使用简写的外边距属性同时改变所有的外边距。

    

    这个简写属性设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度。

    块级元素的垂直相邻外边距会合并,而行内元素实际上不占上下外边距。行内元素的的左右外边距不会合并。同样地,浮动元素的外边距也不会合并。允许指定负的外边距值,不过使用时要小心。

    margin中的一个重要问题---margin合并(垂直方向塌陷问题)的问题

      描述:设置在垂直方向上的margin会在上下两个元素的margin中作出选择,选择较大的一个进行设置

      不过margin合并问题也是需要条件的

        1.水平margin不会合并

        2.两个上下渲染相邻(不一定是兄弟节点)的块状元素在正常页面流情况下会发生margin合并

        3.浮动元素不会和任何元素(包括子孙节点)发生margin合并

        4.overflow!=visible的元素不和任何元素发生margin合并

        5.任何绝对定位的元素不和任何元素发生margin合并

        6.inline-block的元素不和任何元素发生margin合并

        7.设置clear属性的元素不和任何元素发生margin合并

        8.根元素不和任何元素发生margin合并

        9.父节点和第一个子节点发生margin-top合并

        10.如果最后一个子节点没有border以及padding,则和其父节点发生margin-bottom合并

注意:上面的条件反过来也会是解决的办法