自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

完美HTML導(dǎo)航條最佳實(shí)踐

原創(chuàng)
開發(fā) 前端
本文旨在介紹一些設(shè)計完美導(dǎo)航條的最佳實(shí)踐和建議,其實(shí)導(dǎo)航條一點(diǎn)也不復(fù)雜,只不過你可能從未如此仔細(xì)地思考過這些方法,希望您看完本文會對此豁然開朗。

【51CTO譯文】導(dǎo)航條承載著網(wǎng)站的導(dǎo)航和分流作用,它是每個網(wǎng)站不可缺少的元素,導(dǎo)航條設(shè)計得優(yōu)美能給瀏覽者留下深刻的印象,很多Web設(shè)計人員應(yīng)該都研究過不少導(dǎo)航條設(shè)計方法,但很難找到一種***的設(shè)計方法。我們首先從一個典型的HTML結(jié)構(gòu)說起,下圖展示了一個常見的導(dǎo)航條。

常見導(dǎo)航條示意圖
圖 1 常見導(dǎo)航條示意圖

要實(shí)現(xiàn)上圖所示的導(dǎo)航條,其HTML代碼其實(shí)十分簡單,除了一個<div>層,以及它包含的無序列表元素(ul和li)外就沒有其它東西了。此外,你可能已經(jīng)知道,HTML 5引入了一個新的元素 - <nav>標(biāo)簽,它表示一個導(dǎo)航條,使用<nav>可以代替更復(fù)雜的<div>標(biāo)簽,但從下面的代碼你就知道,其實(shí)HTML 5并沒有改變導(dǎo)航條的基礎(chǔ)結(jié)構(gòu)。(相關(guān)文章推薦:細(xì)談HTML 5新增的元素

圖1所示導(dǎo)航條對應(yīng)的HTML 4代碼示例:

  1. <div id="nav"> 
  2. <ul> 
  3. <li><a href="/index">Home</a></li> 
  4. <li><a href="/link1">Link 1</a></li> 
  5. <li><a href="/link2">Link 2</a></li> 
  6. <ul> 
  7. </div> 

圖1所示導(dǎo)航條對應(yīng)的HTML 5代碼示例:

  1. <nav> 
  2. <ul> 
  3. <li><a href="/index">Home</a></li> 
  4. <li><a href="/link1">Link 1</a></li> 
  5. <li><a href="/link2">Link 2</a></li> 
  6. <ul> 
  7. </nav> 

無論是使用HTML 4還是使用HTML 5,使用無序列表元素組織導(dǎo)航條總是一個很好的方法,特別是當(dāng)你在主菜單和子菜單之間實(shí)現(xiàn)了比較復(fù)雜的交互時更是如此。此外,這種方法允許你通過CSS對導(dǎo)航條的不同元素實(shí)現(xiàn)更多控制,從而簡化自定義操作。

帶有子菜單的導(dǎo)航條
圖 2 帶有子菜單的導(dǎo)航條

下面是帶有子菜單導(dǎo)航條的HTML代碼結(jié)構(gòu)示例:

  1. <div id="nav"> <!-- nav container --> 
  2. <ul> 
  3. <li><a href="/link1">Link 1</a> <!-- main item --> 
  4. <ul> <!-- item submenu --> 
  5. <li><a href="/s-link1">Sub Link 1</a></li> 
  6. <li><a href="/s-link2">Sub Link 2</a></li> 
  7. </ul> <!-- close submenu --> 
  8. </li> 
  9. <ul> 
  10. </div> 

#p#

CSS代碼建議

下面是對編寫良好的CSS代碼收集的三個簡單的建議。

1、給<li>標(biāo)簽設(shè)置的“height”屬性值應(yīng)等于給<ul>標(biāo)簽設(shè)置的“height”屬性值,如果高度不一致,會出現(xiàn)多余的空白區(qū)域,會破壞頁面的美感,可維護(hù)性也很差。

<li>和<ul>標(biāo)簽的高度屬性應(yīng)該相等
圖 3 <li>和<ul>標(biāo)簽的高度屬性應(yīng)該相等

2、如果想***地垂直對齊文本,只需將<li>標(biāo)簽和<ul>標(biāo)簽的“line-height”屬性值設(shè)為一樣即可。

***的文本垂直對齊方法 
圖 4 ***的文本垂直對齊方法

3、如果想讓鏈接所在的整個區(qū)域都可點(diǎn)擊,只需將<a>標(biāo)簽的“display”屬性設(shè)為“block”即可。


圖 5 讓鏈接所在的整個區(qū)域都可點(diǎn)擊

#p#

與頁面交互

你可以在導(dǎo)航條的項(xiàng)目和用戶訪問的某個頁面之間創(chuàng)建各種類型的交互,一個最簡單的交互是將特定標(biāo)簽的狀態(tài)改為“激活”狀態(tài),例如,如果當(dāng)前頁面是主頁,或當(dāng)前的文章屬于導(dǎo)航條中的某個特定分類,如下圖所示,當(dāng)前頁面顯示的文章屬于“Apple”分類,因此導(dǎo)航條中的“Apple”菜單就處于激活狀態(tài)。

導(dǎo)航條狀態(tài)與頁面內(nèi)容的交互
圖 6 導(dǎo)航條狀態(tài)與頁面內(nèi)容的交互

如果你使用WordPress,你可以使用下面的代碼確定主頁,讓導(dǎo)航條上的“主頁”處于激活狀態(tài)。

  1. <?php if(is_home()){ ?> 
  2. <li class="active">Home</li> 
  3. <?php } else { ?> 
  4. <li><a href="<?php echo get_option('home'); ?>">Home</a></li> 
  5. <?php } ?> 

如果你使用的是基于分類的導(dǎo)航條,當(dāng)當(dāng)前的文章屬于某個分類時,你可以使用下面的代碼高亮顯示該分類的標(biāo)簽。例如,假設(shè)你的導(dǎo)航條有一項(xiàng)叫做“Apple”,當(dāng)前顯示的文章剛好歸于“Apple”分類,那你可以使用下面的激活“Apple”標(biāo)簽。

  1. <?php 
  2. global $post;  
  3. $categories = get_the_category();  
  4. foreach($categories as $category) {  
  5. $cat_name = $category->cat_name;  
  6. ?> 
  7. <ul> 
  8. <?php if(!is_home() && $cat_name=='Apple'){?> 
  9. <li class="active-sn">Apple</li> 
  10. <?php } else { ?> 
  11. <li><a href="<?php echo get_option('home'); ?>/category/apple">Apple</a> 
  12. </li><?php } ?> 
  13. <ul> 

其實(shí)導(dǎo)航條一點(diǎn)也不復(fù)雜,看了本文是不是豁然開朗了許多,也許你還有自己的想法,不妨和大家分享一下吧!

原文作者:Antonio Lupetti                      黃永兵 譯  

原文地址:http://woorkup.com/2010/08/09/best-practices-to-design-a-perfect-html-navigation-bar/

【本文是51CTO精選譯文,轉(zhuǎn)載請務(wù)必標(biāo)明作者和出處!】

【編輯推薦】 

  1. HTML 5中的五個應(yīng)用亮點(diǎn)
  2. Ruby on Rails導(dǎo)航菜單自動生成的方法
  3. ASP.NET四種頁面導(dǎo)航方式的比較與選擇
責(zé)任編輯:王曉東 來源: 51CTO.com
相關(guān)推薦

2009-09-22 14:05:46

HTML導(dǎo)航條Visual Stud

2011-12-21 09:38:31

HTML 5

2009-07-21 09:06:59

谷歌bing百度

2015-10-10 09:35:38

swift規(guī)范

2013-04-01 10:01:20

iOS開發(fā)NavigationB

2023-11-28 07:57:04

Dockerfile指令

2015-10-10 10:05:03

Swift2.0實(shí)踐

2011-07-08 15:49:28

iPhone 工具欄 導(dǎo)航條

2009-01-15 09:57:00

2013-12-12 10:20:00

JavaScript學(xué)習(xí)

2018-01-03 11:22:45

2024-05-13 13:13:13

APISpring程序

2024-01-05 09:08:48

代碼服務(wù)管理

2012-03-29 09:18:47

HTML5WEB

2015-06-10 10:18:27

WebAPP開發(fā)技巧

2023-09-01 09:47:54

微軟Windows

2023-07-21 01:12:30

Reactfalse?變量

2011-08-18 11:05:21

jQuery

2011-06-27 09:47:37

HTML 5

2016-02-17 09:26:09

數(shù)據(jù)中心
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號