Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
小白,你最近看CSS的時候碰到position屬性了么?"
“碰到了,通過position可以改變容器的定位,我記得官方描述是這樣的:這個屬性定義建立元素布局所用的定位機制。任何元素都可以定位,不過絕對或固定元素會生成一個塊級框,而不論該元素本身是什么類型。相對定位元素會相對于它在正常流中的默認位置偏移。”
“恩,不錯,今天咱說一下position里面的fixed類型吧,這個屬性值是讓容器基于瀏覽器窗口的絕對定位,在我們平時的制作中經常會碰到。”
老朱接著說:“給一個容器設定position為fixed以后,可以通過left、right、bottom、top進行四個方向的距離定位。現在我們在頁面中寫一個fixed容器,看一下代碼片段。”
“你看,這里我在body里面加了一個標識為foot的div,然后他的css里面把position設置成了fixed,并且bottom(距離底部)為0,這里的bottom是基于瀏覽器窗口的距離進行計算的,foot的寬和高也進行了設定。現在我們看一下效果!”
“你可以看到,拖動滾動條往下滾動網頁的時候,foot的位置并不會隨著滾動條的滾動發生改變,它就像是漂浮在那里一樣。這里的foot是一個div容器,所以它的內部我們還可以放任何你希望布局的內容,比如放一個圖片,或者其他的容器。”
“這里插入的圖片要想跟foot容器寬度一致,根據我們之前說過的對圖片css的操作,把圖片的寬度(width)設定為100%,圖片就會自動與父容器寬度一致了。”
小白突然想到了很多手機HTML5頁面下方都有導航條,問道:“很多手機的HTML5頁面里面下方的導航條不會隨著頁面的滾動而滾動,這種導航條是不是也通過fixed來設定的。”
“是的,跟這里的foot一樣,我們只需要把導航條的父容器設定為fixed就可以了。有個需要注意的地方是導航條會根據手機屏幕的分辨率自動占用屏幕寬度,所以我們在給foot設定css樣式的時候就不能設定寬度了。”
小白問道:“那應該怎么設定呢?”
老朱說:“你忘了我們剛說了fiex可以通過top、right、bottom、left設定四個方向的距離么?如果要讓一個fixed容器左右靠邊,我們只需要left為0,right為0,它就會自動匹配窗口的寬度。現在我們把之前的foot容器改一下。”
“通過設定bottom、left、right可以讓foot靠近底部并且保持與窗口寬度一致。然后我們在foot里面放了一個ul-li容器,讓li容器向左浮動并且寬度為父容器的25%,布局就會變成這樣。”
“網頁上的底部導航通常都會放入透明的png圖片,現在我們插入png圖,再進行一下css的調整。”
“網頁底部導航條,上面還會牽扯到鼠標事件,焦點樣式變化,這些知識我們隨后也會一一展開討論,今天先這樣吧!你先練習練習今天說的這些內容,然后試著做一個居中漂浮的層,看看能不能做出來!”
想學H5的朋友可以關注老爐,您的關注是我持續更新《小白HTML5成長之路》的動力!
篇文章,小海老師帶領大家一同做一個利用CSS技術實現的導航欄。通過這個導航欄的制作,希望大家能夠對前幾篇文章中學習到的CSS屬性能有一個整體的認識,并能夠達到靈活運用的程度。
承接文章:靈活控制塊級元素在一行內顯示,CSS浮動屬性,知道原理就很簡單
技術等級:初級 | 適合前端開發的初學者閱讀學習。
希望收藏了這篇文章的你同時也可以關注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經過系統的歸納和總結的。塌下心來認真閱讀,你一定會學到對你有用的知識。
如果你是初學前端開發,強烈建議跟著文章中講的步驟自己做一做。步驟不多,思路簡單,占用不了大家太多的時間,自己做一遍,一定會收獲不少。
一、導航欄效果圖展示:
今天我們要做的導航欄效果如下圖所示。
導航欄效果圖展示
這個效果主要使用的是<ul></ul>標記對和<a></a>標記對共同實現的。
整個實例涉及到的CSS屬性如下所示:
width
height
background-color
list-style-type
display
float
margin
line-height
二、實現頁面效果:
首先為導航欄設置一個<div>容器,并設置其id屬性的取值設置為nav。該容器用來控制導航欄的通欄位置。通欄的容器寬度應該設置為100%,這里高度設置為40px,顏色為#a72f2e。實現代碼如下所示:
<div id=”nav”></div>
#nav{
width:100%; height:40px;
background-color:#a72f2e;
}
由于要在通欄的容器中顯示固定寬度為1000px的導航欄主體,因此在該容器內部再制作一個<div>容器,用來盛放真正的導航欄代碼。我們將它的class屬性取值為navContent。這個容器的寬度設置為1000px,高度與#nav的高度等高,并且在#nav容器內部水平居中。實現代碼如下所示:
<div class=”navContent”></div>
#nav .navContent{
width:1000px; height:40px;
margin:0 auto;
}
接下來在.navContent容器內部書寫導航欄的各個條目。導航欄是使用<ul></ul>標記對實現的,而它的導航欄條目是利用<li></li>標記對書寫的。因為導航欄需要單擊后跳轉頁面,所以在<li></li>內部使用了<a></a>標記對。
這里要說明一點,因為<li></li>標記對是塊級元素,<a></a>標記對是內聯元素,因此要讓<li></li>標記對包裹<a></a>標記對,不要用<a></a>標記對包裹<li></li>標記對。
這里以導航欄條目“首頁”和“網站介紹”為例,下列HTML代碼展示了導航欄的條目內容。
<ul>
<li><a href="index.html">首頁</a></li>
<li><a href="#">網站簡介</a></li>
…
</ul>
需要更多的導航欄條目,可以在<ul>標記對內部重復書寫<li></li>和<a></a>的代碼格式。
三、編寫整個導航欄的CSS樣式:
整個導航欄是使用<ul></ul>標記對實現的,所以需要對<ul></ul>標記對編寫CSS樣式。
由于無序列表的列表項左側帶有小圓點的項目符號,因此需要將該項目符號去掉。所以<ul></ul>標記對的CSS代碼如下所示:
#nav .navContent ul{
list-style-type:none;
}
四、編寫導航欄條目的CSS樣式:
導航欄條目是使用<li></li>標記對實現的,所以需要對<li></li>標記對編寫CSS樣式。
由于<li></li>標記對是塊級元素,因此即使去掉了左側的項目符號,所有的條目依然都各自獨占一行顯示,所以需要讓它們在一行內顯示,這就需要讓所有的<li></li>標記對左浮動。CSS代碼如下所示:
#nav .navContent ul li{
float:left;
}
五、編寫導航欄條目中鏈接的CSS樣式:
導航欄條目中的鏈接是使用<a></a>標記對實現的,所以需要對<a></a>標記對編寫CSS樣式。
由于<a></a>標記對是內聯元素,因此無法設置寬度和高度,也就無法為每一個導航欄條目設置尺寸。因此需要將<a></a>標記對轉換為塊級元素(display屬性),然后設置寬度和高度(width屬性和height屬性)。
有了寬度和高度,就需要讓鏈接的文本在容器中水平居中(text-align屬性)和垂直居中(line-height屬性)了。
最后去掉鏈接的下劃線(text-decoration屬性),并設置鏈接的文本顏色(color屬性)。
導航欄條目中鏈接的CSS代碼如下所示:
#nav .navContent ul li a{
display:block;
width:100px; height:40px;
text-align:center;
line-height:40px;
text-decoration:none;
color:#dddddd;
}
六、編寫鼠標經過導航欄條目時的CSS樣式:
鼠標經過導航欄目時,即使沒有觸碰到鏈接的文本部分,也應該能夠進行跳轉。因此需要對<a></a>標記對編寫鼠標經過時的CSS樣式。
鼠標經過時,希望背景顏色(background-color屬性)和文本顏色(color屬性)發生變化。
鼠標經過鏈接時的CSS代碼如下所示:
#nav .navContent ul li a:hover{
background-color:#ff5857;
color:#ffffff;
}
七、整體代碼:
至此,這個簡單的導航欄效果就完全實現了,CSS整體使用了約30行代碼。實現這個導航欄效果的HTML代碼如下圖所示。
HTML整體代碼
實現這個導航欄效果的CSS代碼如下圖所示。
CSS整體代碼
如果大家希望得到更加全面的關于HTML和CSS技術講解的內容,可以私信我,我會免費將小海老師自己編寫的HTML和CSS的PDF教材發給你,幫助你在前端開發的道路上闊步前行。
在頭條上發表的這些文章都是從前端開發的基礎開始一步一步講起的。我非常希望能有更多的前端開發初學者通過我寫的文章,逐步學到一定的知識,甚至慢慢有了入門的感覺。這些文章都是我這幾年教學過程中的經驗,每寫一篇時我都盡量把握好措辭,用簡單易懂的語言描述,同時精心設計版面,讓版面更加豐富,激發閱讀興趣。所以,每一篇文章可能篇幅不長,但是都要耗費小海老師很久的時間。
希望收藏了這篇文章的你同時也可以關注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經過系統的歸納和總結的。塌下心來認真閱讀,你一定會學到對你有用的知識。
關注“小海前端”,我會繼續為大家奉上更加深入的前端開發文章,也希望更多的初學者跟著學下去,我們共同將前端開發的路努力堅持的走下去。
下一次,小海老師開始為大家講解CSS的盒屬性。盒屬性是div布局的基礎,在實際的布局過程中有許多應用技巧。下一篇文章我會為大家將盒屬性一個一個進行詳細的分析。
果你正在尋找能夠吸引人眼球的高素質頂部懸浮菜單設計,那么這12個導航設計案例值得你一看~
導航是網站和 APP 當中必不可少的組成部分,它們引導用戶抵達目標,發現內容。為了讓用戶能夠更加方便地使用導航,許多網站和 APP 選擇使用了頂部懸浮導航,無論瀏覽到哪里,都能輕松使用它跳轉到其他地方。雖然有的用戶并不喜歡這個一直占據屏幕空間的小控件,但是它確實提供了無與倫比的便捷性。
如果你正在尋找能夠吸引人眼球的高素質頂部懸浮菜單設計,那么今天的文章一定不要錯過,這12個導航設計絕對不會讓你失望。
雖然我并不懂法文,這個網站并不難使用和理解。
在頁面的頂部你會看到包含文本的 LOGO 和導航鏈接,當你向下滑動的時候,LOGO 中的文本消失,而導航上移。這樣的設計占據空間并不大,對于承擔繁重工作量的菜單而言,這是相對理想的選擇。
不過,如果你覺得這樣還占空間的話,可以加入過渡動效,然后讓鏈接的文本變化為小圖標,這樣的技術也很成熟。
SEJ 是一個很棒的博客,而它的導航設計也算得上是獨樹一幟,因為在別的地方幾乎看不到相同的設計。
當你訪問網站首頁的時候,你會看到導航下的輪播圖中嵌入了網站的 LOGO,導航欄左側有 LOGO 和注冊按鈕構成的動態圖片。當你向下滾動的時候,整個導航向右移動,在左側出現網站 LOGO,整個設計非常動感,也非常的炫酷。
這樣的設計無疑是經過仔細斟酌,并且確實有用的,兼顧到了品牌的設計和導航的功能性。
在整個列表當中,AWD Agency 的側邊欄式導航是為數不多的幾個案例之一。
只需要點擊左上角的箭頭就能將側邊欄隱藏起來,縱向上空間更大,側邊欄導航所能承載的內容并不會比頂部導航更少,而且在兼容移動端上一點都不含糊。
這個設計的優點在于可控性上非常不錯,處理得干凈利落,也很直接。
我從來沒有用過 Graz Secrets 的 iOS APP,但是看了他們的官網之后,感受到他們在用戶體驗上的獨特想法,對此就很有興趣了。
網站的頂部導航設計很有特色,通過小邊框來和下面的頁面部分來區分,最有特色的是導航欄最中間的位置,一個風格獨特的「立即下載」的按鈕。
當你向下滾動的時候,整個導航會很好的融入整個布局。
Grain & Mortar 是我去年見過的最干凈的設計機構的網站。
許多網站會為了流行和時尚而使用一些圖形、動畫甚至圖片,這些元素常常會讓人感到困惑,但是 G&M 的網站不是這樣。這個網站中沒有多余的元素,但是最重要的是,網站的頂部懸浮導航的設計。
網站首屏使用的是視頻背景,為了更好的融入感,導航條目懸浮在前景,這無疑帶來了沉浸式的體驗。當頁面向下滾動的時候,通過轉場動畫,導航出現了一個白色的底,通過一條淺灰色的線,和頁面的內容部分進行了區分,并且固定懸浮在頂部。
Jorge Rigabert 同樣是一個非英語類的網站。這個網站同樣采用了側邊欄導航,由于網站采用了類似單頁這樣的設計,導航欄中的條目指向到頁面中不同的位置和模塊。當你滾動頁面的時候,左側導航欄會隨之變化,為你高亮展示出所處的位置。頁面的布局算得上是中規中矩,而導航欄在指引性上的設計,可謂是出彩。
作為一個作品集網站,Daniel Filler 的網頁設計也非常的討喜,它和前面 G&M 的導航設計有許多相似的地方。打開首屏的時候,導航底部和背景 Banner 圖很好的融入到一起,頁面的左上角是巨大的 LOGO。
當你向下滾動的時候,導航消失隨后又出現,這個時候它擁有了一個半透明的底部背景,巨大的 LOGO 部分顯示,融入導航,導航欄的條目則從最初的右邊挪到了靠左的位置。整個設計在體驗上總體是無縫順暢的,最讓人印象深刻的設計在于,常常出現在網頁右下角的「回到頂部」的箭頭按鈕,被放置在頂部導航的最右邊,非常的順手,頗為創新。
在我所看到的諸多酒店類的網站當中,Novotel Hotels 的網站導航設計絕對是最特殊的那款。
網站的許多導航功能并沒有直接擺出來,而是隱藏到了左上角的漢堡圖標當中。當你向下滾動的時候,預訂篩選菜單會隨著滾動靠近頂部導航,然后粘在上面,懸浮置頂。方便用戶隨時隨地地搜索和篩選。
FHOKE 這個網站的導航設計也不算復雜,實際上就是LOGO 和右上角的菜單按鈕,它是沒有底色,并且隨著頁面內容的背景顏色變化而自動匹配對比強烈的黑色或者白色。這樣的設計讓導航無縫地融入到整個頁面的布局當中,并且讓用戶可以隨時便捷地點擊導航中的內容。
對于 Brit + Co 的導航設計,你會發現幾個非常不錯的優點。當你向下滾動瀏覽的時候,懸浮置頂的導航欄會自動隱藏起來,這樣會節省空間,并且這種設計也很直接。當你向上回滾頁面的時候,導航會出現。
而搜索功能也設計得非常巧妙,當你點擊搜索按鈕的時候,搜索框會出現在導航下方,足夠長,足夠明顯的輸入框,比什么都好。
打開 Coloud 網站,向下滾動的時候,你會注意到導航欄的邊戶:它變窄了,變小了,甚至不會顯示公司的 LOGO 了。這看起來很瘋狂,但是誰會因為向下滾動瀏覽而忘記所處的網頁呢?當然不會。導航這樣處理,其實更加方便,縮小,保持存在感,提升定位感和體驗。
最后這個案例絕對是最返璞歸真的設計方案。沒有滾動的標識,沒有搜索框,沒有視覺障礙,沒有動效,它就是在右上角上四個小小的鏈接,黑色,對比強烈,始終存在,節省空間,隨時可以點擊。對于極簡風的網頁而言,這樣的設計效果是很不錯的。
原文作者 : JAKE ROCHELEAU
譯者/編輯 : 陳子木
譯文地址:https://www.uisdc.com/12-fixed-sticky-navbars
本文由 @陳子木 授權發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自 Pexels,基于 CC0 協議
*請認真填寫需求信息,我們會在24小時內與您取得聯系。