鍍金池/ 教程/ 產(chǎn)品經(jīng)理/ 第二十五章 導(dǎo)航條(十)
第四十一章 定位實例(二)
第十四章 從 div 扯開去
第四十三章 定位實例(四)
第四十五章 無聊的寫個小游戲吧
第十七章 導(dǎo)航條(二)
第十三章 神一樣的 CSS
第二十三章 導(dǎo)航條(八)
第四十章 定位實例(一)
第五十九章 見證奇跡
第三十五章 隨便聊聊
第十九章 導(dǎo)航條(四)
第四十四章 定位實例(五)
第三十六章 定位(一)
第三十九章 坐標(biāo)系
第三十四章 一些補(bǔ)遺
第五十八章 各就各位,預(yù)備~~
第二十七章 首屏大海報(一)
第二十六章 CSS 書寫規(guī)范
第十一章 一起寫個百度
第三章 幾個小故事
第七章 認(rèn)識鏈接
前言
第五十五章 苛刻至極!
第三十三章 一個頁尾
第二十二章 導(dǎo)航條(七)
第四十七章 JavaScript Start
第五十章 最簡單的邏輯判斷
第五十三章 一百遍啊一百遍!
第四章 做點準(zhǔn)備工作
第一章 開場小談
第六章 開始寫點東西
第五十六章 一套工具
第四十二章 定位實例(三)
第五十二章 愛妃,朕還宣你!
第二十五章 導(dǎo)航條(十)
第五章 一個模板
第二章 扯扯學(xué)習(xí)方法
第十八章 導(dǎo)航條(三)
第四十六章 響應(yīng)式
第四十八章 變量
第十六章 導(dǎo)航條(一)
第三十八章 定位(三)
第二十九章 首屏大海報(三)
第四十九章 運算符
第九章 來吧,表哥(表格)!
第三十一章 還是海報
第十章 表格布局原理
第三十章 首屏大海報(四)
第十二章 相對地址
第二十章 導(dǎo)航條(五)
第五十七章 助理!麻煩過來一下~
第三十二章 一些格子
第五十一章 朕宣你!
第五十四章 一萬遍啊一萬遍!
第二十八章 首屏大海報(二)
第十五章 開始征途
第三十七章 定位(二)
第六十章 開始玩玩
第二十一章 導(dǎo)航條(六)
第八章 半個標(biāo)簽
第二十四章 導(dǎo)航條(九)

第二十五章 導(dǎo)航條(十)

現(xiàn)在來說說這個瀏覽器寬度的問題,這可不是一個小問題哦,因為大家的顯示器尺寸是不同的,所以瀏覽器窗口的大小相應(yīng)的也必然無法保持一致,我們必須同時考慮到可能出現(xiàn)的各種情況才行。

那么當(dāng)前我們遇到的問題是當(dāng)瀏覽器寬度過小的時候?qū)Ш降膬?nèi)容放不下,于是被排成了幾行,很不好看。當(dāng)然這個情況如果不去管他其實也沒什么問題,因為我們后面要寫的其他內(nèi)容都很寬,足以撐著頁面保證寬度足夠當(dāng)前的導(dǎo)航使用。但是有些同學(xué)希望做的更嚴(yán)謹(jǐn)一些,那么我們來試一試。

我們先來簡單分析一下,我們做的是一個電腦頁面,#nav 元素寬度和頁面相同,一般情況都是沒啥問題的,但是當(dāng)瀏覽器寬度太小,就會被擠壓,也就是 #nav 的寬度不能太小就好了。

我們能說不讓讀者調(diào)節(jié)瀏覽器尺寸么?顯然不行,那么我們規(guī)定一下 #nav 的最小寬度吧~這個很簡單,CSS 中給給 #nav 元素加一個屬性 min-width: 960px; 就好。這是什么意思呢?如果是寬度 width:960px; 的話我們就理解了,這是固定寬度 960px?,F(xiàn)在呢是 #nav 享有根據(jù)情況自動調(diào)節(jié)寬度的權(quán)利(就像以前一樣),但是,當(dāng)他的寬度小于 960px 時,不可以了,到 960px為止,你便只能固定這個寬度,不能再小了。這就是最小寬度的意義,大了你隨意,但是不可以小于這個下限,否則強(qiáng)制設(shè)定為下限的值。我們再來看看效果。寬度足夠的時候不用說了,我現(xiàn)在把瀏覽器寬度設(shè)定為 800px,然后再看:

底下出現(xiàn)了滾動條,因為要是自由寬度的話現(xiàn)在 #nav 應(yīng)該是 800px 寬,但是這小于他的最小寬度 960px,于是就被強(qiáng)制為了 960px。一個很好玩的屬性。

那么有最小就有最大, max-width 是最大寬度。與此同理的高度也可以通過添加前綴產(chǎn)生兩個屬性,最大高度(max-height)和最小高度(min-height)。因為用法相差無幾在這里就不細(xì)說了。

