Orlok: Ersetzte Elemente

Beitrag lesen

Hallo Gunnar

Also zunächst mal bin ich froh, deiner anderen Antwort entnehmen zu können, dass ich diesen Beitrag von dir offenbar falsch interpretiert habe. ;-)

Die Botschaft, die bei mir ankam war nämlich in etwa sowas wie: „Das hättest du ruhig mal etwas besser erklären können, oder weißt du etwa nicht…“ und nicht das, was du wohl eigentlich sagen wolltest: „Nur nebenbei bemerkt und für den Fall, dass du es nicht weißt…“.

Es gab hier schon genug Baustellen zu bearbeiten, und da wollte ich mich an der Stelle, auf die du dich bezogen hast, einfach nur möglichst kurz und unmissverständlich ausdrücken, zumal Blackpanther ja erst kürzlich die lustige Idee hatte, quasi als Pendant zu head, nach body noch einen footer einzufügen.

Jedenfalls bin ich gerne bereit, meinen Beitrag zu diesem Missverständnis einzuräumen, möchte aber dennoch zu bedenken geben, dass dein einleitendes „Ähm …“ womöglich nicht so ausdrucksstark war, wie du vielleicht dachtest, sprich, ein paar zusätzliche Worte zum beabsichtigten Zweck deines Beitrags, und wenn es nur ein „BTW“ oder „FYI“ gewesen wäre, hätten hier wohl sicher nicht geschadet. ;-)

Aber nun zum Thema…

Meine Vermutung ist, dass width und height nur bei ersetzten Elementen erlaubt sind. Ohne dass ich jetzt in der Spec eine Erklärung finden würde, was das genau für welche sind.

Diese Vermutung dürfte weitestgehend zutreffend sein; Die HTML5 Spec zu replaced elements:

„The embed, iframe, and video elements are expected to be treated as replaced elements.“; „A canvas element that represents embedded content is expected to be treated as a replaced element.“; „An object element that represents an image, plugin, or nested browsing context is expected to be treated as a replaced element.“; „An (obsolete) applet element that represents a plugin is expected to be treated as a replaced element.“

Alle diese Elemente haben width und height als content attributes aufgelistet. Aber…

„The audio element, when it is exposing a user interface, is expected to be treated as a replaced element about one line high, as wide as is necessary to expose the user agent's user interface features.“

…obwohl audio als ersetztes Element aufgeführt ist, sind diese Attribute hier nicht erlaubt. Anders hingegen bei img und input, die im nachfolgenden Abschnitt noch zu den ersetzten Elementen hinzugezählt werden, wobei letzteres nur eingeschränkt, aber dazu später mehr…

width und height gibt es für embedded content.

Aber auch nicht für alle. Der Abschnitt dimension attributes führt hier zwar img, iframe, embed, object, und video auf, also Elemente die auch als replaced elements aufgeführt sind, nicht aber param, source, track, map und area, bei denen width und height dementsprechend auch nicht erlaubt sind.

Außerdem für input […]

Ja, wir beide haben in unseren Beiträgen input mal ganz nonchalant dazugezählt, aber wenn ich die HTML5 Spec nicht völlig falsch verstehe, dann gilt das nur unter Einschränkungen…

„The width and height attributes on img, iframe, embed, object, video, and, when their type attribute is in the Image Button state, input elements may be specified to give the dimensions of the visual content of the element (the width and height respectively, relative to the nominal direction of the output medium), in CSS pixels.“

…was sich auch mit den Angaben in der Tabelle zu den content attributes von input deckt, das heißt, soweit ich das verstanden habe, sind width und height nur bei <input type="image"> erlaubt.

Auch die CSS Spec hat einen Abschnitt zum Thema replaced Element:

„An element whose content is outside the scope of the CSS formatting model, such as an image, embedded document, or applet. For example, the content of the HTML IMG element is often replaced by the image that its "src" attribute designates. Replaced elements often have intrinsic dimensions: an intrinsic width, an intrinsic height, and an intrinsic ratio. For example, a bitmap image has an intrinsic width and an intrinsic height specified in absolute units (from which the intrinsic ratio can obviously be determined). […] The content of replaced elements is not considered in the CSS rendering model.“

Soweit ich das also verstanden habe, kann man nicht pauschal sagen, dass width und height bei bestimmten Elementen grundsätzlich erlaubt sind, sondern es hängt immer davon ab, ob diese Elemente unter bestimmten Bedingungen als ersetzte Elemente anzusehen sind.

Und die Kriterien, nach denen ein Element als „ersetzt“ anzusehen ist, richten sich dann im Wesentlichen danach, ob externe Inhalte eingebunden werden, die über eigene Abmessungen verfügen.

Jedenfalls habe ich es jetzt so verstanden… ;-)

Gruß,

Orlok