標籤:

HTML5 中的 b/strong,i/em 有什麼區別?


在HTML4.01中:
&< b &> &< i &> 是視覺要素(presentationl elements),分別表示無意義的加粗,無意義的斜體,表現樣式為 { font-weight: bolder },僅僅表示「這裡應該用粗體顯示」或者「這裡應該用斜體顯示」,此兩個標籤在HTML4.01中並不被推薦使用;

&< em &> 和 &< strong &> 是表達要素(phrase elements)。 &< em &> (emphasized text)表示一般的強調文本,而 &< strong &> (strong emphasized text)表示比 &< em &> 語義更強的的強調文本。

而在新的 HTML5 工作草案 中:

&< em &> 和 &< strong &> 仍舊是表達要素(phrase elements)。但這時的 &< strong &> 表示html頁面上的強調(emphasized text), &< em &> 表示句子中的強調(即強調語義)

對於 b 和 i 標籤是這樣定義的:
The b element now represents a span of text to be stylistically offset from the normal prose without conveying any extra importance, such as key words in a document abstract, product names in a review, or other spans of text whose typical typographic presentation is emboldened.

// b 元素現在描述為在普通文章中僅從文體上突出的不包含任何額外的重要性的一段文本。例如:文檔概要中的關鍵字,評論中的產品名。或者代表強調的排版方式。

The i element now represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, a thought, a ship name, or some other prose whose typical typographic presentation is italicized. Usage varies widely by language.

// i 元素現在描述為在普通文章中突出不同意見或語氣或其他的一段文本,例如:一個分類名稱,一個技術術語,一個外語中的諺語,一個想法等。或者代表斜體的排版方式。

從規範中可以注意到:b 和 i 元素將被賦予真正的語義。更應有預見性注意 b 、i 與 strong 、em 的不同使用 。

參考文檔:http://www.planabc.net/2008/03/14/html5_b_and_i_tags_read_semantic/


應該說,在默認的 HTML 樣式表定義中,b 和 strong 的樣式一樣,為 { font-weight: bolder };而 em 的默認樣式為 { font-style: italic },與 i 相同。

在 HTML 4 中,em 表示 emphasized text,strong 表示 strong emphasized text,故 strong 的強度要更強。而在 HTML 5 中,strong 的定義改成了 important text。當然 emphasized 和 strong emphasized 乃至 important 之間怎麼界定很模糊,關鍵是在自己編寫 HTML 代碼的時候保持使用上一致。

b 和 i 僅僅表示「這裡應該用粗體顯示」或者「這裡應該用斜體顯示」。

參考:

  1. Default style sheet for HTML 4: http://www.w3.org/TR/CSS2/sample.html

從頁面顯示效果來看,被 & 和 & 包圍的文字將會被加粗,而被 & 和 & 包圍的文字將以斜體的形式呈現。那大家可能就會疑惑了,既然效果一樣,那為什麼還要重複定義標籤呢?這就要從 HTML5 的一個最大的特性 -- 語義化來談了。

不得不說,& 和 & 創建之初就是簡單地表示粗體和斜體樣式,但現在是 HTML5 的天下。語義化是 HTML5 最大的特性之一,而所有被 HTML5 保留的標籤都帶有其特有的語義,& 和 & 也不例外,它們分別被重新賦予了語義。相比較而言,標籤的樣式反而變得無足輕重,所以上面所講的兩組標籤,雖然樣式上表現極其相似,但其實語義上各有側重。

下面就來一一介紹這 4 個標籤。

&

根據 W3C 對 & 的定義:

The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.

翻譯一下就是:

i 元素代表在普通文本中具有不同語態或語氣的一段文本,某種程度上表明一段不同特性的文本,比如一個分類學名稱,一個技術術語,一個外語習語,一個音譯,一個想法,或者西方文本中的一艘船名。

// 分類學名稱
&The &Felis silvestris catus& is cute.&

// 術語
&The term &prose content& is defined above.&

// 外語習語
&There is a certain &je ne sais quoi& in the air.&

&

根據 W3C 對 & 的定義:

The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede.

翻譯一下就是:

b 元素代表側重實用目的而不帶有任何額外重要性也不暗示不同語態或語氣的一段文本,比如一段文本摘要中的關鍵詞、一段審查中的產品名稱、文本驅動軟體中的可執行語句或者一篇文章的導語。

// 下面的 b 元素起到突出關鍵詞的作用,但不具備強調重要性的作用
&The &frobonitor& and &barbinator& components are fried.&

// 下面的 b 元素讓被包圍的詞特殊化
&You enter a small room. Your &sword& glows
brighter. A &rat& scurries past the corner wall.&

// 下面的 b 元素標註了文章的導語
&
&Kittens "adopted" by pet rabbit& &&Six abandoned kittens have found an
unexpected new mother figure — a pet rabbit.&&
&Veterinary nurse Melanie Humble took the three-week-old
kittens to her Aberdeen home.&
...
&

&

根據 W3C 對 & 的定義:

