web前端學習筆記(CSS固定寬度佈局)

1、單列布局:css

      這是最簡單的一種佈局方式,之因此給出該示例,仍是爲了保證本篇博客的完整性。html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>固定寬度佈局</title>
<style type="text/css">
#header,#pagefooter,#content {
    border: 1px solid red;
    margin: 10px auto 10px 10px;
    padding: 5px;
    width: 360px;
}
</style>
</head>
<body>
<div id="header">
    <h2>Page Header</h2>
    <p>
        這是一行文本,這裏做爲樣例,顯示在佈局框中。<br/>
        這是一行文本,這裏做爲樣例,顯示在佈局框中。 
    </p>
</div>
<div id="content">
    <h2>Page Content</h2>
    <p>
        這是一行文本,這裏做爲樣例,顯示在佈局框中。<br />
        這是一行文本,這裏做爲樣例,顯示在佈局框中。
    </p>
</div>
<div id="pagefooter">
    <h2>Page Footer</h2>
    <p>這是一行文本,這裏做爲樣例,顯示在佈局框中。</p>
</div>
</body>
</html>

      從CSS代碼能夠看到,3個div的寬度都設置爲固定值360像素,同時將margin設置爲margin: 10px auto 10px 10px,從而實現了右側好像有個彈簧,將他們所有擠到左側,反之,若是想把他們所有擠到左側,能夠將margin設置爲margin: 10px 10px 10px auto。見以下效果圖。ide

 2、「1-2-1」固定寬度佈局:佈局

      該佈局也是常常會用到的,這裏咱們先給出最終的效果圖,而後再給出代碼,以便你們都能現有一個感官上的認識,再看code就會容易不少。spa


      下面爲與上圖匹配的HTML代碼:設計

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>佈局固定寬度</title>
<style type="text/css">
div ,p, h2 {
    margin: 2px;
    padding: 5px;
}
#container {
    width: 612px;
    margin: 10px auto;
}
#header,#footer {
    width: 596px;
    border: 1px solid red;
} 
#content {
    float: left;
    width: 360px;    
    border: 1px solid red;
}
#side {
    float: left;
    width: 220px;
    border: 1px solid red;
}
#footer {
    clear: both;
}
</style>
</head>
<body>
<div id="container">
    <div id="header">
        <h2>Page Header</h2>
    </div>
    <div id="content">
        <h2>Page Content 1</h2>
        <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生,由於它是全部網頁製做的基礎。可是若是但願網頁可以美觀、大方,而且升級方便,維護輕鬆,那麼僅僅HTML是不夠的,CSS在這中間扮演着重要的角色。</p>
    </div>
    <div id="side">
        <h2>Side Bar 1</h2>
        <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生。</p>
    </div>
    <div id="footer">
        <h2>Page Footer</h2>
        <p>這是一行文本,這裏做爲樣例,顯示在佈局框中。</p>
    </div>
</div>
</body>
</html>

      這裏須要主要關注的是CSS中#content和#side都被設置爲向左浮動float: left,兩者的寬度相加等於總寬度,例如這裏將它們的寬度分別設置爲360px和220px。本例出於方便展現的目的,添加了padding/border/margin將各個div的邊界顯示的分離出來,這樣#content和#side每一個div的實際所佔寬度均爲自身寬度 + (5px + 5px) + border(1px + 1px) + margin(2px + 2px)。最後須要注意的是#footer的CSS中添加了clear:both,不然如本例content的高度高於side高度,footer將會被content的底部覆蓋,這是由於float爲left的div沒有在標準流中。以下圖爲#footer去掉clear:both以後的效果。code

