除非我添加邊框,否則Safari 4似乎會忽略元素邊距。爲什麼Safari 4/mac不在這個嵌套div中渲染頂部和底部邊距?
以下示例呈現左右邊距,但不顯示頂部或底部。
添加邊框後,它會按預期進行渲染。我做錯了什麼,或者我將不得不添加邊界(albeit transparent ones)
到每個有邊距的元素只適用於Safari?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>testing</title>
<style>
body {background-color:#666;}
div {display:block; position:relative; margin:0; padding:0;}
.background {background-color:#990000;}
.foreground {background-color:#fff; margin:10px; padding:10px;}
</style>
</head>
<body>
<div class='background'>
<div class='foreground'>
foreground
</div>
</div>
</body>
</html>
只是一個側面說明,display:block在div上是多餘的,因爲這是默認顯示。我也不會將默認設置爲position:相對於divs,我記得過去有過這個問題(儘管不知道爲什麼)只在需要時才使用它。另外,我認爲div的默認填充/邊距實際上是0,所以你可以忽略整個div的CSS聲明而不會產生不良影響。 – brad 2010-10-13 15:31:58
@brad是的,謝謝,但我想爲這個例子指出它。此外,定義位置:當你想相對定位(通常是)時,相對位置很有用 – Moob 2010-10-13 15:36:54