Gunther: Frage(n) zum HTML- und BODY-Element

Hallo zusammen!

Aufmerksame Forenbesucher werden's bemerkt haben..., ich versuche meine CSS-Kenntnisse etwas zu erweitern. Nun ergeben sich für mich dabei aber folgende Fragen zu den beiden HTML Elementen <HTML> und <BODY> (auf die ich im Archiv keine Antworten gefunden habe):

Der 'Canvas' (Übersetzung: die Leinwand?), also der dem Browser zur Verfügung stehende Platz, um Elemente anzuzeigen, ist doch dem HTML-Element (zumindest in den neueren Browsern) zugeordnet. Daraus folgt doch, dass der HTML-Bereich grundsätzlich eine Höhe & Breite von jeweils 100% besitzt. Dürfte es demnach eigentlich gar keine Möglichkeit geben, dem HTML-Element Werte für Margin, Padding, und Border zu geben, bzw. müssten diese nicht von den Browsern ignoriert werden?

Folgendes Stylesheet wurde vom CSS-Validator (http://jigsaw.w3.org/css-validator/)

@charset "iso-8859-1";
html {margin: 100px; padding: 100px; background-color: #ccc; color: #000; border: solid 20px #c00;}

mit dem Kommentar "Keine Fehler oder Warnungen gefunden" kommentiert.
Die Umsetzung dieser Angaben (wie nicht anders zu erwarten) in den einzelnen Browsern ist sehr unterschiedlich (kleiner Test lohnt sich).

Auch die Ergänzung des Stylesheets um die Angabe

body {height: 90%; width: 90%; margin: 5% 5% 5% 5%; padding: 0px 0px 0px 0px; background-color: #fff; color: #000;}

ändert daran nichts. Womit ich bei meiner nächsten Frage wäre:
Basierend auf der Annahme, dass das HTML-Element also das Document-Root-Element ist, ist doch das BODY-Element das erste Kindelement? Müssten sich jetzt nicht die Eigenschaften des HTML-Elements auf das BODY-Element vererben? Und müsste jetzt nicht mit obiger Angabe das BODY-Element sowohl in der Höhe, als auch in der Breite 100% haben (jweils 90% plus je 5% links und rechts, also 90% + 10% = 100%)? Auch hier ist wieder interessant zu sehen, was die jeweiligen Browser daraus machen...

Für Aufklärung, bzw. erläuternde Worte wäre ich sehr dankbar.

Gruß Gunther

  1. Hi,

    Der 'Canvas' (Übersetzung: die Leinwand?), also der dem Browser zur Verfügung stehende Platz, um Elemente anzuzeigen, ist doch dem HTML-Element (zumindest in den neueren Browsern) zugeordnet. Daraus folgt doch, dass der HTML-Bereich grundsätzlich eine Höhe & Breite von jeweils 100% besitzt.

    nein. Die Höhe entspricht dem benötigten Platz, sofern Du nichts gegenteiliges per CSS angibst.

    Dürfte es demnach eigentlich gar keine Möglichkeit geben, dem HTML-Element Werte für Margin, Padding, und Border zu geben, bzw. müssten diese nicht von den Browsern ignoriert werden?

    Das umgebende Element ist das Fenster, d.h. Abstände u.ä. sind vom Fensterrand aus zu bemessen.

    Die Umsetzung dieser Angaben (wie nicht anders zu erwarten) in den einzelnen Browsern ist sehr unterschiedlich (kleiner Test lohnt sich).

    Das ist bei CSS _leider_ gang und gäbe.

    Basierend auf der Annahme, dass das HTML-Element also das Document-Root-Element ist,

    JavaScript ist da ein geeignetes Schaufenster: document ist ein Element von window.

    ist doch das BODY-Element das erste Kindelement?

    Nun ja, ein <html> hat auch ein <head> (welches sich evtl. nur implizit ergibt; durch die zwingende Notwendigkeit von <title> ist es jedoch garantiert vorhanden).

    Müssten sich jetzt nicht die Eigenschaften des HTML-Elements auf das BODY-Element vererben?

    Ja. Müssten. Konjunktiv. Und sollten. Auch Konjunktiv.

    Und müsste jetzt nicht mit obiger Angabe das BODY-Element sowohl in der Höhe, als auch in der Breite 100% haben (jweils 90% plus je 5% links und rechts, also 90% + 10% = 100%)?

    Rechne bei solchen Dingen bitte nicht damit, dass Du das bekommst, was streng nach Standards oder auch nach Logik kommen müsste. Du bewegst Dich hier in einem Rahmen, der per se unflexibel ist - das Fenster selbst wird durch CSS nicht beeinflusst.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi Cheatah,

      Der 'Canvas' (Übersetzung: die Leinwand?), also der dem Browser zur Verfügung stehende Platz, um Elemente anzuzeigen, ist doch dem HTML-Element (zumindest in den neueren Browsern) zugeordnet. Daraus folgt doch, dass der HTML-Bereich grundsätzlich eine Höhe & Breite von jeweils 100% besitzt.

      nein. Die Höhe entspricht dem benötigten Platz, sofern Du nichts gegenteiliges per CSS angibst.

      hmmm..., also das HTML-Element ist doch das 'all umgebende' Element. Wie kann denn der benötigte Platz größer als 100% sein? Also würde doch de fakto nur ein Wert <100% per CSS Sinn machen, nämlich um den 'genutzten' Platz gegenüber dem 'verfügbaren' Platz (also den vom Window) einzuschränken.

      Dürfte es demnach eigentlich gar keine Möglichkeit geben, dem HTML-Element Werte für Margin, Padding, und Border zu geben, bzw. müssten diese nicht von den Browsern ignoriert werden?

      Das umgebende Element ist das Fenster, d.h. Abstände u.ä. sind vom Fensterrand aus zu bemessen.

      das leuchtet (mir) ein - leider den Browserherstellern nicht so ganz... ;-)

      Die Umsetzung dieser Angaben (wie nicht anders zu erwarten) in den einzelnen Browsern ist sehr unterschiedlich (kleiner Test lohnt sich).

      Das ist bei CSS _leider_ gang und gäbe.

      wobei eigentlich nicht (rein rethorisch gemeint)?

      Basierend auf der Annahme, dass das HTML-Element also das Document-Root-Element ist,

      JavaScript ist da ein geeignetes Schaufenster: document ist ein Element von window.

      ist doch das BODY-Element das erste Kindelement?

      Nun ja, ein <html> hat auch ein <head> (welches sich evtl. nur implizit ergibt; durch die zwingende Notwendigkeit von <title> ist es jedoch garantiert vorhanden).

      Mist..., erwischt! Dabei habe ich mir solche Mühe gegeben. Also natürlich nicht das_erste_, aber ein Kindelement, oder?

      Müssten sich jetzt nicht die Eigenschaften des HTML-Elements auf das BODY-Element vererben?

      Ja. Müssten. Konjunktiv. Und sollten. Auch Konjunktiv.

      gut, das hilft meinem logischen Verständnis der ganzen Sache...

      Und müsste jetzt nicht mit obiger Angabe das BODY-Element sowohl in der Höhe, als auch in der Breite 100% haben (jweils 90% plus je 5% links und rechts, also 90% + 10% = 100%)?

      Rechne bei solchen Dingen bitte nicht damit, dass Du das bekommst, was streng nach Standards oder auch nach Logik kommen müsste. Du bewegst Dich hier in einem Rahmen, der per se unflexibel ist - das Fenster selbst wird durch CSS nicht beeinflusst.

      hmmm..., gerade weil das Fenster ja sozusagen die alles bestimmende Ausgangsgröße ist, habe ich gedacht, gerade daran könnte man sich diesbezüglich orientieren.

      Auf jeden Fall danke ich dir, für deine gewohnt fachkundigen Ausführungen, auch wenn ich langsam gar nicht mehr weiß, wie ich eine Seite aufsetzen soll... ;-)

      Gruß Gunther

      1. Hi,

        nein. Die Höhe entspricht dem benötigten Platz, sofern Du nichts gegenteiliges per CSS angibst.
        hmmm..., also das HTML-Element ist doch das 'all umgebende' Element.

        AFAIK gibt es unterschiedliche Auffassungen darüber, ob <html> mit dem Fenster identisch ist, oder ob dieses noch um <html> herum liegt. Fakt ist, dass das Fenster (Groß-)Vater von <body> ist.

        Wie kann denn der benötigte Platz größer als 100% sein?

        Das Dokument kann mehr Platz brauchen, als das Fenster zur Verfügung stellt.

        Also würde doch de fakto nur ein Wert <100% per CSS Sinn machen, nämlich um den 'genutzten' Platz gegenüber dem 'verfügbaren' Platz (also den vom Window) einzuschränken.

        Man kann sich darüber streiten, ob es Sinn macht, dem Dokument weniger Platz zu gönnen, als es zwingenderweise haben muss; oder ob dieser Zwang gar nicht besteht. Das Fenster ist etwas, das man als gegeben ansehen muss.

        Das umgebende Element ist das Fenster, d.h. Abstände u.ä. sind vom Fensterrand aus zu bemessen.
        das leuchtet (mir) ein - leider den Browserherstellern nicht so ganz... ;-)

        Ja :-)

        ist doch das BODY-Element das erste Kindelement?
        Nun ja, ein <html> hat auch ein <head> (welches sich evtl. nur implizit ergibt; durch die zwingende Notwendigkeit von <title> ist es jedoch garantiert vorhanden).
        Mist..., erwischt! Dabei habe ich mir solche Mühe gegeben. Also natürlich nicht das_erste_, aber ein Kindelement, oder?

        Ja, richtig. Nach in der Informatik üblicher Zählung ist es zudem das Kind Nummer 1 ;-)

        hmmm..., gerade weil das Fenster ja sozusagen die alles bestimmende Ausgangsgröße ist, habe ich gedacht, gerade daran könnte man sich diesbezüglich orientieren.

        Du kannst davon ausgehen, dass eine Angabe von 100% richtig interpretiert wird - zumindest im Sinne dessen, was der Browser für 100% hält (Stichwort Scrollbalken). Bei allem anderen wäre ich vorsichtig.

        Auf jeden Fall danke ich dir, für deine gewohnt fachkundigen Ausführungen, auch wenn ich langsam gar nicht mehr weiß, wie ich eine Seite aufsetzen soll... ;-)

        Vermeide solche Dinge :-) Manches sollte "einfach" als gegeben angesehen werden.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes