1. 程式人生 > >關於position: fixed學習,頂部固定導航

關於position: fixed學習,頂部固定導航

        關於html的知識學習,以前可能大家通用的是:position:relative,position:absolute;那麼我前面三天的一個頁面用到了position:fixed相對瀏覽器元素進行定位(相對於視窗的固定定位),因為現在非常流行頂部浮起導航效果和底部資訊表浮起等效果。並且很多網站還有特別的地方例如拉到一個位子浮出一個DIV或者拉到一定程度彈出底部預約資訊表格填寫等!

        position:relative    生成相對定位的元素,相對於其正常位置進行定位。

        position:absolute 相對父級元素絕對定位。

以上都有點偏離今天的主題了,今天我們就來好好學習position:fixed,

例子:

樣式:

    .top{position: fixed;top: 0px;width: 100%;background-color: #F8EA67;height:60px;}
    .top .logo{float:left;margin-left:180px;height:60px;}
    .top .nav {float: right;width:60%;position: relative;}
    .top .nav ul{float: left;height:60px;width: 675px;}
    .top .nav ul li{float: left;width: 135px;padding: 20px 0px 0px 0px;list-style: none;}
    .top .nav ul li a{text-decoration: none;font-weight:bold;color: #CC6500;}

html:

<div class="top">
        <div class="logo"><img src="./images/logo.jpg"></div>
        <div class="nav">
            <ul>
                <li><a href="">   首頁</a></li>
                <li><a href="">AAAAAAAAA</a></li>
                <li><a href="">BBBBBBBB</a></li>
                <li><a href="">CCCCCCC</a></li>
                <li><a href="">DDDDDDD</a></li>
            </ul>
        </div>
</div>

頂部導航就這樣完成了。

當大家感覺非常逗比的時候會笑話我,但是我覺得學習這條路上本來就是被大神門拿來笑話的。。。

那麼問題來了,這個支援IE6?這也就是我們以前學習不到的地方時代在進步,CSS也變得越來越“動態化”。

下次我們一起來研究一個寫好的手機端的上下固定導航:

當我走向這條道路是因為我一直在做,卻沒有去實際理解為什麼,這樣做有什麼意義,而是一味去把這些用到工作中,有一天別人問我這個有什麼區別我卻說不出來,寫給那些會而說不出口的程式設計師。在這裡那些會而不會說或者並沒有實際理解的前端朋友!

請position: fixed記住工作於 IE7(strict 模式),想深入就開啟strict 模式深入下去吧!錯,今天我們還有一個很重要的東西要學習,IE6怎麼辦呢:

<script type="text/javascript">
            function _fixBackground(){
                var body = document.body;
                var BLANK_GIF;
                if (body.currentStyle.backgroundAttachment != "fixed") {
                    if (body.currentStyle.backgroundImage == "none") {
                        body.runtimeStyle.backgroundImage = "url("+BLANK_GIF+")"; // dummy
                        body.runtimeStyle.backgroundAttachment = "fixed";
                    }
                }
            }
            window.onload = function(){
                _fixBackground();
                }
        </script>
        <style type="text/css">
            .fixed{
            position: absolute;
           bottom: auto;
           clear: both;
          width:expression(document.getElementById('iefixed').clientWidth);
         left:expression(document.getElementById('iefixed').offsetLeft);
         top:expression(eval(document.compatMode &&
        document.compatMode=='CSS1Compat') ?
        documentElement.scrollTop
        +(documentElement.clientHeight-this.clientHeight)
        : document.body.scrollTop
        +(document.body.clientHeight-this.clientHeight));
       }

</style>

暫時先把JS放著我們下次一一把每一個意思弄懂!