Body Befehl?

alpakka892  06.01.2025, 17:56

Wir reden hier von HTML, ja?

6 Antworten

Die Struktur einer Webseite wird immer auf Grundlage eines HTML-Dokuments aufgebaut. Anhand von Elementen/Tags (es sind keine Befehle) wie head oder body kann der Browser zuordnen, welche Inhalte wohin gehören.

Man kann die expliziten Start- und Endtags beider Elemente (head, body) beim Schreiben unter bestimmten Voraussetzungen in der Tat weglassen (schau dafür in die von mir verlinkten Spezifikationen), ohne dadurch ein invalides Dokument zu erzeugen. Wenn der Browser die Seite lädt und sein DOM aufbaut, kann er die Inhalte trotzdem noch entsprechend einordnen.

Beispiel:

<!doctype html>
<title>Example</title>
<p>Hello world!</p>

Doctype und Titel sind Pflichtbestandteile, Letztgenannter wird automatisch dem head zugeordnet. Der Paragraph geht in den body.

Allerdings bringt es dir keine so großen Vorteile. Der Schreibaufwand ist minimal kleiner, von einer reellen Performanceoptimierung (aufgrund der wenigen gesparten Bytes) würde ich an der Stelle nicht sprechen. Problematischer hingegen ist, dass du das Fehlerrisiko erhöhst. Die Tags dienen ja nicht nur dem Browser zur Orientierung, sondern auch dir selbst. Wenn du sie weglässt, musst du stets selbst wissen, wo Bereich A endet und Bereich B anfängt.

Bei einem invaliden HTML-Dokument erstellen Browser üblicherweise dennoch ein DOM und versuchen die zur Verfügung gestellten Informationen irgendwie einzuordnen. Dieses Korrekturverhalten kann je Browser variieren und natürlich darfst du nicht damit rechnen, dass er in deinem Sinne handelt.

Im schlimmsten Fall nimmt ein invalides Markup Einfluss auf dein CSS, deine JavaScript-Ressourcen, die Bedienbarkeit oder das allgemeine Ladeverhalten der Webseite. Bezüglich SEO und überhaupt der Gestaltung einer nutzerfreundlichen, barrierefreien Webseite ist so etwas also mehr als hinderlich. Im beruflichen Kontext kann es die Achillesferse sein, die es Konkurrenten ermöglicht, dir Kunden wegzuschnappen.

Geh mal in den Developer Tools deines Browsers unter "Elements/Elemente" und schau dir an was der Browser aus deinem Dokument ohne <body> etc macht, dann siehst du was passiert (bei Google Chrome und Firefox F12 - Bei Firefox heißt es aber Inspector und nicht Elements).

An sich ist ein HTML Dokument ohne der Definition ohne !DOCTYPE HTML, <head>, <body> etc ungültig, allerdings kann dein Browser die Fehler korrigieren. Wenn du dein HTML Dokument ohne diese Definitionen im Browser öffnest (z.B. dein HTML Dokument beinhaltet nur <h1>Hello world!</h1>) dann wird der Browser die fehlenden Definitionen korrigieren und daraus ein vollständiges HTML Dokument erstellen, welches du anschließend unter Elements/Inspector sehen kannst.

Das ganze kostet dich eben Performance, da der Browser das HTML Dokument eben erst richtig erstellen muss, der Zeitaufwand für diese Korrektur liegt aber im Nanosekunden-Bereich. Man sollte es aber schon richtig machen...

Man könnte nun sagen: Manche Browser können das Dokument nicht lesen, wenn es die nötigen Definitionen nicht beinhaltet, allerdings bezweifle ich stark, dass ein solcher Browser 2025 diese Funktionen nicht beinhaltet, insofern er in den letzten Jahren mal geupdated wurde.

Ich hoffe das beantwortet deine Frage auf technischer Ebene :)

Woher ich das weiß:Berufserfahrung

Hallo, aber ich verstehe deine Frage nicht so ganz.

Im Grunde kann man in eine HTML Datei einfach nur text reinschreiben z.b.:

index.html:

Hallo, Welt

Die Datei im Browser würde so aussehen:

Hallo, Welt

Wenn man aber später Styles haben möchte, (z.b. Farbe) dann muss man das in einem richtigen schematischem HTML machen:

<!DOCTYPE html>
<!--Hier biginnt der Code-->
<html>
<!--hier stehen informationen, die nicht direkt auf der Seite angezeigt werden.-->
<head>
<!--Damit sonderzeichen richtig angezeigt werden-->
<meta charset="UTF-8">
<!--Ein bischen CSS-->
<style>
h1 {
color: red;
}
</style>
</head>
<!-- Hier sind die Sachen, die direkt im Browser stehen-->
<body>
<!-- H1 Tag, dass eine Hauptüberschrift im Browser anzeigt-->
<h1>Hallo, Welt ich bin Rot</h1>
</body>
</html>

Das würde eine Rote Hauptüberschrift erzeugen.

Im Grunde ist das mit dem body tag nur dann richtiges HTML, wenn der Inhalt der Seite da drinne steht. Alles andere machen browser nur, damit keine unnötigen Fehler entstehen.

Body ist erstmal kein Befehl sondern ein Blockbeginn.

HTML dient der Strukturierung von Dokumenten und ein Dokument hat eben einen Header, Body.

Body dient also genau dieser Strukturierung und Body enthält eben alles was im Browserfenster auf der Seite gezeigt werden soll während head Metainformationen und zB den Tabnamen beinhaltet und nicht direkt gezeigt wird.

Wie du bestimmte Elemente in HTML verwendest hängt dabei immer von der Struktur ab. Die einzige Aufgabe von HTML ist nämlich Strukturierung nicht mehr und nicht weniger.


Peacebringer 
Beitragsersteller
 06.01.2025, 18:07

Ok aber hat es irgendwelche Auswirkungen, wenn man etwas nicht über einen Block mit Header wie body reinschreibt?

Ich meine, wenn ich es so reinschreibe, erscheint es genauso wie mit Body und dem ganzen Block.

Kelec  06.01.2025, 18:09
@Peacebringer

Ist allerdings falsch und es nicht garantiert dass jeder Browser das ident darstellt.

man kann direkt in der Datei was schreiben und das wird ausgegeben, jedoch ist das kein korrektes HTML Format. Was aber bei einfache Ausgaben echt nicht problematisch ist. Wenn man nur etwas Text ausgeben möchte, dann braucht man <body> etc. nicht