本節書摘來自異步社群《web前端開發精品課 html與css進階教程》一書中的第2章,第2.6節,作者: 莫振傑 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
2.6.1 換行符< br />
很多新手會使用< br />标簽來換行,或者使用多個< br />标簽來實作元素之間的上下間距。
舉例1:
舉例2:
上面兩個例子使用
标簽的方式是錯誤的,這也是
标簽很常見的錯誤用法。事實上,
标簽有自己特定的語義,不能随便用來實作換行效果。w3c标準規定,
标簽僅僅用于段落中的換行,不能用于其他情況。也就是說,
标簽隻适合用于p标簽内部的換行,不能用于其他标簽。
在浏覽器預覽效果如圖2-11所示。

2.6.2 無序清單ul
在實際開發中,對于清單型的資料,為了實作良好的語義,我們還是建議使用無序清單或者有序清單,不建議使用div等來實作。
對于如圖2-12所示效果,不少新手很可能會寫出如下代碼來實作。
這種實作方式缺乏語義化,并且也不利于維護。正确的做法是:
有人問,每一個清單項前都有數字,不應該使用有序清單來實作嗎?為什麼這裡使用無序清單來實作呢?假如使用有序清單,我們是做不到這種外觀效果的。因為有序清單前的數字外觀是固定的。在實際開發中,大多數情況下都是使用無序清單,極少情況下會使用有序清單。
2.6.3 strong标簽和em标簽
strong用于實作加粗文本,em用于實作斜體文本。基于結構和樣式分離的原則,标簽僅僅是為了實作簡單的加粗或者斜體效果,我們一般不會用這兩個。實際上,w3c對這兩個标簽賦予“強調”的語義,在strong或者em标簽内部的文本被強調為重要文本。并且搜尋引擎對這兩個标簽也賦予一定的權重。如果在一個頁面中,為了seo而想要突出某些關鍵字,可以使用strong和em這兩個标簽。一般情況下,我們都是去掉strong和em的預設樣式,然後使用css重新定義新的樣式,但這并不影響這兩個标簽的語義。也就是說,樣式隻會改變标簽的外觀,但不會改變标簽的語義。對于去除标簽的預設樣式,我們在後面“4.5 css reset”一節會詳細介紹。
2.6.4 del标簽和ins标簽
在html中,del和ins這兩個标簽是配合使用的。del表示“delete”,用于定義被删除的文本。ins表示“insert”,用于定義被更新的文本。一般情況下,我們會使用css來重新定義del和ins标簽的樣式。
舉例:
在浏覽器預覽效果如圖2-16所示。
https://yqfile.alicdn.com/a34d0c1e42c41075c77529ffdedaa6cebcce2d2c.png" >
2.6.5 img标簽
想要在頁面顯示一張圖檔,我們有兩種方式:一是使用img标簽;二是使用背景圖檔。這兩種實作方式最明顯的差別在于:使用img标簽添加圖檔,是通過html來實作;使用背景圖檔,是通過css來實作。
在實際開發中,很多人添加圖檔的方式很随意。對于什麼時候使用img标簽,什麼時候使用背景圖檔,并不是很清楚。我們應該根據html的語義來判斷。如果圖檔作為html的一部分,并且想要被搜尋引擎識别,則應該使用img标簽,例如常見的各種圖檔清單。如果圖檔僅僅是起到修飾作用,并且不想被搜尋引擎識别,則應該使用背景圖檔。
舉個例子,圖2-17這個頁面中的圖示圖檔就應該使用背景圖檔實作,因為這些圖示并不需要被搜尋引擎識别,也不作為html的一部分。而圖2-18頁面中應該使用img标簽來實作,因為這是頁面html結構的一部分,并且希望被搜尋引擎識别。
【總結】
以上隻是列舉了在實際開發中比較常見的語義标簽,其實html5新增了很多結構語義标簽,例如header、nav、aside、footer、article、section等。如果想要實作語義更為良好的頁面,我們也應該去關注這些新增的标簽。不過結構語義标簽是html5的内容,是以本書不展開介紹。