zoukankan      html  css  js  c++  java
  • 关于内层DIV设置margin-top不起作用的解决方案

    关于内层DIV设置margin-top不起作用的解决方案

    (一)

    近日在做另外一个站点的时候,又遇到这个问题,决定好好的研究解决一下。

    代码如下:

    <div>上部层</div>

    <div> <!--父层-->
         <div style="margin-top:200px;">子层</div>
    </div>

    理想中的效果是父层和上部层贴边显示,子层距离父层顶部有200px的距离,在ie中正常,但是在ff中却出现问题,子层和父层贴边了,而父层和上部层却间隔了200px。

    百思不得其解,求助google,得到如下的一句:

    当两个容器嵌套时,如果外层容器和内层容器之间没有别的元素,firefox会把内层元素的margin-top作用与父元素。

    也就是说因为子层是父层的第一个非空子元素,所以使用margin-top会发生这个错误。

    解决的办法有两个:

    1、使用浮动来解决,即将子层代码改为:<div style="margin-top:200px;float:left";>子层</div>

    2、使用padding-top来解决,即:

    <div style="padding-top:200px;">
        <div>子层</div>
    </div>

    (二)

    常常可以碰到这样一个问题,就是外层DIV设置了高与宽,内层DIV如果设置maring-top不起作用(FIREFOX和IE8中测试),原因大致是内层div没有获得布局。如下面的代码:

    <style>

    .aDiv {background:red; 300px; height:300px; }
    .bDiv {background:green; position:relative; 100px; height:20px; margin-top:10px;}
    .cDiv {background:black; position:relative; 100px; height:20px;}
    </style>

    <div class="aDiv">
    <div class="bDiv"></div>
    <div class="cDiv"></div>
    </div>

    测试发现,bDiv的margin-top不起作用,仍是0px的显示效果。如果在firefox中用firebug查看,可以看到margin-top是有值的,为10px;解决问题如下:

    1、把margin-top改成padding-top,不过,前提是内层的Div没有设置边框
    2、给外层的Div加padding-top
    3、给外层DIV加:

    A、float: left或right

    B、position: absolute

    C、display: inline-block或table-cell或其他 table 类型

    D、overflow: hidden或auto

    比如,可以更改上述代码如下:

    <style>

    .a {background:red; 300px; height:300px; float:left; }
    .b {background:green; position:relative; 100px; height:20px; margin:10px;}
    .c {background:black; position:relative; 100px; height:20px;}

    .clear{ clear:both;}
    </style>

    <div class="a">
    <div class="b"></div>
    <div class="c"></div>
    </div>

    <div class="clear"></div>

    注意:后面要加一个清除浮动。

  • 相关阅读:
    Lucene in action 笔记 case study
    关于Restful Web Service的一些理解
    Lucene in action 笔记 analysis篇
    Lucene in action 笔记 index篇
    Lucene in action 笔记 term vector
    Lucene in action 笔记 search篇
    博客园开博记录
    数论(算法概述)
    DIV, IFRAME, Select, Span标签入门
    记一个较困难的SharePoint性能问题的分析和解决
  • 原文地址:https://www.cnblogs.com/bdqczhl/p/6180612.html
Copyright © 2011-2022 走看看