2016-01-27 53 views
5

改變的顯示性能在我們看到<button> specification part即允許含量僅爲Phrasing content。這是有效的HTML代碼部分(檢查here):措詞內容與CSS

<button> 
    <span></span> 
</button> 

這不是有效的HTML代碼部分(檢查here):

<button> 
    <div></div> 
</button> 

Error: Element div not allowed as child of element button in this context. (Suppressing further errors from this subtree.)

但是我們可以改變<span>display屬性:

<button> 
    <span style="display: block"></span> 
</button> 

它看起來像我們使用<div>而不是<span>,但HTML是有效的。 (通過說明書)是否可以使用允許的內容元素並更改其屬性display

+1

有一個理性的情況下,該按鈕元素的內容模型應該是**流內容不包括互動元素**在HTML5,但沒有人爲此作了令人信服的理由,因此它保留了其傳統的內容模型。老舊的瀏覽器可能會遇到困難,但它不需要定義正確的語義。 – Alohci

+0

@Alohci有趣的事情,你可以在源代碼中包含鏈接嗎? –

回答

2

即使你的風格跨度display: block你仍然不能把塊級元素裏面:

<div><p>correct</p></div> 
<span style="display: block;"><p>wrong</p></span> 

的(X)HTML仍然要服從(X)HTML DTD(哪一個你使用),不管CSS如何改變事情。

所以它們是不同的,因此沒有什麼問題在這裏。

+0

我明白,謝謝,這不是我的問題的答案。對不起,我糾正了我的問題。 –

+0

你可以使用'span'來應用任何'CSS'風格。 – Trix

+0

''成爲* block-level *元素,但默認情況下,內容級別是'inline-level',沒關係? –