2012-04-06 98 views
0

我有一個奇怪的問題,我的HTML和CSS代碼:爲什麼相對定位會改變我的頁面順序?

<header> 
    <h1>title</h1> 
</header> 
<nav> 
    <a href="">menu 1</a> 
    <a href="">menu 1</a> 
    <a href="">menu 1</a> 
    <a href="">menu 1</a> 
</nav> 
header { 
    margin: 0 auto; 
    position: relative; 
    top: 200px; 
    width: 200px; 
} 
header h1 { 
    font-size: 24px; 
    text-align: center; 
} 
nav { 
    clear: both; 
    margin: 0 auto; 
    position: relative; 
    width: 200px; 
} 
* { 
    border: none; 
    font-size: 100%; 
    font: inherit; 
    vertical-align: baseline; 
} 
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { 
    display: block; 
} 
body, html { 
    height: 100%; 
} 

爲什麼<nav>出現<header>以上時,他們都相對定位?

See the jsFiddle.

回答

1

不是,你只是將標題移到導航欄下方。你指定了一個top: 200px它,它將其移動下降 200px ...您的導航出現在它會出現的地方將出現如果該屬性不存在。它從窗口頂部的標題高度向下移動。如果你也想下推導航,你也可以添加一個top: 200px,但這隻會導致每個其他元素需要相對定位200像素的問題,從它最初出現的位置開始,這不是很好邏輯。

Relative positioning

究竟是你想做些什麼?你是不是要用margin-top: 200px來代替,將頁面上的所有內容都向下移動200px?

+0

它的作品非常感謝你 – cssnoob 2012-04-06 22:21:41

0
position: relative; 
top: 200px; 

這使得接頭下跌200像素,把它的資產淨值之下。這只是做你剛纔告訴它...

0

<header>top: 200px;所以它將被定位爲從頂部200像素。 <nav>未被抵消,因此出現在<body>的頂部。

相關問題