然后我們開始研究一下新的問題,這個問題也許有很多朋友早就等不及了,大家寫這個的時候有木有想過寬屏的朋友?這導(dǎo)航分左右,在寬屏上左邊一堆,右邊一堆,中間空著一大塊,那感覺就好像是下圖:

你看,我們解決完了尺寸太小的時候的情況,現(xiàn)在還要面臨尺寸太大的時候的情況,但是這個情況好像不是設(shè)置最大尺寸可以解決的問題啊。因為我們還是蠻希望背景填滿整個寬度的,只是內(nèi)容不要這么分散就好了。

等等,我們說內(nèi)容不要這么分散!那就把內(nèi)容部分打個包好啦~,是不是?我去打個包哦,你看著:

<div id="nav">
    <div class="nav-content">
        <div id="logo">
            <a href="#">代碼能有多難?</a>
        </div>
        <ul id="nav-items">
            <li class="nav-item"><a href="#">首頁</a></li>
            <li class="nav-item"><a href="#download">下載</a></li>
            <li class="nav-item"><a href="#feature">特點</a></li>
            <li class="nav-item"><a href="#about">關(guān)于</a></li>
        </ul>
        <ul id="nav-items-r">
            <li class="nav-item"><a href="#signin">登錄</a></li>
            <li class="nav-item"><a href="#signup">注冊</a></li>
        </ul>
        <div class="clear"></div>
    </div>
</div>

看到了,我又加了一個 div(.nav-content),然后把以前的內(nèi)容都放在里面?,F(xiàn)在我們設(shè)定一下他的 CSS。

#nav .nav-content {
    width:960px;
}

這個挺好理解的,我就是把內(nèi)容限定在這個里面了,給他一個固定的寬度,至于外面的 #nav 讓他帶著背景去適應(yīng)窗口好了,我們來看效果:

換做這么寫倒是內(nèi)容緊湊了,可是內(nèi)容不在中間怎么看???來啊,這里教大家一個讓元素橫向居中的辦法,啥是居中?就是元素兩邊空余的寬度相同,對吧?所以我們這樣寫:

#nav .nav-content {
    width:960px;
    margin:0 auto;
}

就是添加了一個 margin:0 auto; 哦,上下外補(bǔ)是 0 沒有啥問題,本來我們就不需要,而且不設(shè)置默認(rèn)也是 0?,F(xiàn)在說左右,auto 就是自動啊,就是根據(jù)情況自己看著辦,你想兩邊權(quán)限一樣,當(dāng) #nav 的寬度比 .nav-content 大的時候,反正不是這邊空著就是那邊空著,兩人權(quán)利一樣大的結(jié)果就是——平分。這是最公平的辦法,那么空余的部分左右平分是不是就是左右間距一樣,就是居中了呢?

但是用這個要注意兩個問題:第一、這個辦法沒法搞定垂直居中,因為受到文檔流向上的原動力影響(參見 VIP章節(jié) 關(guān)于浮動的故事),同理浮動元素也不行;第二、被居中的元素必須指定寬度,否則兩邊都搞不清一共剩下多少,怎么平分?

來看看效果:

一切正常了,那么我們想一想,現(xiàn)在有里面的 .nav-content (已經(jīng)指定了寬度)來撐著,#nav 的 min-width 還有必要嗎?當(dāng)然沒有了,于是去掉它。

到這里,今天我們其實講了導(dǎo)航的兩種布局方式,一種占用全部寬度,一種只占用中心一部分寬度。希望大家好好練習(xí)一下。其實這兩種方式都蠻常見,大家可以留意觀察一下我們見到的網(wǎng)站哦。

然后我們發(fā)現(xiàn)我們花費了整整十章才寫了一個簡陋的導(dǎo)航,但是我們這十章只是在講導(dǎo)航么?我們快把常用的 CSS 知識說的差不多了好不好?所以一定要認(rèn)真照著做練習(xí),多思考,覺得懂了就按著自己的想法去修改去嘗試,這樣才能讓自己真的理解他們。當(dāng)然要是不很懂也沒關(guān)系,頁面剛寫到這里,后面的內(nèi)容還要反復(fù)用到這些知識,一回生二回熟,跟著學(xué)下去慢慢也就會了哦~~

本章學(xué)習(xí)卡片:卡片 25

本章代碼下載:本章代碼


本書是收費的,不過交費憑自覺。價格定義為每人請我喝一杯咖啡(哪種品質(zhì)的咖啡隨意),支付寶賬號:

alay9999@163.com (劉源)

為了讓大家閱讀方便,本書將在如下站點發(fā)布,但最終內(nèi)容以主站為準(zhǔn):

未經(jīng)本人許可,禁止任何形式轉(zhuǎn)載。相關(guān)事宜請聯(lián)系: dms@zji.me