HTML, CSS und JavaScript
Inhaltsverzeichnis
1 Einführung
Dieses Dokument beinhaltet Verweise auf Quellen rund um HTML, CSS und JavaScript und soll ohne Anspruch von Vollständigkeit einen Einstieg in ausgewählte Aspekte dieser Themen ermöglichen.
1.1 Lernziele
- Separation of Concerns am Beispiel HTML, CSS, JavaScript erläutern
- HTML, CSS und JavaScript am Beispiel erläutern und anpassen
1.2 Verschiedene Einstiege in die Thematik
Für einen ersten Einstieg könnte das im folgenden Unterabschnitt dargestellte Demo-HTML-Fragment dienen. Alternativ überspringen Sie den Unterabschnitt zunächst und kommen für Tests später zurück.
1.3 Demo-HTML-Fragment
Das folgende HTML-Fragment ist (dank des Plugins Klipse) im oberen Bereich editierbar und zeigt im unteren Bereich die vom Browser dargestellte Ansicht.
<style>
h1.demo-headline { color: blue; }
i { color: darkblue; }
.green { color: green; }
#demo-id { color: red; }
</style>
<h1 class="demo-headline">Hello World!</h1>
<p class="green">This is a <i>paragraph</i> of text with class “green”.</p>
<p id="demo-id">This is another paragraph with id “demo-id”.</p>
Ganz grob bestehen HTML-Dokumente aus Elementen, die durch öffnende
und schließende Tags definiert werden. Das Beispiel-Fragment
beginnt mit dem Element style
(zwischen öffnendem Tag <style>
und
schließendem Tag </style>
), das zur Definition von CSS-Regeln
dient, die das Layout bestimmen (Schriftart, -größe, -farbe, Abstände
usw.). Auf die Stildefinition folgen eine Überschrift der ersten
Gliederungsebene (h1
) und zwei Paragraphen (p
).
CSS-Regeln werden in ihrer eigenen Sprache definiert. Hier sehen Sie
verschiedene Farben, die durch unterschiedliche Selektoren an Teile
des HTML-Dokuments gebunden werden. Eine Regel legt fest, dass
Element i
in Dunkelblau dargestellt wird. Zudem können Regeln für
Klassen definiert werden, deren Namen ein Punkt vorangestellt wird
(hier green
), für eindeutig identifizierte Elemente (mit einem
Hashtag wie bei #demo-id
), für Kombinationen (Überschriften der
Ebene 1 und der Klasse demo-headline
durch h1.demo-headline
) und
vieles mehr.
Ändern Sie obiges Dokument, fügen Sie z. B. testweise eine
Überschrift der Ebene 2 hinzu, und ändern Sie den Stil des Elements
i
. Beachten Sie, dass CSS-Vorgaben aus dem umgebenden Dokument in
Kombination mit Ihren CSS-Angaben wirken (Änderungen an i
beeinflussen beispielsweise alle kursiven Elemente im Text). Was Sie
alles mit CSS ändern können, erfordert Ihre eigene Recherche.
Verändern Sie etwa die Schriftgröße bestimmter Elemente mit einer
eigenen CSS-Klasse.
2 HTML
Die Hypertext Markup Language (HTML) ist die Sprache (genauer: Sprachfamilie) des Web, die typischerweise in Kombination mit CSS und JavaScript zum Einsatz kommt. Das selfHTML-Wiki ist die deutschsprachige OER rund um HTML.
Lesen Sie im selfHTML-Wiki, wie mit diesen drei Sprachen Inhalt, Präsentation und Verhalten getrennt werden, und erklären Sie danach was unter „Separation of Concerns“ verstanden wird, welche Vorteile die Einhaltung dieses Prinzips verspricht und wie es mit der Trennung von Inhalt, Präsentation und Verhalten im Kontext von HTML, CSS und JavaScript zusammenhängt.
Wenn Sie noch keine Erfahrung mit HTML haben, empfehle ich diesen HTML-Einstieg im selfHTML-Wiki, der auch Grundlagen von CSS behandelt. Weitergehende Details zu CSS finden sich dann im Einstieg in CSS. Um die Grundlagen von JavaScript zu erlernen, können Sie das Tutorial JavaScript Hero absolvieren. (Im Kontext dieses Vertiefungsmoduls ist das allerdings nicht nötig. Die weiter unten angegebenen Texte des selfHTML-Wiki zum DOM sollten Ihnen helfen, die folgenden Aufgaben zu lösen.)
Im Zuge der Web-Entwicklung können Sie beispielsweise per Docker einen Web-Server auf dem eigenen Rechner betreiben, der während der Entwicklung Ihre Web-Ressourcen ausliefert.
Zudem existieren Online-Editoren, die gleichzeitig sowohl den Quelltext einer Web-Seite als auch ihre Browser-Darstellung live anzeigen. In sehr einfacher Form funktioniert das z. B. in HTML-Dokumenten, in denen das Plugin Klipse eingebettet ist. Umfangreichere Funktionalität bieten etwa JS Bin (v4 als freie Software) oder proprietäre Alternativen wie JSFiddle (Hello-World-Beispiel von selfHTML) und CodePen.
Schließlich sei auf die Web Developer Tools moderner Browser
hingewiesen, die Sie über das Menü oder Shortcuts aufrufen können.
Probieren Sie im Firefox oder Chromium Strg-Umschalt-I
, und schauen
Sie sich den HTML-Text dieser Seite an (Reiter Inspector im Firefox,
Elements im Chromium; in weiteren Reitern können Sie sich
beispielsweise Netzwerkaufrufe einschließlich der HTTP-Header und
Cookies ansehen). Beachten Sie, wie im Kopf des HTML-Textes
(<head>
) CSS und JavaScript eingebunden werden; im Körper
(<body>
) finden Sie diesen Text gefolgt von weiterem JavaScript.
3 JavaScript, DOM
JavaScript ist die Programmiersprache des Web. JavaScript-Programme können in HTML-Dokumente eingebunden und dann vom Browser ausgeführt werden. Sie können dann z. B. das HTML-Dokument dynamisch anpassen oder im Hintergrund Daten mit Servern im Internet austauschen. Die Möglichkeiten sind nahezu unbegrenzt und können sowohl für gute Zwecke ge- als auch Kriminelles missbraucht werden.
Als Schnittstelle zwischen JavaScript und HTML dient das Document Object Model (DOM), zu dem das selfHTML-Wiki eine Kurzerläuterung und ein etwas längeres Tutorial liefert.
Im Projekt Solid werden Anwendungen mit JavaScript geschrieben. Neben den im Getting-Started-Tutorial genannten JavaScript Client libraries existieren Ansätze zur Unterstützung der JavaScript-Frameworks React (Solid React SDK, React-Komponenten) und Angular (Solid Angular Yeoman Generator).
Die nachfolgend wiedergegebene Datei index.jsx der Demo der React-Komponenten zeigt Grundzüge der Manipulation des DOM mit JavaScript:
1: import App from './app';
2: import React from 'react';
3: import ReactDOM from 'react-dom';
4:
5: const container = document.createElement('div');
6: document.body.appendChild(container);
7: ReactDOM.render(<App/>, container);
In Zeile 5 wird ein HTML-div-Element erzeugt und der Variablen
container
zugewiesen. Der container
wird in Zeile 6 dynamisch
dem aktuellen HTML-Dokument hinzugefügt. (Beides
geschieht mit Standard-JavaScript-Methoden; eine Web-Suche nach den
Methodennamen führt zu Erläuterungen unter developer.mozilla.org
.)
In Zeile 7 sorgt eine React-Methode dann dafür, dass dem container
Inhalt hinzugefügt wird, der in der Datei
app.jsx
definiert wird.
4 Fazit
Web-Entwicklung profitiert von zahlreichen Kenntnissen, unter denen dieses Dokument nur eine subjektive Auswahl angerissen hat. Gar nicht angesprochen wurden etwa Barrierefreiheit, SEO, Optimierung für mobile Geräte, die auch im selfHTML-Wiki zur Sprache kommen; zum Thema Sicherheit liefert das Open Web Application Security Project (OWASP) eine ausgiebige Quelle.
Lizenzangaben
Dieses Dokument ist eine OER im Vertiefungsmodul „Neuland im Internet“. Quelldateien stehen unter freien Lizenzen auf GitLab.
Soweit nicht anders angegeben unterliegt das Werk „HTML, CSS und JavaScript“, © 2018-2021 Jens Lechtenbörger, der Creative-Commons-Lizenz CC BY-SA 4.0.
Erzeugt: 2021-12-03 Fri 12:10