Aufbau einer Webseite
Wer ein Dokument zum ersten Mal erstellt, wird wahrscheinlich verschiedene
Formatierungen an der Stelle einsetzen, wo es angebracht erscheint.
Das allerdings bei vielen Seiten homogen durchzuhalten, ist fast unmöglich.
Daher haben alle modernen Textsatzsysteme
mindestens eine Aufteilung wie folgt.
-
Definition von Formatierungen, wie z.B.
Absatzstil01
ist rechtsbündig, 12 Punkte groß -
Inhalte unter Anwendung eines oder mehrerer Attribute
z.B.Absatzstil01
Idealerweise sollte eine Web-Seite ebenso aufgebaut werden.
-
Eine .css Datei mit Definition von Tags & Attributen, für viele Seiten.
Also eine Art Formatvorlage für Layout und Design. - Viele .html Dateien mit den Inhalten & der Seitenstruktur.
-
In
.html
eingebettet dynamische Inhalte z.B. via JavaScript.
Siehe selfhtml.org
Bei mir sieht das z.B. wie folgt aus.
-
div. Ordner mit Texten, tabellen, Bildern, etc. z.B.
web/fb/avmfb.html, web/fb/fb04_AB00.png, …
web/apo/apotheke.html
web/who/whoiswho.html
- format.css die "style sheet" Datei mit den Formaten
-
index.html die erste Seite "home page", meiner
"Web site" oder Webpräsenz -
toc.html mein optionales Inhaltsverzeichnis (table of content)
welches jeder individuellen Seite hinzugefügt wird. - favicon.ico ein optionales Icon (16 x 16 Pixel)
- robots.txt eine optionale Datei für Suchmaschinen
- sitemap.xml eine optionale Übersicht der Seite
Zum Anfang
Aller Anfang & Ende eines html-Dokuments
Der sog. Header eines HTML-Dokuments
enthält nur wenige zwingende Elemente
oder Tags wie <html>
, <head>
, <body>
und wahrscheinlich <!doctype>
.
Alles übrige ist genau genommen optional.
Ich habe mich daher auf das Nötigste beschränkt.
Die Darstellung, also das Einrücken, die Umbrüche, sind dem Browser,
der HTML interpretiert, egal.
<!doctype html> <!-- Kommentar: dies ist html 5 --> <html lang="de"> <!-- siehe w3.org --> <head> <meta charset="utf-8"> <!-- welcher Zeichensatz --> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="test-html Seite"> <title> html Kurz-Zusammenfassung bzgl. Rahmen einer Webseite </title> <link rel="stylesheet" href="../../formate.css"> <style> <!-- für spezielle Seiten, sonst weg --> </style> </head> <body> Hier kommt der Inhalt hinein… </body> </html>
Zum Anfang
Beschreibung um <head>
-
<!doctype html>
wird verwendet um den Browser HTML 5 anzuzeigen -
<html>
die meisten Tags bestehen aus einem Paar, hier<html>
und</html>
für Anfang und Ende des Gültigkeits-Bereiches.
Zusätzlich können noch weitere Definitionen übergeben werden, hierlang="de-de"
Innerhalb des Tags gelten, dann sowohl die Tags alsauch die Definitionen.
Bei mir steht in der 2. Zeile von jedem Html-Dokument,
z.B.<html lang="de">
um die Sprache zu definieren. -
Innerhalb des
<head>
Tags, gelten nur bestimmte weitere Tags</head>
Vergleichbar ist<body>
für den eigentlichen Inhalt</body>
-
Das
<meta>
Tag wird primär verwendet, um über den Inhalt zu informieren.
Dabei wird häufig die Form<meta name="Variable" content="Inhalt">
verwendet.
Die Variableviewport
ist zum Bildschirmskalieren.
In diesem Fall definiere ich hier, das die tatsächliche Bildschirmbreite der Breite der Seite entspricht.
description
ist eine weitere Variable um eine Beschreibung festzulegen. -
<title>Inhalt</title>
wird ebenso für eine Suchmaschinen, innerhalb<head>
verwendet
um der Seite einen Namen zu geben und ist für den Leser nicht sichtbar.
-
bei HTML-5 habe ich eine strikte Trennung zwischen Aussehen - Style und Inhalt.
Daher ist das Cascading-Style-Sheet - CSS für die ganze Web-Seite
in eine extra Datei ausgelagert, welche ich hier importiere via
<link rel="stylesheet" type="text/css" href="../../formate.css">
.
Der relative Pfad von../../formate.css
lässt erahnen, das bei mir die
.html-Dateien immer in der 2. Ebene vorliegen.
z.B../web/html/content.html
-
Sollte ich seltene Definitionen benötigen, welche nicht in
formate.css
eingeflossen sind, kann ich sie immer noch mit<style>
ausschließlich auf dieser .html-Seite ergänzen</style>
. -
Kommentare oder auskommentierte Bereiche fangen mit
<!--
an
und hören mit-->
auf.
SEO Meta Tags
Um besser gefunden und optimal thematisch zugeordnet werden zu können,
ist es sinnvoll SEO - search engine optimisation Tags zu verwenden.
-
<meta name="viewport" content="width=device-width, initial-scale=1">
ist sinnvoll,
falls die Breite der Seite nicht 980px entspricht. -
<meta name="description" content="Beschreibung">
ist zwar nicht SEO relevant,
aber trotzdem wichtig, da dies von den Suchmaschinen angezeigt wird. -
<title>Title des Dokuments</title>
ist SEO relevant. -
<meta name="robots" content="noindex, nofollow, nosnippet, noarchive">
ist die Maximalforderung.
Sollten Werte fehlen, wird die Seite im Suchmaschinen Index aufgeführt,
man darf den Verknüpfungen folgen,
Teile der Seite (Snippets) können genutzt werden und gespeicherte Teile können angezeigt werden. -
<meta name="keywords" content="Keyword">
kann ich schnell wieder vergessen,
weil es laut Google nicht für das Ranking genutzt wird.
Zum Anfang
Semantische Struktur der Seite innerhalb <body>
Innerhalb der <body>
Elemente </body>
befindet sich der Text der Webseite,
welcher sowohl thematisch alsauch optisch gegliedert ist.
Anbei ein gekürztes Beispiel dieser Seite.
<body class="txt"> <!-- ? Rechtschreibprüfung fehlt noch --> <div class="toc"><iframe src="../../toc.html"> </iframe></div> <header> <h1 id="anfang"> HTML-Kurzanleitung</h1> </header> <footer> <hr> <p> <code><hr></code> wie horizontale Linie <small> © 2020, letzte Änderung am 24.04.22 </small> </p> </footer> <nav> <h2 id="uebersicht"> Übersicht </h2> <ul> <li><a href="#doc_rahmen">Aller html-Anfang</a></li> … </ul> </nav> <main> <!-- ******************************************************* --> <article> <h2 id="doc_rahmen"> Aller Anfang & Ende eines html-Dokuments </h2> <p>… </p> </article> <!-- .............................. --> <article> <h3>Beschreibung </h3> <p>… </p> </article> </main> </body>
Für die thematische oder semantische Gliederung stehen in HTML-5
folgende Tags zur Verfügung. Sie haben keinen Einfluß auf das Aussehen,
aber Einfluß auf die Bewertung der Inhalte per Computer/Suchmaschine.
-
<header>
kann z.B. für die<H1>
-Kopfzeile der Website verwendet werde. -
<footer>
ist für die Fußzeile und muß sich
außerhalb von<main>
befinden. -
<nav>
ist vorgesehen für den Navigationsbereich.
Man kann z.B. eine Zusammenfassung der Überschriften hier einbetten. -
<main>
is gedacht für den eigentlichen Inhalt,
welcher in mehrere<article>
oder Abschnitte gegliedert sein kann. -
<article>
sind für sich abgeschlossene unabhängige Beiträge,
wie z.B. einzelne Posts in einem Blog. -
<section>
für ein Kapitel oder Abschnitt innerhalb der Webseite,
vorzugweise mit einer Überschrift z.B.<H2>
. -
<aside>
ist z.B. für Randbemerkungen, welche auch innerhalb von
<main>
oder<section>
sein können. -
<details>
ist nicht so wichtig. -
<summary>
ist ebenso nicht so wichtig.
Alle diese oben genannten Elemente sind ausschließlich dafür gedacht,
Programmen die Einordnung des Textes zu erleichtern.
Sie helfen aber nicht dem Leser, da er diese Elemente nicht sieht.
Da ich keine Anspruch auf eine professionelle Seite habe,
habe ich weitgehend diese Elemente weg gelassen.
Es bleibt in der Minimalfassung
<body class="txt"> <!-- ? Rechtschreibprüfung fehlt noch --> <div class="toc"><iframe src="../../toc.html"> </iframe></div> <h1 id="anfang"> HTML-Kurzanleitung</h1> <hr> <p> <code><hr></code> wie horizontale Linie <small> © 2020, letzte Änderung am 24.04.22 </small> </p> <h2 id="uebersicht"> Übersicht </h2> <ul> <li><a href="#doc_rahmen">Aller html-Anfang</a></li> … </ul> <!-- ******************************************************* --> <h2 id="doc_rahmen"> Aller Anfang & Ende eines html-Dokuments </h2> <p>… </p> <p> Zum <a href="#anfang">Anfang</a> </p> <!-- .............................. --> <h3>Beschreibung </h3> <p>… </p> </main> </body> </html>
Zum Anfang
Optische Struktur der Seite
Vermieden werden sollte auf jeden Fall eine optische Gliederung in Blöcke
mit <table>
, da es dafür nicht entwickelt wurde.
Siehe auf der Seite Tabellen.
Besser ist es, Text-Blöcke in sogenannten Boxen,
je nach zur Verfügung stehender Auflösung,
zu verschieben. Dafür wird das <div>
-Element benötigt.
Das Einbetten weiterer Webseiten mit <iframe>
beschreibe ich ebenso unter Boxen,
da das vergleichbar ist.
Überschriften wie z.B. <h1>, <h2>, <h…>
finden sich unter Inhalte > Überschriften.
Ebenso Absätze, welche mit <p>
erstellt werden.
Die Darstellung spezieller Zeichen, ohne als HTML-Code ausgeführt zu werden,
beschreibe unter Sonderzeichen.
Aufzählungen sind ebenso ausgelagert.
z.B. mit den Tags <ul>
oder <ol>
und <li>
.
Zum Anfang
Die wichtigsten Attribute
Um bestimmte oben genannte Tags weiter zu detailieren, kann ich über folgende Elemente,
weitere Attribute übergeben.
Die erste Überschrift dieser Seite sieht wie folgt aus.
<h2 id="htmlcss"> Aufbau einer Webseite </h2>
<id="htmlcss">
ist hier ein beliebiges Label und
wird hier zur eindeutigen Identifikation verwendet.
Mit folgenden Befehl <a href="#htmlcss">1. Überschrift</a>
kann ich dann dort hin springen.
Was dann wie folgt aussieht 1. Überschrift.
Weitere Details, siehe Verknüpfungen.
Wichtig ist <id="">
sollte nur einmal vorkommen,
damit es eindeutig ist. (habe ich teilweise aus Bequemlichkeit ignoriert).
Wenn ich ein Tag weiter ausdifferenzieren möchte,
kann ich das über folgendes Attribut gewährleisten.
<class="className1 className2 …">
Im obigen Beispiel ist mein Haupt-Text <body class="txt">
über .css mit einer Breite von 880 Pixel definiert
und das Inhaltsvezeichnis ist darin ein rechtsbündiger Block von 195 Pixel,
siehe <div class="toc">
.
Im Style-Sheet .css steht entsprechend folgendes.
.txt /* kann z.B. bei body oder div angewendet werden */ { clear; none; // Haupttext width: 880px; } div.toc /* hat nur Wirkung bei div */ { float: right; // soll rechts herumfließen width: 195px; height: 2000px; }
<p style="color:#ff0000;"> … </p>
wird hier verwendet,
für zusätzliche Eigenschaften des Absatzes, z.B. die rötliche Schrift.
Besser ist es jedoch im .css .grey { color: #999999;}
zu definieren.
Und dann im Text <p class="grey"> Und dann im… </p>
zu verwenden.
Soll nur ein Teil des Textes grau werden, kann <span>
verwendet werden.
Siehe auch Lokale Formatierungen des Textes.
<q dir="rtl"> … </q>
Hier wird theoretisch von rechts nach links
geschrieben.
<data="">
wird eigentlich nur für bessere Maschinenlebarkeit benötigt.
Siehe selfhtml.org.
Zum Anfang