The em element represents stress emphasis of its contents.

翻譯一下就是:

em 元素代表對其內容的強調

強調位置的不同通常會帶來整個句子含義的變化。看下面舉的例子:

// 這是一句不帶任何強調的句子
&Cats are cute animals.&

// em 包圍 Cats,強調貓是種可愛的動物,而不是狗或者其他動物
&&Cats& are cute animals.&

// em 包圍 are,代表句子所說是事實,來反駁那些說貓不可愛的人
&Cats &are& cute animals.&

// em 包圍 cute,強調貓是一種可愛的動物,而不是有人說的刻薄、討厭的動物
&Cats are &cute& animals.&

// 這裡強調貓是動物,而不是植物
&Cats are cute &animals&.&

&

根據 W3C 對 & 的定義:

The strong element represents strong importance, seriousness, or urgency for its contents.

翻譯一下就是:

strong 元素代表內容的強烈的重要性、嚴重性或者緊急性。

重要性

& 元素可以被用在標題(heading)、說明(caption)或者段落(paragraph)上,來顯示這部分被包圍的文字的重要性。

// 章節序號不重要,章節的名字才重要
&Chapter 1: &The Praxis&&

嚴重性

& 元素可以被用來標記警告或者警示標誌。

&&Warning.& This dungeon is dangerous.&

緊急性

& 元素可以被用來表示需要被儘快看見的部分。

需要注意的是,& 元素僅僅對文本內容的重要性、嚴重性或緊急性產生作用,而不像 & 對句子含義進行改變。

&Welcome to Remy, the reminder system.& &Your tasks for today:& & &&&Turn off the oven.&&& &&Put out the trash.&& &&Do the laundry.&& &

小結

& 用於對文本內容進行強調,強調位置的不同通常會改變句子的含義。如果僅僅在語態或語氣上為了突出某一個文本,那應該使用 &。但如果為了突出某一部分的重要性、嚴重性或緊急性,那應該使用 &。根據 W3C 對 amp; 元素的說明,& 元素應當是在其他標籤都不合適的情況下最後一個考慮使用的標籤。相同的,在考慮使用 & 之前,也要想想是否用 &、&、& 或 & 等元素更合適。

結語

人類的語言真是個偉大的發明,為數不多的單詞、文字的組合便能組合成數不勝數、含義千差萬別的句子,而同一個句子又可能因為不同的語音語調導致含義天壤之別,這同時也是自然語言處理的瓶頸之處。正因為如此,HTML5 才會定義那麼多像 b/strong、i/em 這樣差別微小的標籤吧。


最後歡迎關注我的專欄:知乎專欄


在默認的html樣式中&和&,&和&的樣式一樣。不過從語義上來講&和&是表現元素,僅僅改變外觀,&和&分別意味著行為的強調和加重強調,在搜索引擎中更受重視,一些語音閱讀器也會根據它在閱讀時加強語氣。

另外所有的表現元素其實都是不推薦使用的,應該使用css來代替


現在i都代表icon了。


在沒有被 CSS 定義的情況下,b 和 strong 在同一瀏覽器內的顯示效果相同 — 該要素內的文字變粗了。在語義表達上,strong 表示的強度比 em 更強。另外,b 要素是視覺要素(presentationl elements);em 和 strong 是表達要素(phrase elements)。


我聽說.....

em-emphasis 是強調

跟 strong 一樣,

在搜索引擎中權重會高些。

而b 只是簡單的 bold 或者black?

沒有強調色彩。

所以重要內容或關鍵詞用 em or strong

不重要的表象,用b


就是各自加了一點樣式,現在追求語義化樣式被遺棄了,這些標籤更多的被當作鉤子使用。


一句話理解:
b和i是樣式上強調。
strong和em是語義上強調。


在編寫語意化的html時候確實很容易弄錯。
HTML中i、em、b、strong的區別
What"s the difference between & and &, & and &?


&& 就是bold,字體加粗
&& 是要表達強調而字體被加粗

&& 就是italic,字體斜體
&& 也是強調內容,而被傾斜

這兩組標籤在實現方式上都是一樣的,但使用的意義不同。


默認效果:i和em都是斜體。b和strong都是加粗。沒有太多的泣別。
但是em和strong的語義性更強烈,對於搜索引擎的爬蛛來說更友好,能讓它知道你這裡面的內容的語義效果,b和i只對視覺效果進行了強調,而語義上沒有幫助


從將代碼語義化的角度來講:

strong:加重語氣。最重的那種。

em:同為加強語氣,但氣勢弱些。

b:是單純的加粗,沒感情色彩。


推薦閱讀:

「Radio Button」的來歷是什麼?
多年前對 XHTML 和 HTML5 的預測為什麼錯的這麼離譜?
在不同的瀏覽器中,一個block元素的最大長寬可以達到多少?
HTML5跟HTML有哪些區別?
準備學習 C, 想知道 HTML, CSS, JS, Ajax, JAVA, C 是做什麼的?

TAG:HTML | HTML5 |