Ist es ethisch vertretbar, Blockelemente mithilfe von CSS in Inline-Elemente umzuwandeln, wenn sie andere Blockelemente enthalten?
In HTML fließen Blockelemente auf natürliche Weise als einzelne Einheiten, die die gesamte Breite ihres Containers einnehmen. Inline-Elemente hingegen passen in dieselbe Textzeile wie andere Inline-Elemente.
Beachten Sie das folgende gültige HTML-Markup:
<div><p>This is a paragraph</p></div>
Anwenden der folgenden CSS-Regel:
div { display: inline; }
wandelt das div in ein Inline-Element um, während das eingeschlossene p-Element standardmäßig ein Blockelement bleibt. Dadurch entsteht eine Situation, in der ein Inline-Element (das div) ein Blockelement (das p) enthält.
Es stellt sich die Frage: Verstößt dies gegen die HTML-Gültigkeit? Um dies zu beantworten, müssen wir überlegen, wie die HTML-Gültigkeit beurteilt wird. Wird es bestimmt, bevor CSS-Regeln angewendet werden, oder danach?
Gemäß der CSS 2.1-Spezifikation:
When an inline box contains an in-flow block-level box, the inline box (...) is broken around the block-level box (...) splitting the inline box into two boxes.
Mit anderen Worten definiert CSS explizit, wie sich Inline-Elemente verhalten sollen, wenn sie Blockelemente enthalten . In unserem Beispiel ist das div in zwei anonyme Blockboxen aufgeteilt, um das p unterzubringen.
Während die CSS-Spezifikation das Verhalten klar definiert, lässt sie Fragen zur Konsistenz zwischen Browsern offen. Da es sich bei CSS jedoch um einen Webstandard handelt, wird von Browsern erwartet, dass sie dessen Spezifikationen einhalten.
Darüber hinaus hat HTML5 einige dieser Einschränkungen gelockert und erlaubt in bestimmten Kontexten, z. B. innerhalb von Inline-Elementen, Elemente auf Blockebene innerhalb von Inline-Elementen Ankertags. Dies ist besonders nützlich, wenn Sie große Blöcke mit verknüpften Inhalten erstellen.
Ob es akzeptabel ist, Blockelemente in Inline-Elemente mit Blockelementen umzuwandeln, hängt letztendlich vom spezifischen Anwendungsfall und den Bedenken hinsichtlich der Browserkompatibilität ab. Wenn konsistentes Verhalten über alle Browser hinweg von entscheidender Bedeutung ist, ist es möglicherweise vorzuziehen, solche Konstrukte zu vermeiden.
Das obige ist der detaillierte Inhalt vonIst es ethisch vertretbar, Blockelemente mit CSS als Inline-Elemente zu formatieren, die andere Blockelemente enthalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!