zoukankan      html  css  js  c++  java
  • 如何解决外边距叠加的问题?

    第一种

    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="Author" content="胡超">
    <title>super胡</title>
    <style>
    #a1{
    200px;
    height:200px;
    border:1px solid red;

    margin-bottom:20px;

    }
    #a2{
    margin-top:20px;
    100px;
    height:100px;
    display:inline-block;/*或者绝对定位(position:absolute)或者是浮动元素*/
    border:1px solid black;

    }

    </style>
    </head>
    <body>
    <div id="a1">
    </div>
    <div id="a2">
    </div>

    </body>

    第二种

    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="Author" content="胡超">
    <title>super胡</title>
    <style>
    #container{
    overflow:hidden;

    zoom:1;
    }
    #a1{
    border:1px solid red;
    200px;
    height:200px;
    background:green;
    margin-bottom:20px;
    }
    #a2{
    border:1px solid red;
    200px;
    height:200px;
    background:red;
    margin-top:20px;
    }
    </style>
    </head>
    <body>
    <div id="container">
    <div id="a1">
    </div>
    </div>
    <div id="container">
    <div id="a2">
    </div>
    </div>
    </body>
    </html>



    如何使元素上下margin不折叠呢?

    1.浮动元素、inline-block 元素、绝对定位元素的 margin 不会和垂直方向上其他元素的 margin 折叠(注意这里指的是上下相邻的元素)
    2.创建了块级格式化上下文的元素,不和它的子元素发生 margin 折叠
     
    第二种方法:把这两个 <div> 分别放进两个建立了 BFC (IE7- 触发 hasLayout)的父级容器里.
    要建立 BFC 的不是这两个 <div> 而是它们所在的父级容器.


    触发block formatting context即可,触发的方法:
    1. float不为none
    2. overflow不为visible
    3. display设为‘table-cell’, ‘table-caption’, 或‘inline-block’
    4. position既不是static也不是relative
    5. zoom:1, IE的hasLayout特性会建立一个新的block formatting context
  • 相关阅读:
    深入分析Spring之IOC之加载BeanDefinition案例详解
    JDK10的新特性:var和匿名类如何运用?正确的案例讲解
    SpringMVC中如何获取请求参数?案例详解
    如何用Spring Boot集成Ehcache缓存,教你三招搞定
    基础练习-4.数列特征
    基础练习-3.字母图形
    基础练习-2. 01字串
    基础练习-1.闰年判断
    入门训练-4. Fibonacci数列
    入门训练-3.圆的面积
  • 原文地址:https://www.cnblogs.com/12606huchao/p/4927388.html
Copyright © 2011-2022 走看看