第一部分,什麼是語義化?其實簡單說來就是讓機器能夠讀懂內容。css
Web語義化是指使用語義恰當的標籤,使頁面有良好的結構,頁面元素有含義,可以讓人和搜索引擎都容易理解。html
第二部分,web語義化的做用git
1)利於機器識別,方便SEO;github
2)代碼簡潔明瞭,利於閱讀和維護,方便之後擴展web
3)利於團隊協做,減小出錯概率,使工做有個統一標準;瀏覽器
一、 首先要知道Web中的經常使用標籤有哪些,知道每一個標籤的具體含義和應用場合。這些知識網上有不少資料,好比 菜鳥教程 和 w3cSchool 。這裏補充一下, Code Guide 上有很全面的代碼書寫規範,建議你們也去看看 app
2. 其次,本身多實踐。在敲代碼的時候,多想一想每一個地方的結構是否都符合Web語義化。在練習中不斷加深對Web語義化的理解和應用。 ide
3. 最後,多去模仿一些網站的代碼,看看別人設計的代碼是如何作到Web語義化的,多吸收別人的經驗和方法。佈局
1.)儘量少的使用無語義的標籤div和span;優化
2.)在語義不明顯時,既可使用div或者p時,儘可能用p, 由於p在默認狀況下有上下間距,對兼容特殊終端有利;
3.)不要使用純樣式標籤,如:b、font、u等,改用css設置。
4.)須要強調的文本,能夠包含在strong或者em標籤中(瀏覽器預設樣式,能用CSS指定就不用他們),strong默認樣式是加粗(不要用b),em是斜體(不用i);
5.)使用表格時,標題要用caption,表頭用thead,主體部分用tbody包圍,尾部用tfoot包圍。表頭和通常單元格要區分開,表頭用th,單元格用td;
6.)表單域要用fieldset標籤包起來,並用legend標籤說明表單的用途;
7.)每一個input標籤對應的說明文本都須要使用label標籤,而且經過爲input設置id屬性,在lable標籤中設置for=someld來讓說明文本和相對應的input關聯起來。
8)圖片加alt屬性 寬 高
9)a連接加title屬性
第五部分,CSS類命名的語義化VS結構化方式
通常而言,CSS類名的語義化聲明方式應當考慮你的頁面中某個相對元素的」用意」,獨立於它的」定位」或確切的特性(結構化方式)。像left-bar, red-text, small-title…這些都屬於結構化定義的例子。
讓咱們看看下面這個例子:
…而如今咱們想把頁面中的元素調換一下位置,若是你使用的是結構化方式(1),那麼你就要把全部CSS類名從新進行定義,由於它們的位置變了。在佈局(3)中,咱們看到元素都倒轉了: right-bar 如今成了 「left-bar」,而 left-content 成了 「right-content」。若是你使用語義化方式則避免了此類問題。
換句話說,使用語義化方式的話,你在修改網站佈局的時候能夠僅僅修改相關CSS類的屬性便可,而不用修改它們的類名了,若是網站的代碼很龐大,這將節省大量的時間。
在開始以前,我想推薦兩種簡單的編寫較好的CSS代碼的指導方針:
<div class=」main」>
<div class=」main-title」>…</div>
<div class=」main-paragraph」>…</div>
</div>
而要這樣寫:
<div class=「main」>
<h1>…</h1>
<p>…</p>
</div>
讓咱們來經過這個簡單的例子講解一下如何爲經典的三欄佈局使用語義化方式命名:
使用語義化方式爲CSS命名能夠像這樣:
#container{…}
/*—- Top section —-*/
#header{…}
#navbar{…}
/*—- Main —-*/
#menu{…}
#main{…}
#sidebar{…}
/*—- Footer —-*/
#footer{…}