子層

"/> 子層

">

首頁 >web前端 >css教學 >關於內層DIV設定margin-top不起作用的解決方案

關於內層DIV設定margin-top不起作用的解決方案

巴扎黑
巴扎黑原創
2017-06-28 13:44:492068瀏覽

(一)

近日在做另外一個站點的時候,又遇到這個問題,決定好好的研究解決一下。

程式碼如下:

上層


margin-top:200px;">子層


理想中的效果是父層和上層貼邊顯示,子層距離父層頂部有200px的距離,在ie中正常,但是在ff中卻出現問題,子層和父層貼邊了,而父層和上層卻間隔了200px。

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

當兩個容器嵌套時,如果外層容器和內層容器之間沒有別的元素,firefox會把內層元素的margin-top作用與父元素。

也就是說因為子層是父層的第一個非空子元素,所以使用margin-top會發生這個錯誤。

解決的方法有兩個:

1、使用浮動來解決,即將子層程式碼改為:

子層

2、使用padding-top來解決,即:


    

子層


 

#(二)

## 

#(二)通常常可以碰到這樣一個問題,就是外層p設定了高與寬,內層p如果設定maring-top不起作用(FIREFOX和IE8中測試),原因大致是內層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: absoluteC、display: inline-block或table-cell或其他table 類型

D、

overflow

: hidden或auto

例如,可以更改上述程式碼如下:


< /p>

###注意:後面要加一個###清除浮動###。 ###

以上是關於內層DIV設定margin-top不起作用的解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn