• 技术文章 >web前端 >css教程

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

    巴扎黑巴扎黑2017-06-28 13:44:49原创1061
    (一)

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

    代码如下:

    <p>上部层</p>

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

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

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

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

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

    解决的办法有两个:

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

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

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

    (二)

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

    <style>

    .ap {background:red; width:300px; height:300px; }
    .bp {background:green; position:relative; width:100px; height:20px; margin-top:10px;}
    .cp {background:black; position:relative; width:100px; height:20px;}
    </style>

    <p class="ap">
    <p class="bp"></p>
    <p class="cp"></p>
    </p>

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

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

    A、float: left或right

    B、position: absolute

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

    D、overflow: hidden或auto

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

    <style>

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

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

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

    <p class="clear"></p>

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

    以上就是关于内层DIV设置margin-top不起作用的解决方案的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:margin-top 起作 设置
    上一篇:margin-top不是作用于父元素的原因 下一篇:一个关于css中margin-right没有效果的问题
    Web大前端开发直播班

    相关文章推荐

    • 关于 CSS 变量的一些你可能不了解的事!• 聊聊如何用CSS box-shadow创建像素创意动画• 纯CSS实现水波纹的电池充电动画特效• 一文了解CSS3中的新特性 ::target-text 选择器• 如何利用CSS来美化滑动输入条?自定义样式方法浅析

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网