<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Rising Sun

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      148 隨筆 :: 0 文章 :: 22 評(píng)論 :: 0 Trackbacks
    翻譯自:In Search of the Holy Grail
    原文:http://www.alistapart.com/articles/holygrail
    這個(gè)翻譯的頁面版權(quán)歸greengnn所有,轉(zhuǎn)載請(qǐng)注明出處
    第一步:創(chuàng)建一個(gè)結(jié)構(gòu)

    xhtml開始于header, footer, and container
    <div id="header"></div>

    <div id="container"></div>

    <div id="footer"></div>

    CSS先定義container,給將要加入的sideleft,和sideright留下個(gè)位置
    #container {
     padding-left: 200px; /* LC width */
     padding-right: 150px; /* RC width */
    }

    我們的布局現(xiàn)在看起來是這樣的

    uploads/200602/13_074820_diagram_01.gif


    圖1——?jiǎng)?chuàng)建框架

    第二步:增加內(nèi)容元素

    在第一步基礎(chǔ)上增加內(nèi)容元素<div id="header"></div>

    <div id="container">
     <div id="center" class="column"></div>
     <div id="left" class="column"></div>
     <div id="right" class="column"></div>
    </div>

    <div id="footer"></div>

    然后分別定義widths和float 讓元素排列在一條線上,還有清除footer的浮動(dòng)對(duì)齊
    #container .column {
     float: left;
    }
    #center {
     width: 100%;
    }
    #left {
     width: 200px; /* LC width */
    }
    #right {
     width: 150px; /* RC width */
    }
    #footer {
     clear: both;
    }

    這里給center元素定義了100% width,讓它占滿montainer的可用空間,現(xiàn)在的布局變成了這樣

    uploads/200602/13_074922_diagram_02.gif


    圖2:增加內(nèi)容元素

    第三步:把left放到正確的位置

    要把left放到正確的位置,我們分兩步

    1.讓left和center在同一水平線#left {
     width: 200px; /* LC width */
     margin-left: -100%;
    }

    看看效果

    uploads/200602/13_075000_diagram_03.gif


    圖3——left移動(dòng)完成一半

    2.用相對(duì)定位,把left繼續(xù)移動(dòng)到正確的位置#container .columns {
     float: left;
     position: relative;
    }
    #left {
     width: 200px; /* LC width */
     margin-left: -100%;
     right: 200px; /* LC width */
    }

    上一步,left還需要左移200px,就可以了,所以就采用相對(duì)定位,將他再向左推200px,就達(dá)到了想要的效果。讓left距離他右邊元素center 200px后,行了,left終于到自己位置上了。

    uploads/200602/13_075037_diagram_04.gif


    圖4——left到了自己的位置

    第四步:讓right也到自己的正確的位置上

    從上圖看,我們只需要把right推倒container的padding-right里面,看看怎么做
    #right {
     width: 150px; /* RC width */
     margin-right: -150px; /* RC width */
    }

    好了,現(xiàn)在元素們都正確歸位了。

    uploads/200602/13_075115_diagram_05.gif


    圖5——right到了自己正確的位置

    第五步:解決bug讓布局更完美
    如果瀏覽器類型變更,center就變得比left小了,完美的布局就被打破,我們給body 設(shè)置一個(gè)min-width
    來解決這個(gè)問題,因?yàn)镮E不支持他,所以不會(huì)有負(fù)面影響,調(diào)整如下
    body {
     min-width: 550px; /* 2x LC width + RC width */
    }

    這時(shí)在IE6(完全打開的窗口)下,left元素距離左側(cè)又太遠(yuǎn)了,再調(diào)整
    * html #left {
     left: 150px; /* RC width */
    }

    這些大小調(diào)整是根據(jù)上面已經(jīng)定義的寬度來的,你調(diào)整的時(shí)候也要根據(jù)自己的實(shí)際情況。

    現(xiàn)在增加padding

    內(nèi)容文字貼著容器的邊,相信你看得時(shí)候,不會(huì)很舒服,調(diào)整一下
    #left {
     width: 180px; /* LC fullwidth - padding */
     padding: 0 10px;
     right: 200px; /* LC fullwidth */
     margin-left: -100%;
    }

    當(dāng)然不能只增加left就算完事,要給一系列元素都必須加上,也要調(diào)整增加padding,帶來的新的bug,調(diào)整如下
    body {
     min-width: 630px; /* 2x (LC fullwidth +
     CC padding) + RC fullwidth */
    }
    #container {
     padding-left: 200px; /* LC fullwidth */
     padding-right: 190px; /* RC fullwidth + CC padding */
    }
    #container .column {
     position: relative;
     float: left;
    }
    #center {
     padding: 10px 20px; /* CC padding */
     width: 100%;
    }
    #left {
     width: 180px; /* LC width */
     padding: 0 10px; /* LC padding */
     right: 240px; /* LC fullwidth + CC padding */
     margin-left: -100%;
    }
    #right {
     width: 130px; /* RC width */
     padding: 0 10px; /* RC padding */
     margin-right: -190px; /* RC fullwidth + CC padding */
    }
    #footer {
     clear: both;
    }

    /*** IE Fix ***/
    * html #left {
     left: 150px; /* RC fullwidth */
    }
    header和footer的padding可以隨意增加,這里就不提了,還有長度單位用em更具親和力(em可以讓用戶使用瀏覽器來調(diào)整自己需要的字體大?。?br>但是不能混合使用,選擇em和px的時(shí)候明智些,察看效果

    元素等高問題
    采用http://www.positioniseverything.net/articles/onetruelayout/equalheight
    有人翻譯過來的:http://www.blueidea.com/tech/web/2006/3210.asp
    里提到的方法,就不具體解釋了。
    #container {
     overflow: hidden;
    }
    #container .column {
     padding-bottom: 20010px; /* X + padding-bottom */
     margin-bottom: -20000px; /* X */
    }
    #footer {
     position: relative;
    }

    再解決opera 8的bug,代碼調(diào)整如下
    <div id="footer-wrapper">
     <div id="footer"></div>
    </div>
    * html body {
     overflow: hidden;
    }
    * html #footer-wrapper {
     float: left;
     position: relative;
     width: 100%;
     padding-bottom: 10010px;
     margin-bottom: -10000px;
     background: #fff; /* Same as body
     background */
    }
    posted on 2007-06-14 10:00 brock 閱讀(242) 評(píng)論(0)  編輯  收藏 所屬分類: css
    主站蜘蛛池模板: 亚洲日韩国产二区无码| 亚洲视频在线观看网站| 亚洲国产精品精华液| 日本三级2019在线观看免费| 亚洲国产夜色在线观看| 精品免费久久久久久久| 亚洲成人免费电影| 日韩在线免费视频| 亚洲最大av资源站无码av网址| 丁香花在线观看免费观看| 亚洲国产精品日韩av不卡在线| 国产男女性潮高清免费网站| 国产午夜亚洲精品不卡免下载 | 国产l精品国产亚洲区在线观看| 在线观看免费无码专区| 久久精品国产亚洲av麻豆| 69视频免费观看l| 国产亚洲中文日本不卡二区| 国产成人免费a在线视频app| a免费毛片在线播放| 亚洲AV日韩AV永久无码下载| 99爱在线精品免费观看| 美女被免费网站视频在线| 亚洲色婷婷六月亚洲婷婷6月| 亚洲免费网站在线观看| 亚洲国产成人AV在线播放| 亚洲精品成a人在线观看| 久久久免费的精品| 亚洲国产区男人本色| 区久久AAA片69亚洲| www视频在线观看免费| 国产精品亚洲а∨天堂2021| 亚洲综合色成在线播放| 在线观看www日本免费网站| 亚洲Aⅴ在线无码播放毛片一线天 亚洲avav天堂av在线网毛片 | 在线看片无码永久免费aⅴ| 一级有奶水毛片免费看| 亚洲日韩乱码中文无码蜜桃| avtt亚洲天堂| 亚洲一区二区三区免费观看| 永久免费无码日韩视频|