我有一個main
元素,我已將它設置爲position: relative
。這包含兩個div
,然後我申請position: absolute
。這會導致頁眉和頁腳夾住main
元素,然後相互碰撞。我怎樣才能阻止呢?位置:絕對內部位置:相對原因內容重疊
使用浮動和清除頁腳似乎給我想要的兩列布局。但我不確定在IE6/7上會出現什麼樣的解決方案是多麼「堅固」。代碼codepen。
我有一個main
元素,我已將它設置爲position: relative
。這包含兩個div
,然後我申請position: absolute
。這會導致頁眉和頁腳夾住main
元素,然後相互碰撞。我怎樣才能阻止呢?位置:絕對內部位置:相對原因內容重疊
使用浮動和清除頁腳似乎給我想要的兩列布局。但我不確定在IE6/7上會出現什麼樣的解決方案是多麼「堅固」。代碼codepen。
main
中的所有元素都是絕對定位的,因此main
的高度計算爲零,因此標題的底部邊緣緊挨着頁腳的頂部邊緣。如果將高度添加到main
,則會在頁眉和頁腳之間打開空間。
考慮下面的HTML:
<header>Header</header>
<main>
<div id="text">
<p>Some text</p>
</div>
<div id="links">
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
</ul>
</div>
</main>
<footer>
<p>Footer</p>
</footer>
可以實現使用花車一兩欄佈局顯示在下面的CSS:
main {
position: relative;
height: auto;
overflow: auto;
border: 1px solid blue;
}
#text {
float: left;
width: 500px
}
#links {
float: left;
width: 400px;
}
您需要設置overflow: auto
您main
容器包含浮標(相當於清除它們)。
另外,請確保浮動元素的寬度不是太寬,否則如果屏幕太小,它們會換行到第二行。在http://codepen.io/anon/pen/gGsjd
腳註
觀看演示:使用溢出:汽車與明確的:既
我傾向於使用overflow: auto
,但在某些情況下,該clear
屬性是需要什麼。在某些時候,請閱讀http://www.w3.org/TR/CSS2/visuren.html#block-formatting的「塊格式化上下文」選擇一種方法的原因有點微妙,選擇取決於您嘗試實現的佈局細節,它在響應中的表現方式方式等。
所解釋的那樣,它目前沒有這樣做,問題是我不知道主要元素有多高,所以我不知道要爲「main」添加多少高度。 –
你會推薦哪一種? '明確:在主頁上都是''或者'overflow:auto'?他們都似乎工作。 –
在發佈的解決方案中看到新的腳註,很好的問題。 :) –
一旦您創建了一個「絕對」元素,它就會從正常的文檔流程計算中移除,併成爲防止衝突/重疊的工作。 –
你想要發生什麼? – andi
我想'main'包含一個兩列布局。我知道寬度而不是兩個div的高度。所以我想如果我可以使用'position:absolute'來定位兩列(div)。但是,我仍然希望頁腳出現在底部。正如Marc B的評論 –