簡體   English   中英

3 列 CSS 需要布局

[英]3 Column CSS Layout needed

看看這里的布局,我想將整個頁面的最小寬度限制為 600px。 我嘗試設置內容的最小寬度,但是右側與它重疊。

有人可以推薦一種更正此問題的方法,或滿足此要求的其他布局嗎?

在此要記住的另一件事是內容在代碼中出現的順序 - 1) 2) 3),如頁面所示。 任何一列都應該能夠將頁腳向下移動,我希望再定義兩個區域:header 當前是什么,在代碼中顯示為 4),以及 5) 是上面的一個小內容欄 4)

所以簡而言之,頁面內容區域在頁面上會像這樣出現(在代碼中從上到下排序,從 1 開始):

7) top menu
5) header
4) contentbar
2) 1) 3)
6) (footer)

謝謝。

更新

在邁達斯的幫助下,我幾乎得到了我想要的東西。 下面的問題是,當瀏覽器寬度減小時,右側列不會向下移動頁腳,也不會在最小寬度處鎖定到位。 此外,我仍然無法將頂部菜單欄的所有內容都向下推,因為它只是與 header 重疊:

<!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>
    <title>Holygrail1</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<style type="text/css">
* { 
    margin:0; padding:0 
}
body { 
    font:76% Arial, Helvetica, sans-serif 
}
p { 
    margin:0 10px 10px 
}
a {
    display:block; color:#981793; padding:10px 
}

#container 
{
    margin-top:104px; min-height:400px;
    min-width:700px;
    top:20px;
}
#wrapper { 
    float:left; width:100% 
}
#content { 
    margin: 0 200px 0 200px
}
#content p {    
    line-height:1.4 
}
#leftbar { 
    background:#b9caff; float:left; width:200px; margin-left:-100% 
}
#rightbar { 
    position: absolute;
    background:#ff8539; 
    right:0px;
    width:200px; 
}
#header { 
    position:absolute; top:0; width:100%; height:266px;
}
#header h1 { 
    line-height:80px; padding-left:10px; background:#eee; color:#79b30b 
}
#contentbar { 
    position:absolute; top:80px; width:100%; z-index:1 
}

#footer, #contentbar { 
    background:#333; color:#fff 
}
#footer p, #contentbar p { 
    margin:0; padding:5px 10px; line-height:14px 
}
#footer { 
    clear:left; width:100% 
}

#topbar { 
    position:absolute; top:0px; width:100%; z-index:1;
    height: 20px;
    background-color:red;
}

</style>
</head>
<body>
    <div id="container">
        <div id="wrapper">
            <div id="content">
                <p><strong>1) Content here.</strong> column long long column very long fill fill fill long text text column text silly very make long very fill silly make make long make text fill very long text column silly silly very column long very column filler fill long make filler long silly very long silly silly silly long filler make column filler make silly long long fill very.</p>
            </div>
        </div>
        <div id="leftbar">
            <p><strong>2) leftbar here.</strong> long long fill filler very fill column column silly filler very filler fill fill filler text fill very silly fill text filler silly silly filler fill very make fill column text column very very column fill fill very silly column silly silly fill fill long filler</p>
        </div>
        <div id="rightbar">
            <p><strong>3) More stuff here.</strong> very text make long column make filler fill make column column silly filler text silly column fill silly fill column text filler make text silly filler make filler very silly make text very very text make long filler very make column make silly column fill silly column long make silly filler column filler silly long long column fill silly column very</p>
                <p>very make make fill silly long long filler column long make silly silly column filler fill fill very filler text fill filler column make fill make text very make make very fill fill long make very filler column very long very filler silly very make filler silly make make column column</p>
                <p>fill long make long text very make long fill column make text very silly column filler silly text fill text filler filler filler make make make make text filler fill column filler make silly make text text fill make very filler column very</p>
                <p>column text long column make silly long text filler silly very very very long filler fill very fill silly very make make filler text filler text make silly text text long fill fill make text fill long text very silly long long filler filler fill silly long make column make silly long column long make very</p>
        </div>
    </div>
    <div id="contentbar"><p>4) Content bar here.</p></div>
    <div id="header"><h1>5) Header</h1></div>
    <div id="footer"><p>6) Here it goes the footer</p></div>
    <div id="topbar"><p>7) Top Bar </p></div>
</body>
</html>

由於這不是一個按代碼付費的網站,因此我不會為您編寫整個代碼。

這可能是一個愚蠢的問題,但這對您不起作用嗎?

body {
  min-width: 600px;
}

這是您審查的布局。 訂購就像您想要的那樣,我不得不使用position:absolute來表示 header 和“內容欄”。

<!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>
    <title>Layout 19</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
* { margin:0; padding:0 }
body { font:76% Arial, Helvetica, sans-serif; min-width:600px }
a { display:block; color:#981793; padding:10px }
#navigation, #extra, #header, #contentbar { position:absolute; top:0 }
#container { margin-top:104px; position:relative }
#container p { margin:0 10px 10px }
#content { margin:0 200px }
#content p { line-height:1.4 }
#navigation { background:#b9caff; width:200px }
#extra { background:#ff8539; width:200px; right:0 }
#header { width:100% }
#header h1 { line-height:80px; padding-left:10px; background:#eee; color:#79b30b }
#contentbar { margin-top:80px; width:100% }
#footer, #contentbar { background:#333; color:#fff }
#footer p, #contentbar p { padding:5px 10px; line-height:14px }
    </style>
</head>
<body>
    <div id="container">
        <div id="content">
            <p><strong>1) Content here.</strong> column long long column very long fill fill fill long text text column text silly very make long very fill silly make make long make text fill very long text column silly silly very column long very column filler fill long make filler long silly very long silly silly silly long filler make column filler make silly long long fill very.</p>
            <p>very make make fill silly long long filler column long make silly silly column filler fill fill very filler text fill filler column make fill make text very make make very fill fill long make very filler column very long very filler silly very make filler silly make make column column</p>
            <p>fill long make long text very make long fill column make text very silly column filler silly text fill text filler filler filler make make make make text filler fill column filler make silly make text text fill make very filler column very</p>
            <p>column text long column make silly long text filler silly very very very long filler fill very fill silly very make make filler text filler text make silly text text long fill fill make text fill long text very silly long long filler filler fill silly long make column make silly long column long make very</p>
        </div>
       <div id="navigation">
            <p><strong>2) Navigation here.</strong> long long fill filler very fill column column silly filler very filler fill fill filler text fill very silly fill text filler silly silly filler fill very make fill column text column very very column fill fill very silly column silly silly fill fill long filler</p>
        </div>
        <div id="extra">
            <p><strong>3) More stuff here.</strong> very text make long column make filler fill make column column silly filler text silly column fill silly fill column text filler make text silly filler make filler very silly make text very very text make long filler very make column make silly column fill silly column long make silly filler column filler silly long long column fill silly column very</p>
        </div>
    </div>
    <div id="contentbar"><p>4) Content bar here.</p></div>
    <div id="header"><h1>5) Header</h1></div>
    <div id="footer"><p>6) Here it goes the footer</p></div>
</body>
</html>

此示例可以在<body>標記或最外面的<div>標記周圍設置為恆定width:600px

可以在A List Apart - Holy Grail上找到有關此布局的更詳細說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM