Html技巧 語義化你的代碼
Html語義化, 似乎是一個(gè)老生常談的問題. Google 一下,也有大把關(guān)于語義化的文章. 為什么要語義化標(biāo)簽? 我是這樣認(rèn)為的:Html的每個(gè)標(biāo)簽都有它特定的意義,而語義化,就是讓我們?cè)谶m當(dāng)?shù)奈恢糜眠m當(dāng)?shù)臉?biāo)簽, 以更好的讓人和機(jī)器(機(jī)器可理解為瀏覽器可理解為搜索引擎)都一目了然. 如果我的解釋不夠明了, 請(qǐng)Google.
如何在合適的位置使用合適的標(biāo)簽?
這是一個(gè)簡(jiǎn)單的理解邏輯. 比如, h1~h6標(biāo)簽是用于標(biāo)題類的; ul是用于無序列表的; ol是用于有充列表的; dl是用于定義列表的; em,strong標(biāo)簽是用來強(qiáng)調(diào)的…說白了, Html標(biāo)簽的每個(gè)英文釋義決定了它的語義(本文后面, 我會(huì)放一份常用Html標(biāo)簽的英文釋義對(duì)照表供參考).
什么是讓人和機(jī)器都能一目了然?
檢查Html頁面是否語義化最好的方法, 便是去掉頁面的Css鏈接, 看網(wǎng)頁結(jié)構(gòu)是否井然有序, 頁面是否仍然有很好的可讀性. 為什么可以這么說? 大家都知道瀏覽器都有默認(rèn)的樣式(推薦使用Chrome的Web Developer Tools for Chrome 插件, 或者Firefox的Web Developer 插件), 比如h1~h6, 會(huì)有加粗/字號(hào)依次減小、上下邊距的默認(rèn)樣式, ul、ol、dl都有默認(rèn)的項(xiàng)目符號(hào), strong默認(rèn)有加粗的樣式…所以, 同樣的頁面, 語義化良好的Html可以在頁面Css去掉的情況下依然有良好的表現(xiàn).
還有一點(diǎn), 好的語義化編碼, 對(duì)搜索引擎有更好的友好性. 搜索蜘蛛是不認(rèn)識(shí)你的Css的, 但它能識(shí)別Html標(biāo)簽.
下面是一個(gè)簡(jiǎn)單的例子:

