2017-04-26 54 views
1

我正在網站上發佈評論。因此我打算使用<ins>元素。當評論不準確時,他們將被標記爲使用<del> -element刪除。正確使用<del>和<ins>以及爲什麼它們充當容器

我的第一個問題是我是否正確使用這些元素的語義?

當我在W3C看到這兩個元素可以包含塊級元素時,我感到驚訝,因爲通常情況下,對於設置爲display: inline;(不能具有寬度,高度等)的文本元素)。我檢查了計算出的瀏覽器值,其中<del><ins>均爲display: inline;

所以我的第二個問題是瀏覽器如何使這種特殊的行爲工作? (或者它甚至是特殊的? - 我錯過了什麼?)

回答

1

儘量不要將樣式(CSS)與HTML內容模型混淆。這些是故意分離和正交的概念。唯一的鏈接是一些HTML元素具有一致的默認樣式。

儘管ins和del可以用HTML4描述的方式使用,但HTML5使得這種分離更加清晰,因爲它不使用術語「塊」和「內聯」。這些條款留給CSS。 HTML5的內容模型使用單獨的分類,包括「流」,「措辭」,而重要的在這種情況下,"transparent"

的內容模型被用來幫助文檔內容的意義。但瀏覽器不關心其含義,只關心如何呈現它。

CSS提供了有關如何在內聯元素內部呈現塊元素的明確規則,完全不考慮HTML的內容模型限制。看到這個答案:Is it wrong to change a block element to inline with CSS if it contains another block element?

因此,行爲不是「特殊的」,除了使用普通的CSS規則來處理它外,瀏覽器不需要做任何事情。

至於你的第一個問題,很難說「不準確」是否應該暗示使用<del>。如果評論者打算撤回該不準確性,則<del>將是適當的,否則可能不適用。

相關問題