2016-01-27 5 views
5

In der <button> specification part sehen wir, dass der zulässige Inhalt ist nur Phrasing content. Es ist gültig HTML-Code Teil (geprüft here):Phrasierung Inhalt mit geänderten Anzeige-Eigenschaft in CSS

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

Dies gilt nicht, HTML-Code Teil (geprüft here):

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

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

Aber wir display Eigenschaft des <span> ändern können:

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

Und es sieht so aus, als ob wir eine 012 verwendenstattdessen eine <span>, aber das HTML ist gültig. Ist es (durch die Spezifikation) in Ordnung, ein zulässiges Inhaltselement zu verwenden und seine Eigenschaft display zu ändern?

+1

Es gibt einen rationalen Fall, dass das Inhaltsmodell des Schaltflächenelements ** HTML5 Inhalte ohne interaktive Elemente ** enthalten sollte, aber niemand überzeugte dafür, so dass das traditionelle Inhaltsmodell beibehalten wurde. Ältere Browser hätten damit Probleme gehabt, aber es hätte nicht die Definition der richtigen Semantik beeinflusst. – Alohci

+0

@ Alohci interessante Sache, könnten Sie den Link auf der Quelle enthalten? –

Antwort

2

Auch wenn Sie eine Spannweite mit display: block Stil können Sie noch nicht auf Blockebene Elemente innerhalb es ausdrückte:

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

Die (X) HTML immer noch die (X) HTML-DTD zu gehorchen hat (je nachdem, was man Sie verwenden), egal wie das CSS Dinge verändert.

Sie sind also unterschiedlich, und somit ist hier nichts problematisch.

+0

Ich verstehe, danke, das ist nicht die Antwort auf meine Frage. Entschuldigung, ich habe meine Frage korrigiert. –

+0

können Sie 'span' mit jedem' CSS'-Stil anwenden. – Trix

+0

'' wird * block-level * Element, aber 'Phrasing content' Elemente sind standardmäßig 'inline-level', es ist OK? –

Verwandte Themen