<!--未語義化-->
<div id="header">
<div class="h1">Mr.Think的博客</div>
<div class="h2">專注Web前端技術(shù),熱愛Php,崇尚簡(jiǎn)單生活的凡夫俗子.</div>
</div>
<!--語義化之后-->
<div id="header">
<h1>Mr.Think的博客</h1>
<h2>專注Web前端技術(shù),熱愛Php,崇尚簡(jiǎn)單生活的凡夫俗子.</h2>
</div>
通過上面的簡(jiǎn)單的示例和沒有任何Css定義情況下的效果圖, 該明白了兩者的區(qū)別了吧. 如果你在學(xué)習(xí)Html5, 它的header、footer、sidebar、article等元素都是新增的語義化標(biāo)簽.
Html編碼語義化是邁向高質(zhì)量前端開發(fā)的一步. 即更好的遵循Web標(biāo)準(zhǔn), 也能讓你頁面在去掉樣式后依然井然有序. 關(guān)于語義化更多更詳細(xì)的介紹, 可以自行Google或閱讀阿當(dāng)?shù)?a title="Web前端開發(fā)修煉之道" target="_blank" >《Web前端開發(fā)修煉之道》 第三章.
附: 標(biāo)簽語義中英文對(duì)照表
| 標(biāo)簽名 | 英文全拼 | 中文翻譯 |
|---|---|---|
| a | anchor | 錨 |
| abbr | abbreviation | 縮寫詞 |
| acronym | acronym | 取首字母的縮寫詞 |
| address | address | 地址 |
| b | bold | 粗體 |
| big | big | 變大 |
| blockquote | block quotation | 區(qū)塊引用于 |
| br | break | 換行 |
| caption | caption | 標(biāo)題 |
| center | center | 居中 |
| dd | definition description | 定義描述 |
| del | delete | 刪除 |
| div | division | 分隔 |
| dl | definition list | 定義列表 |
| dt | definition term | 定義術(shù)語 |
| em | emphasized | 加重 |
| fieldset | fieldset | 域集 |
| font | font | 字體 |
| h1~h6 | header1~header6 | 標(biāo)題1~標(biāo)題6 |
| hr | horizontal rule | 水平尺 |
| i | italic | 斜體 |
| ins | inserted | 插入 |
| legend | legend | 圖標(biāo) |
| li | list item | 列表項(xiàng)目 |
| ol | ordered list | 排序列表 |
| p | paragraph | 段落 |
| pre | preformatted | 預(yù)定義格式 |
| s | strikethrough | 刪除線 |
| small | small | 變小 |
| span | span | 范圍 |
| strong | strong | 加重 |
| sub | subscripted | 下表 |
| sup | superscripted | 上標(biāo) |
| u | underlined | 下劃線 |
| ul | unordered list | 不排序列表 |
| var | variable | 變量 |
下面補(bǔ)充一下
1、什么是html語義化
選擇合適的html標(biāo)簽,便于開發(fā)者閱讀和寫出更優(yōu)雅的代碼的同時(shí)讓瀏覽器的爬蟲和機(jī)器很好地解析。
2、為什么要語義化?
為了在沒有CSS的情況下,頁面也能呈現(xiàn)出很好地內(nèi)容結(jié)構(gòu)、代碼結(jié)構(gòu):為了裸奔時(shí)好看;
用戶體驗(yàn):例如title、alt用于解釋名詞或解釋圖片信息、label標(biāo)簽的活用;
有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標(biāo)簽來確定上下文和各個(gè)關(guān)鍵字的權(quán)重;
方便其他設(shè)備解析(如屏幕閱讀器、盲人閱讀器、移動(dòng)設(shè)備)以意義的方式來渲染網(wǎng)頁;
便于團(tuán)隊(duì)開發(fā)和維護(hù),語義化更具可讀性,是下一步吧網(wǎng)頁的重要?jiǎng)酉?,遵循W3C標(biāo)準(zhǔn)的團(tuán)隊(duì)都遵循這個(gè)標(biāo)準(zhǔn),可以減少差異化。
3、寫HTML代碼時(shí)應(yīng)注意什么?
1. 盡可能少的使用無語義的標(biāo)簽div和span;
2. 在語義不明顯時(shí),既可以使用div或者p時(shí),盡量用p, 因?yàn)閜在默認(rèn)情況下有上下間距,對(duì)兼容特殊終端有利;
3. 不要使用純樣式標(biāo)簽和規(guī)范不支持的標(biāo)簽,如:b、font、u、center,strike,menu等,改用css設(shè)置。
4. 需要強(qiáng)調(diào)的文本,可以包含在strong或者em標(biāo)簽中(瀏覽器預(yù)設(shè)樣式,能用CSS指定就不用他們),strong默認(rèn)樣式是加粗(不要用b),em是斜體(不用i);
5. 使用表格時(shí),標(biāo)題要用caption,表頭用thead,主體部分用tbody包圍,尾部用tfoot包圍。表頭和一般單元格要區(qū)分開,表頭用th,單元格用td;
6. 表單域要用fieldset標(biāo)簽包起來,并用legend標(biāo)簽說明表單的用途;
7. 每個(gè)input標(biāo)簽對(duì)應(yīng)的說明文本都需要使用label標(biāo)簽,并且通過為input設(shè)置id屬性,在lable標(biāo)簽中設(shè)置for=someld來讓說明文本和相對(duì)應(yīng)的input關(guān)聯(lián)起來。
8. 不要省略某些標(biāo)簽的屬性,<img>標(biāo)簽的alt屬性的作用是當(dāng)圖片不能正常顯示的時(shí)候的替換文字,<a>標(biāo)簽的title屬性可作為說明信息,并且當(dāng)鼠標(biāo)hover時(shí)顯示為提示信息。
雅虎一道面試題:
<P> 哥寫的不是HTML,是寂寞。<br><br> 我說:<br>不要迷戀哥,哥只是一個(gè)傳說
其中存在的問題:
1. html與xhtml標(biāo)準(zhǔn)的區(qū)別,xhtml有嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu),標(biāo)簽必須關(guān)閉,單標(biāo)簽最后需要添加/來關(guān)閉,并且標(biāo)簽都必須小寫;
2. 結(jié)構(gòu)和樣式的分離,不應(yīng)該使用<br/>來控制樣式,合理設(shè)計(jì)結(jié)構(gòu),換行的段落需要為每個(gè)段落都添加p,樣式需要利用css實(shí)現(xiàn);
3. 合理利用標(biāo)簽,注重標(biāo)簽語義化,縮略可以用<abbr>標(biāo)注,“我”可以用<cite>標(biāo)注,引用的說話內(nèi)容可以用<q>標(biāo)記;
//代碼參考如下
<p>哥寫的不是<abbr title="Hypertext Markup Language">HTML</abbr>,是寂寞。</p>
<p><cite>我</cite>說:<q>不要迷戀哥,哥只是一個(gè)傳說</q></p>
以上就是Html技巧 語義化你的代碼 的詳細(xì)內(nèi)容,更多關(guān)于Html語義化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
- 這篇文章主要介紹了HTML5語義化元素的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-08-22
- HTML5 只有一個(gè)簡(jiǎn)單的文檔類型:<!DOCTYPE html>,表示瀏覽器會(huì)按照標(biāo)準(zhǔn)模式解析。今天小編給大家?guī)砹薍TML5新特性之語義化標(biāo)簽,感興趣的朋友一起看看吧2017-10-31
- b 和 i 標(biāo)簽在現(xiàn)在的 Web 標(biāo)準(zhǔn)潛規(guī)則中是不推薦使用,甚至是反對(duì)使用的,因?yàn)檎J(rèn)為他們只是“表現(xiàn)”粗體和斜體,而沒有任何“語義”。更多的用 strong2008-10-17
HTML5 語義化結(jié)構(gòu)化規(guī)范化
HTML結(jié)構(gòu)更加清晰、規(guī)范,學(xué)習(xí)HTML5優(yōu)化結(jié)構(gòu)的思路。 HTML5添加了一些新元素,用來標(biāo)識(shí)常用的結(jié)構(gòu),是html更具語義化,可是我們無法直接使用,即使可能用到還要等他個(gè)十年2008-10-17- 本篇文章小編為大家介紹HTML標(biāo)簽語義化(含H5) ,有需要的朋友可以參考一下2013-04-08
這篇文章主要介紹了詳解HTML5常用的語義化標(biāo)簽的相關(guān)資料,需要的朋友可以參考下2019-09-27- 下面小編就為大家?guī)硪黄獪\談HTML的語義化和一些簡(jiǎn)單優(yōu)化。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-12
淺談?wù)Z義化的HTML結(jié)構(gòu)到底有什么好處
下面小編就為大家?guī)硪黄獪\談?wù)Z義化的HTML結(jié)構(gòu)到底有什么好處。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-05使用語義化標(biāo)簽去寫你的HTML 兼容IE6,7,8
下面小編就為大家?guī)硪黄褂谜Z義化標(biāo)簽去寫你的HTML 兼容IE6,7,8。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧2016-04-14- html標(biāo)簽語義:即html標(biāo)簽的含義2012-11-17


