margin-top塌陷

margin-top塌陷

一、问题描述 ​ 在两个及以上的盒子嵌套时候,内部的盒子设置的 margin-top 的效果会加到最外边的盒子上,导致内部的盒子margin-top设置失败。 – 示例描述: ==设计一个box1盒子,内部嵌套一个box2盒子,box2内再嵌套一个盒子box3== > 即 box1>box2>box3 通过 box3 的 margin-top 的塌陷,可以看出margin-top传递到了 ==最外层==。

margin-top塌陷问题

一、问题描述

​ 在两个及以上的盒子嵌套时候,内部的盒子设置的 margin-top 的效果会加到最外边的盒子上,导致内部的盒子margin-top设置失败。

  • 示例描述 设计一个box1盒子,内部嵌套一个box2盒子,box2内再嵌套一个盒子box3

    box1>box2>box3 通过 box3 的 margin-top 的塌陷,可以看出 如果box1和box2都没有边框或没有做特殊方案处理,box3的margin-top效果就会传递到 最外层

  • 先展示问题的情况

  • 提供解决方案

代码描述:


        margin-top的塌陷

                        /*.clearfix:before{
                content: '';
                display:table;
            }*/

                        .box1{
                width:400px;
                                /*width: 406px;*/
                height:200px;
                background-color: pink;
                margin:0px auto 0px;
                  }
            .box2{
                width:400px;
                height:100px;
                                /*border:3px dashed #000;*/
                                /*overflow:hidden;*/
                  }
            .box3{
                width: 396px;
                height:50px;
                border:2px dashed red;
                                /*box3塌陷*/
                margin-top: 20px;
                  }

  • *图片示意:

塌陷前:

即先 注释 掉box3样式里的 margin-top:20px; 注意看最顶部是与浏览器顶部 接触的
PS:下图中,蓝色部分是通过Ctrl+Shift+C,鼠标审查元素,指示到box2,用于显示box2的颜色,并非实际box2的背景色,box2没有设定背景色(请仔细看上方代码)

margin-top塌陷

塌陷后:

取消box3样式里的注释 margin-top:20px;

margin-top塌陷

情况分析:

① 注意看浏览器顶部和最外层的盒子box1出现了距离,虽然实际还是box3里的margin-top样式,但却将效果表现在了box1上。

② 而正常情况应该是box3与box2之间产生分离才对,所以这就是 margin-top 的塌陷

二、解决办法

1. 外部盒子设置一个边框

即为box2的盒子设置边框,并且为box1的宽度重新设置一下,以免元素溢出

.box1{
    width:400px;
        width: 406px;
    height:200px;
    background-color: pink;
    margin:0px auto 0px;
     }
.box2{
    width:400px;
    height:100px;
    border:3px dashed #000;
     }

效果如下:

margin-top塌陷

box1与最初一样,box2就加上一句 overflow:hidden;

.box2{
    width:400px;
    height:100px;
    overflow:hidden;
     }

效果如下:

margin-top塌陷

将clearfix选择器的注释去掉,再给最外层div盒子加多一个类选择器 clearfix

.clearfix:before{
                  content: '';
                  display:table;
                }

效果如下:

margin-top塌陷

Original: https://www.cnblogs.com/fry-hell/p/12932302.html
Author: 油炸地狱
Title: margin-top塌陷

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611810/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java实现两种队列(数组和链表)

    @date 2022-09-13 17:50*/public class QueueLinked{ private static class Node{E item;Node ne…

    Linux 2023年6月14日
    0141
  • Ubuntu18.04安装/卸载NVIDIA显卡驱动

    1 显卡驱动下载 官网:NVIDIA 搜索适合本机的驱动 获取最新版本驱动 立即下载 文件 上面,显卡驱动程序下载已完成。 [En] Above, the video card d…

    Linux 2023年5月27日
    0236
  • C++ 多线程按顺序执行函数

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月11日
    092
  • 剑指offer计划23( 数学简单)—java

    1.1、题目1 剑指 Offer 39. 数组中出现次数超过一半的数字 1.2、解法 万能哈希表,数学方法看到我要吐血。。。 1.3、代码 class Solution { pub…

    Linux 2023年6月11日
    0107
  • Windows+VSCode编译在Linux-x86_64环境上运行的程序

    一、简介 本文主要介绍在Windows平台上使用VSCode,从而可以一键编译出运行在Linux-x86_64环境中的程序或库。 二、实现方式 ① 交叉编译 ② WSL(Windo…

    Linux 2023年6月7日
    0103
  • zabbix自定义监控进程和日志

    自定义监控 进程 日志 mysql主从状态 mysql主从延迟 自定义监控 进程 [root@client ~]# cd /usr/local/etc/ [root@client …

    Linux 2023年6月7日
    0172
  • Redis集群搭建的三种方式

    一、单节点实例 单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个 Redis 还是很轻松的,做为一个 key/value 数据库也是可以胜任的 二、…

    Linux 2023年5月28日
    069
  • Linux03:三种软件安装方式及基本环境安装(狂神说)

    linux的三种软件安装及基本环境安装 安装软件通常有三种方式: [En] There are generally three ways to install software: …

    Linux 2023年5月27日
    099
  • JAVA反射机制详解

    作者:小牛呼噜噜 | https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 何为反射? 实例的创建 .cl…

    Linux 2023年6月6日
    0157
  • Golang 实现 Redis(5): 使用跳表实现 SortedSet

    本文是使用 golang 实现 redis 系列的第五篇, 将介绍如何使用跳表实现有序集合(SortedSet)的相关功能。 跳表(skiplist) 是 Redis 中 Sort…

    Linux 2023年5月28日
    0104
  • Beyond Compare文件对比神器,快来给文件找茬!

    在工作中很多场景下都需要比对两个文件之间的差异,你是否还傻傻的同时打开两个文件,用眼睛一行一行的核对? 赶紧来试试这个神器Beyond Compare!!它可以快速的帮你找出两个文…

    Linux 2023年6月7日
    0112
  • USB转双串口产品设计-RS485串口

    基于USB转2路串口芯片CH342,可以为各类主机扩展出2个独立的串口。CH342芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Windo…

    Linux 2023年6月7日
    0112
  • 学习一下 JVM (三) — 了解一下 垃圾回收

    一、简单了解几个概念 1、什么是垃圾(Garbage)?什么是垃圾回收(Garbage Collection,简称 GC)? (1)什么是垃圾(Garbage)?这里的垃圾 指的是…

    Linux 2023年6月11日
    0104
  • 小记:音频格式转化ByPython(下)

    上文中我们已经大致明白了pydub库的使用方法,今天的目标是写个爬虫爬取歌曲信息。 关于网络爬虫,Python的标准库里是有相应的包的,可以直接打开:https://docs.py…

    Linux 2023年6月8日
    0122
  • 如何优化前端性能?

    导读:随着前端的范畴逐渐扩大,深度逐渐下沉,富前端必然带来的一个问题就是性能。特别是在大型复杂项目中,重前端业务可能因为一个小小的数据依赖,导致整个页面卡顿甚至崩溃。本文基于Qui…

    Linux 2023年6月8日
    0118
  • @EnableFeignClients注解源码解析

    转载请注明出处: @EnableFeignClients 注解定义的源码 这个注解通过@Import注解导入一个配置类FeignClientsRegistrar.class ;Fe…

    Linux 2023年6月14日
    0100
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球