3、「1-3-1」固定寬度佈局:xml

      和上面的1-2-1固定佈局同樣,該佈局也是常常會用到的,這裏咱們仍是給出最終的效果圖,而後再給出代碼,以便你們都能現有一個感官上的認識,再看code就會容易不少。 htm

      和上例相比,該示例在代碼中只是簡單的多出了一個div(#navi),其CSS中也包含float:left。剩下就是其餘相關div的寬度須要從新計算,計算方式等同於1-2-1給出的公式。下面爲與改圖匹配的HTML代碼。blog

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>佈局固定寬度</title>
<style type="text/css">
div, p, h2 {
    margin: 2px;
    padding: 5px;
}
div {
    border: 1px solid red;
}
#container {
    width: 788px;
    margin: 10px auto;
    border: 0;
}
#header,#footer {
    width: 772px;
}
#navi {
    float: left;
    width: 160px;
} 
#content {
    float: left;
    width: 360px;    
}
#side {
    float: left;
    width: 220px;
}
#footer {
    clear: both;
}
</style>
</head>
<body>
<div id="container">
    <div id="header">
        <h2>Page Header</h2>
    </div>
    <div id="navi">
        <h2>Navi Bar 1</h2>
        <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生,由於它是全部網頁製做的基礎。可是若是但願網頁可以美觀、大方,而且升級方便,維護輕鬆,那麼僅僅HTML是不夠的,CSS在這中間扮演着重要的角色。</p>
    </div>
    <div id="content">
        <h2>Page Content 1</h2>
        <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生,由於它是全部網頁製做的基礎。可是若是但願網頁可以美觀、大方,而且升級方便,維護輕鬆,那麼僅僅HTML是不夠的,CSS在這中間扮演着重要的角色。</p>
    </div>
    <div id="side">
        <h2>Side Bar 1</h2>
        <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生。</p>
    </div>
    <div id="footer">
        <h2>Page Footer</h2>
        <p>這是一行文本,這裏做爲樣例,顯示在佈局框中。</p>
    </div>
</div>
</body>
</html>

4、「1-((1-2)+1)-1」固定寬度佈局:

      根據下面的效果圖,再結合前面的示例,相信你們可以很快理解該佈局的含義。 

 

       與上圖匹配的代碼以下,與前面一個示例相比主要的變化是加入了#left-container#right-container兩個div。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>佈局固定寬度</title>
<style type="text/css">
div, p, h2 {
    margin: 2px;
    padding: 5px;
}
div {
    border: 1px solid red;    
}
#container {
    width: 788px;
    margin: 10px auto;
    border: 0;
}
#header,#footer {
    width: 772px;
}
#left-container {
    float: left;
    width: 552px;
}
#navi {
    float: left;
    width: 160px;
} 
#content {
    float: left;
    width: 360px;    
}
#right-container {
    float: left;
    width: 204px;
}
#side {
    width: 188px;
}
#footer {
    clear: both;
}
</style>
</head>
<body>
<div id="container">
    <div id="header">
        <h2>Page Header</h2>
    </div>
    <div id="left-container">
        <div id="banner">
            <h2>Banner</h2>
            <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生,由於它是全部網頁製做的基礎。可是若是但願網頁可以美觀、大方,而且升級方便,維護輕鬆,那麼僅僅HTML是不夠的,CSS在這中間扮演着重要的角色。</p>
        </div><!-- end of banner -->
        <div id="navi">
            <h2>Navi Bar 1</h2>
            <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生,由於它是全部網頁製做的基礎。可是若是但願網頁可以美觀、大方,而且升級方便,維護輕鬆,那麼僅僅HTML是不夠的,CSS在這中間扮演着重要的角色。</p>
        </div>
        <div id="content">
            <h2>Page Content 1</h2>
            <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生,由於它是全部網頁製做的基礎。可是若是但願網頁可以美觀、大方,而且升級方便,維護輕鬆,那麼僅僅HTML是不夠的,CSS在這中間扮演着重要的角色。</p>
        </div>
    </div><!-- end of left container -->
    <div id="right-container">
        <div id="side">
            <h2>Side Bar 1</h2>
            <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生。</p>
        </div>
        <div id="side">
            <h2>Side Bar 2</h2>
            <p>對於一個網頁設計者來講,HTML語言必定不會感到陌生。</p>
        </div>
    </div><!-- end of right container -->
    <div id="footer">
        <h2>Page Footer</h2>
        <p>這是一行文本,這裏做爲樣例,顯示在佈局框中。</p>
    </div>
</div>
</body>
</html>

注:該篇博客源自《CSS設計完全研究》中的第十三章,書中的例子簡明扼要、通俗易懂,所以選取部分主要內容與你們分享,同時也便於從此本身的在線查閱。

相關文章
相關標籤/搜索