最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-27 18:50:51
文档

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

关于内层DIV设置margin-top不起作用的解决方案:(一)近日在做另外一个站点的时候,又遇到这个问题,决定好好的研究解决一下。代码如下:<p>上部层</p><p> <!--父层--> <p style="margin-top:200px;">子层</p></p>
推荐度:
导读关于内层DIV设置margin-top不起作用的解决方案:(一)近日在做另外一个站点的时候,又遇到这个问题,决定好好的研究解决一下。代码如下:<p>上部层</p><p> <!--父层--> <p style="margin-top:200px;">子层</p></p>

(一)

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

代码如下:

<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不起作用的解决方案

关于内层DIV设置margin-top不起作用的解决方案:(一)近日在做另外一个站点的时候,又遇到这个问题,决定好好的研究解决一下。代码如下:<p>上部层</p><p> <!--父层--> <p style="margin-top:200px;">子层</p></p>
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top