首頁 web前端 css教學 web網頁導航練習

web網頁導航練習

Apr 04, 2017 am 11:20 AM
web網頁

我在做導航練習時,是查看​​那些已經成功的網站的原始碼進行練習,希望透過這些成功的程式碼可以學習到程式碼背後前端工程師們的程式思路。
在查看原始程式碼中我也學習了很多以前忽略的細節,覺得受益匪淺啊。

當我打開拉勾網的css檔案時,第一部分是用註解的方式標記了文件的時間,作者以及樣式表內部方便查看的某些元素的顏色及寬高。
第二部分是一些初始化的元素樣式,及初始化的公共類別。
第三部分是網頁各部分的樣式。

  • 我做的第一個導航練習是拉勾網的導航。

    web網頁導航練習

    web網頁導航練習

    #觀察與思考
    1、這個導覽需要寫幾層巢狀呢?
    2、要不要設定寬度,還是使用100%?
    3、如何居中啊?
    4、登入與註冊中間的那個細線怎麼實現。
    這些是我發現的問題,肯定隨著做的過程還會有問題。

    • 設定包圍元素樣式

        #header{
            background: #fafafa;
            height: 60px;
            min-width: 1024px;
            border-top: 3px solid #00B38A;
        }
        #header .wrapper{
            width: 1024px;
            margin: 0 auto;
        }
      登入後複製

      1、最外圍#header設定了導航的高度,以及導航的背景色,增添了border-top的風格。
      2、內部.wrapper設定了寬度,外部#header設定了最小寬度,二者屬性值一樣。當然顯示器的寬度肯定大於1024px,這樣在加上在.wrapper裡進行margin: 0 auto;可以實現寬度為1024的內容居中。

    • 對導航元素進行基本佈局

      web網頁導航練習

      #web網頁導航練習

        .wrapper .logo{
            float: left;
            margin-top: 7px;
            width: 229px;
            height: 43px;
            background: url(image/logo.png) no-repeat;
        }
        .wrapper .navheader{
            float: left;
            margin-left: 30px;
        }
        .navheader li{
            float: left;
        }
        .wrapper .loginTop{
            float: right;
        }
        .loginTop li{
            float: left;
        }
      登入後複製

      1、設定logo時,圖片原來的尺寸就是229×43,所以這樣設定並不會拉伸圖片。
      2、logo與導覽選單皆左浮動,登入註冊按鈕向右浮。

    • 對導航選單進行基本樣式修飾
      注意:當滑鼠經過a時,需要有一個3px的border-bottom,但是這個3px不能超過#header,需要做的就是讓li的高度為60px,讓a的高度為57px,這樣當滑鼠經過時,顯示底邊,不會突出。

      web網頁導航練習

      web網頁導航練習

        .navheader li{
            height: 60px;
            padding: 0px 20px;                
        }
        .navheader li a{
            display: block;
            line-height: 57px;
            text-decoration: none;
            color: #999;
            font-size: 20px;
        }
        .navheader li a:hover{
            color: #333;
            border-bottom: 3px solid #00B38A;
        }
        .loginTop li{
            height: 30px;
            line-height: 30px;
            color: #FFF;
            background: #00B38A;
        }
        .loginTop li a{
            display: block;
            line-height: 30px;
            padding: 0px 10px;
            color: #fff;
            text-decoration:none ;
        }
        .loginTop li a:hover{
            color: #CCEAE3;
        }
      登入後複製

      1、a為行內元素需要將他轉換為區塊級元素,這樣才能夠設定高度。行內元素如果不設定為區塊級,直接設定行高,雖然也可以改變高度,並且佔據文檔流,但是行高所佔據的空白並不會是屬於a的。
      2、細心的可以發現,我為每一個a只設定了行高,並沒有設定高度,因為在IE6、7版本的瀏覽器,我發現未設定高度時,我發現a並沒有具備真正的區塊級元素具備的那樣,寬度充斥父元素。但是設定了高度後,發現他們一下子就具備了塊級元素的特性。但是我們不想讓他那樣,所以我就不寫高度了。這樣效果均相容。如果寫了呢,也很簡單只要為a補上一個float<a href="http://www.php.cn/wiki/974.html" target="_blank">:left</a>
      #3、ie6,並不支援png格式的圖片。 。 。 。 。

    • 其實乍一看,似乎具備了長相,但是我發現,我滑鼠經過選單,選單的變化是一個漸變的,而不是突然,。

        .navheader a,.loginTop a{
            transition: all .2s ease-in-out ;
            -webkit-transition: all .2s ease-in-out ;
            -moz-transition: all .2s ease-in-out ;
            -o-transition: all .2s ease-in-out ;
        }
      登入後複製

      transition這個屬性可以設置,當某個元素的某個樣式改變時,可以進行漸變的變化。他可以實現更精彩的畫面,需要學習html5的相關知識。會繼續學習的。

    • *{<a href="http://www.php.cn/wiki/938.html" target="_blank">outline</a>:none;}設定所有元素的輪廓預設為無。

    • body,p,a,span,ul,li{margin: 0;padding: 0;}設定所有元素的內外邊距為0。

    • ul.<a href="http://www.php.cn/wiki/1081.html" target="_blank">reset</a>{list-style:none;}去除掉列表的默认样式

    • 首先分出body与footer两个部分。这里面还涉及相应的height与min-height设置,但是这些又涉及一些兼容的问题,所以我就先不写了,回头再另写一篇。

    • 最外层嵌套使用id='header'标记,方便寻找里面子元素,里面就可以用class啦,.wrapper可以用作包围元素做公共类使用。class="navheader"class="loginTop"可以作为查找元素使用。

    • ul>li>a,一般的导航基本上都是这样的结构。

    • ul前的a可以以背景为图片,做链接。

    • 第一步:设计出html结构,并为元素设置相应的id与类

          <p>
              </p><p>
                  </p><p>
                      <a></a>
                      </p>
      登入後複製
                            
      • 首页
      •                     
      • 论坛
      •                     
      • 我的简历
      •                     
      • 发布职位
      •                 
                      
                            
      • 登录
      •                     
      • |
      •                     
      • 注册
      •                 
                                                 

          

    • 对网页进行全局的css设置。
      我先写下做导航时我用到的

    • 对导航进行css设置

    以上是web網頁導航練習的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳圖形設置
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您聽不到任何人,如何修復音頻
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25:如何解鎖Myrise中的所有內容
    4 週前 By 尊渡假赌尊渡假赌尊渡假赌

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    使用GraphQL緩存 使用GraphQL緩存 Mar 19, 2025 am 09:36 AM

    如果您最近開始使用GraphQL或審查了其優點和缺點,那麼您毫無疑問聽到了諸如“ GraphQl不支持緩存”或

    使您的第一個自定義苗條過渡 使您的第一個自定義苗條過渡 Mar 15, 2025 am 11:08 AM

    Svelte Transition API提供了一種使組件輸入或離開文檔(包括自定義Svelte Transitions)時動畫組件的方法。

    使用Redwood.js和Fauna構建以太坊應用 使用Redwood.js和Fauna構建以太坊應用 Mar 28, 2025 am 09:18 AM

    隨著最近比特幣價格超過20k美元的攀升,最近打破了3萬美元,我認為值得深入研究創建以太坊

    展示,不要說 展示,不要說 Mar 16, 2025 am 11:49 AM

    您花多少時間為網站設計內容演示文稿?當您撰寫新的博客文章或創建新頁面時,您是在考慮

    您如何使用CSS創建文本效果,例如文本陰影和漸變? 您如何使用CSS創建文本效果,例如文本陰影和漸變? Mar 14, 2025 am 11:10 AM

    文章討論了使用CSS來獲得陰影和漸變等文本效果,優化它們以進行性能並增強用戶體驗。它還列出了初學者的資源。(159個字符)

    用高架創建自己的野蠻人 用高架創建自己的野蠻人 Mar 18, 2025 am 11:23 AM

    無論您是開發人員的哪個階段,我們完成的任務(無論大小)都會對我們的個人和專業成長產生巨大影響。

    NPM命令是什麼? NPM命令是什麼? Mar 15, 2025 am 11:36 AM

    NPM命令為您運行各種任務,無論是一次性或連續運行的過程,例如啟動服務器或編譯代碼。

    在CI/CD上有點 在CI/CD上有點 Apr 02, 2025 pm 06:21 PM

    我說的“網站”比“移動應用程序”更合適,但我喜歡Max Lynch的框架:

    See all articles