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

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

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

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    這里還有一種實現技術:http://code.google.com/p/cleanstickyfooter/


    “如果有一個footer層,我想讓他固定出現在整個頁面的最下方,不隨著頁面中的內容而變化,CSS中要怎樣設?比如里面是一些版權信息。因為我整頁的內容比較少,footer老跟著內容跑到上面去,很不美觀。”

    這個問題如果在以前使用表格布局,并不困難,只要給頁面的最外層表格高度設置為100%就可以了,然而,在Web標準的規范中,表格的高度 已經屬于廢止的屬性,應該避免使用,而且使用Web標準以后,也不在提倡使用表格布局了,那么是否有辦法使用CSS來實現頁面的頁腳部分固定在瀏覽器底端 呢?

    下面就來講解它的實現方法。

    基本思路

    首先考慮外層設置一個容器div,id設為#container,使他的高度為瀏覽器窗口的高度,然后將#footer這個div設置為#container的子div,并使用絕對定位的方式,使他固定到#container的底端,以實現希望的效果。

    點擊這里察看案例頁面效果。 改變瀏覽器的高度和寬度,可以看到Footer部分的效果。

    代碼實現

    下面先考慮HTML結構,這個演示頁面的HTML代碼非常簡單。


    <body>
        
    <div id="container">
            
    <div id="content">
                
    <h1>Content</h1>
                
    <p>請改變瀏覽器窗口的高度,以觀察footer效果。</p>
                
    <p>這里是示例文字,………,這里是示例文字。</p>
            
    </div>
            
    <div id="footer">
                
    <h1>Footer</h1>
            
    </div>
        
    </div>
    </body>

    然后設置CS


    body,html {
            margin
    : 0;
            padding
    : 0;
            font
    : 12px/1.5 arial;
            height
    :100%;
        
    }
        #container 
    {
            min-height
    :100%;
            position
    : relative;
        
    }
        #content 
    {
            padding
    : 10px;
            padding-bottom
    : 60px;  
            
    /* 20px(font-size)x2(line-height) + 10px(padding)x2=60px*/
        
    }
        #footer 
    {
            position
    : absolute;
            bottom
    : 0;
            padding
    : 10px 0;
            background-color
    : #AAA;
            width
    : 100%;
        
    }
        #footer h1 
    {
            font
    : 20px/2 Arial;
            margin
    :0;
            padding
    :0 10px;
        
    }

    要點分析

    1:首先要給html和body元素設置高度(height屬性)為100% (第5行),這樣先保證根元素的高度撐滿整個瀏覽器窗口,然后下面才能使#container的高度撐滿整個瀏覽器窗口。

    至于為什么用同時設置html和body元素,是因為Firefox和IE認為的根元素不一樣,因此這里都給他們設置上。

    2:然后把#container的高度也設置為100% (第8行),但是要注意,這里使用了“min-height”屬性,而不是普通的height屬性,這是因為我們要考慮到,如果#content中的內容 如果增加了,他的高度超過了瀏覽器窗口的高度,那么如果把#container的高度仍然是100%,就會導致#footer仍然定位在瀏器窗口的下端, 從而遮蓋了#content中的內容。

    而使用min-height屬性的作用就是使#container的高度“至少”為瀏覽器窗口的高度,而當如果它里面的內容增加了,他的高度會也跟隨著增加,這才是我們需要的效果。

    但是需要說明的是,在Firefox和IE7中,支持min-height屬性,而IE6種,并不支持min-height屬性,但是“歪打正著” 的是,IE 6中,會把min-height屬性解釋為height屬性,但是IE 6中height屬性的效果卻是min-height本來應該具有的效果,也就是說,在IE 6中,子div的高度會撐大父div的高度。所以這樣正好可以實現在IE6、IE7和Firefox中都可以正確實現我們希望的效果了。

    3:接下來,將#container設置為相對定位(第9行),目的是使他成為它里面的#footer的定位基準,也就是所謂的“最近的定位過的祖先元素”。

    4:然后把#foooter設置為絕對定位(第17行),并使之貼在#container的最下端(第18行)。

    5:但是要注意,如果當我們把#foooter貼在#container的最下端以后,他實際上已經和上面的#content這個div重疊了,為 了避免覆蓋#content中的內容,我們在#contetn中設置了下側的padding,使padding-bottom的值等于#footer的高 度(第13行),就可以保證避免覆蓋#content的文字了,這個高度的計算注意代碼中的注釋中給出的計算方法(第14行)。

    6:剩下的就沒有更多技術需要解釋了。如果讀者對上面的解釋還不十分理解,說明您對CSS的基本概念還了解得不夠,先仔細把CSS的核心原理和基本概念徹底搞清楚,再來看這些代碼就是很輕松的了。

    點擊這里察看案例頁面效果。

    案例總結

    這個看起來并不復雜的代碼,去包含了很多CSS的核心概念和原理,因此這里又回到了我們曾經多次給讀者的建議上:一定要扎扎實實把CSS的核心原理 搞清楚,特別是CSS的4大核心基石:盒子模型、標準流、浮動、定位。只有把這些核心基礎掌握到爛熟于胸的程度,才能游刃有余地進行設計。



    原理:為了讓瀏覽器識別高度為100%,設置html、body的height: 100%,同時把所有元素的margin和padding設置為0,這樣就等于整個瀏覽器窗口的總高度了,把footer置于最下方,這是footer就 超出這“100%”的范圍了,為讓footer 能夠剛好在最下方,給footer加一個等于自身高度的上方的負邊距(負的margin)強制把它向上推一個自身的高度,即 margin-top: 負的數值; 。但當內容超過一屏會發現內容會覆蓋在footer的上方。所以還要給內容部分設置下方內補丁等于footer的高度,強制把內容部分向上推一個 footer的高度就OK了。(參考文章

    posted on 2010-01-03 20:36 seal 閱讀(551) 評論(0)  編輯  收藏 所屬分類: CSS
    主站蜘蛛池模板: 亚洲国产精华液2020| 国产亚洲婷婷香蕉久久精品| 成年人免费网站在线观看| 亚洲黄色免费观看| 99久久免费中文字幕精品| 99久久免费精品高清特色大片| 99精品视频免费观看| 免费人成在线观看网站品爱网| 性无码免费一区二区三区在线| 特级无码毛片免费视频尤物| 91精品导航在线网址免费| 最近2022中文字幕免费视频| 18成禁人视频免费网站| 在线观看永久免费| 无人在线观看免费高清视频 | 亚洲高清有码中文字| 亚洲一区二区三区在线 | 亚洲色婷婷综合开心网| 在线观看亚洲av每日更新| 亚洲午夜久久久久久久久电影网 | 成人A级毛片免费观看AV网站| 在线免费观看污网站| 四虎影视在线永久免费看黄| 亚洲国产综合精品中文字幕| 亚洲熟女少妇一区二区| 亚洲AV日韩AV永久无码免下载| 亚洲色成人网一二三区| 亚洲国产综合精品中文第一| 麻豆一区二区三区蜜桃免费| 二个人看的www免费视频| 久草免费福利视频| 日本阿v免费费视频完整版| 成人免费视频观看无遮挡| jizzjizz亚洲| 久久久亚洲欧洲日产国码农村| 亚洲人成人77777网站不卡 | 图图资源网亚洲综合网站| 亚洲娇小性色xxxx| 一级毛片免费在线观看网站| 午夜视频在线免费观看| 国产精品高清全国免费观看|