© 2020-2024 Thomas Bigler, freigegeben für den Unterricht
Wir benötigen einen Browser (Edge, Chrome) und einen Texteditor (z.B. Notepad++, Visual Studio Code, Caret oder Notepad/TextEdit) mit Festbreitenschrift. Ohne Installation kann man mit VS Code oder Liveweave im Browser programmieren (z.B. in ChromeOS).
Es gibt keine dummen Fragen – dumm ist nur, nicht zu fragen: Nutze die Links auf dieser Seite!
Kopiere das Grundgerüst in eine neue Datei im Editor und speichere es unter dem Namen lernen.html auf dem Desktop (Schreibtisch):
Nun öffnest du lernen.html auch mit dem Browser und ordnest die zwei Fenster nebeneinander an (Editor = Code Time, Browser = Runtime). Nach einer Änderung im Editor, speichere mit Ctrl+S und aktualisiere im Browser mit F5, so wird dein Resultat sichtbar.
💡 | Tags sind wie Klammern: <h1>Titeltext</h1>. |
💡 | Der sichtbare Teil der Seite befindet sich zwischen den beiden <body>…</body>-Tags. |
💡 | Für eine neue Zeile verwendest du <br> |
👓 | Moderne HTML5-Seiten beginnen immer mit <!DOCTYPE html>. Innerhalb von <head> ist der Meta-Tag <meta charset="UTF-8"> wichtig für die Zeichenkodierung (z.B. äöü). Der Meta-Tag <meta name="viewport" content="width=device-width"> ist wichtig für die korrekte Skalierung auf Mobilgeräten. |
💡 | So erzeugt man einen Link: <a href="https://www.qwant.com/" target="_blank">Qwant</a> |
👓 | Bilder einbinden: <img src="pix/hund.jpg" alt="Bello!"> Für die Bildquelle scr sind zurzeit folgende Formate zulässig: JPG, PNG, WebP und GIF (veraltet). Wichtig: Verwende ausschließlich folgende Zeichen für Dateinamen a..z, 0..9, – und _ (keine Großbuchstaben, keine Sonderzeichen, keine Leerzeichen!) |
✍ | Mache dich mit den HTML-Tags vertraut und passe die Seite deinen Wünschen an. Titel → <h1> und Absatz → <p>. Vergiss nicht, deine Seite zu speichern und den Browser-Inhalt zu aktualisieren! |
✍ | Ergänze die Seite mit deinen Lieblings-Links! |
✍ | Mit der Anweisung <h1 style="color:red;"> kannst du die Schriftfarbe des Titels setzen. Experimentiere weiter… |
✍ | Im Browser Musik hören? |
✍ | Symbole und Emojis? Kein Problem: Jedes Zeichen hat seinen Code und kann als Entity geschrieben werden: ❤ ⇒ ❤ |
✍ | YouTube-Videos einbetten geht so: |
Wir wollen die Seite auch gestalten. Dazu verwenden wir CSS (Cascading Style Sheets). In einer HTML-Datei befinden sich die Stilangaben innerhalb der <style>-Tags. Die zu gestaltenden Elemente werden über Selektoren angesprochen.
Kopiere das CSS-Grundgerüst in eine neue Datei im Editor und speichere es unter dem Namen lernen2.html auf dem Desktop (Schreibtisch):
💡 | Beachte die {…} und die ; (Fehler sind schwer zu finden!) |
💡 | Für Farben kann man auch Hex-Werte benutzen. Orange schreibt man z.B. so #ffa500; |
✍ | Stelle dir deine eigenen RGB-Farbenℬ zusammen! |
💡 | Die Anzeige der Links wird über a:link gesteuert. |
✍ | Kommentiere deinen Code: /* Kommentar */ |
✍ | Schlage bei SelfHTML (CSS) nach. |
✍ | Experimentiere weiter und suche Hilfe im Web! |
💡 | Mit dem ID-Selektor #bild7{…} kann man bestimmte Elemente ansprechen. Diese benötigen eine eindeutige ID in ihrem Tag: <img id="bild7" … > |
💡 | Mehrfach auftretende Elemente erhalten eine Klasse: .klein{…}. Sie benötigen eine Klasse in ihrem Tag: <p class="klein" … > Kleiner Text… </p> |
👓 | In größeren Projekten lagert man die CSS-Informationen in eine separate Datei style.css aus und bindet sie im HTML-Kopf ein: <style src="css/style.css" /> |
Mit der Programmiersprache JavaScript erwacht eine Webseite zum Leben. JavaScript orientiert sich stark an der Sprache C.
Kopiere das JavaScript-Grundgerüst in eine neue Datei im Editor und speichere es unter dem Namen lernen3.html auf dem Desktop (Schreibtisch):
💡 | Das eigentliche Programm befindet sich zwischen den <script>…</script>-Tags. Befehlszeilen enden mit einem ; (Strichpunkt). |
👓 | Mit name=prompt(Frage,Vorgabe) wird der Variable name die Benutzereingabe zugewiesen. |
👓 | Die Methode alert(Meldung) gibt den Text in einem Dialogfenster aus. |
👓 | JavaScript ist case sensitive (Name ≠ name). |
✍ | Ergänze das Programm mit Fragen nach Alter, Hobby usw. |
💡 | Mit \n erzeugst du einen Zeilenumbruch in prompt und alert. Beispiel: alert("Hallo "+name+"!\nDein Hobby ist "+hobby); |
Eleganter gehen Eingaben via Formular <form> :
Eine Bedingte Anweisung ist ein Programmabschnitt, der nur unter einer bestimmten Bedingung ausgeführt wird.
In JavaScript schreiben wir:
if (Bedingung) {Anweisungen;}
Auch Wenn, dann, sonst ist möglich:
if (Bedingung) {WahrAnweisung;} else {FalschAnweisung;}
Kopiere das Beispiel in eine neue Datei im Editor und speichere es unter dem Namen lernen4.html auf dem Desktop:
💡 | Die Funktion geheim() wird durch den HTML-Knopf <button> aufgerufen. Das Schlüsselwort onclick ist ein Event (Ereignis). |
💡 | Gleich = ist nicht gleich == ! Das Zeichen = ist eine Zuweisung und == ist ein Vergleichsoperator. So vergleicht man in JavaScript: == → ist gleich != → ist nicht gleich > → ist größer >= → ist größer od. gleich < → ist kleiner <= → ist kleiner od. gleich |
💡 | Man kann auch mehrere if-Bedingungen verknüpfen: if (note>=4 && note<5) { alert("Genügend."); } Die Logischen Operatoren sind: && (und), || (oder). |
👓 | Diese einfache Kennwort-Abfrage ist nicht sicher, aber die Wenn, Dann, Sonst-Logik ist wie bei professionellen Anwendungen! |
✍ | Schreibe ein Quiz! Reagiere mit if () {} else {} auf die Antworten der User. |
✍ | Passe die Variable text deinen Wünschen an. Die Anweisung document.getElementById("meldung").innerHTML+=text; schreibt diesen Text in den Absatz <p id="meldung"></p>. Du kannst also auf die Anweisung alert("Kennwort richtig.\nTrete ein!"); verzichten! Verwende dies für die Antworten in deinem Quiz! |
⚠️ | Benutze die Debugger-Console des Browsers F12. Hier werden JavaScript-Fehler mit Zeilen- & Spaltenangaben angezeigt. |
✍ | ⚡ Schreibe ein Zahlenspiel! Die Grundlagen dazu findest du hier: Zahlenspiele. Beim Ausprobieren und Anpassen des Quellcodes kannst du viel lernen! Zwar funktioniert das Spiel, aber es ist nicht fehlerfrei: Verschönere und verbessere es! |
✍ | Viele Tipps, einen praktischen Editor und ein weiteres Zahlenraten findest du in diesem JavaScript-Kurs. |
Zum einfachen Zählen verwenden wir Zählschleifen (en: loops) mit for.
Kopiere das Beispiel in eine neue Datei im Editor und speichere es unter dem Namen lernen5.html auf dem Desktop:
💡 | Die Funktion quadratZahlen() wird durch den HTML-Knopf <button> aufgerufen. |
💡 | Die Schleife for (var i=1; i<21; i++) {} zählt die Laufvariable i von 1 bis 10 hoch. |
💡 | text ist eine Variable des Typs String. Sie wird schrittweise mit dem auszugebenden Text gefüllt. |
💡 | Die Anweisung document.getElementById("zeig").innerHTML = text; weist dann den text dem Absatz <pre id="zeig"></pre> zu (jetzt noch leer!). |
💡 | <!-- Textausgabe --> ist ein Kommentar. Kommentare sind wichtig, um sich auch später im Code zurechtzufinden. |
⚠️ | Debugger F12 einschalten! Besondere Vorsicht mit den Argumenten des for-Befehls: Bei einem logischen Fehler kann es vorkommen, dass sich der Browser aufhängt! |
✍ | Füge eine Funktion für die Neunerreihe hinzu: function reihe9() und erstelle den dazu gehörenden HTML-Befehlsknopf Neunerreihe. |
✍ | Schreibe eine Funktion für beliebige Reihen: function reihe(zahl) und erstelle die dazu gehörenden HTML-Befehlsknöpfe <button onclick="reihe(7)">7er Reihe</button> … |
✍ | Wie wäre es mit einer function für Quadratwurzeln (en: Square Root)? Die JavaScript-Methode Math.sqrt() kann das: Math.sqrt(2) ergibt z.B. 1.4142135623730951. |
👓️ | Es gibt noch weitere Schleifenarten… |
👓️ | Lass dich mathematisch inspirieren: Teilbarkeit mit JavaScript ℬ! |
👓️ | Benutze einen Validator für deinen Code: W3C® oder Validator.nu. So ist garantiert, dass dein Code auf allen Systemen fehlerfrei läuft. |
Der Tag <input> dient der Interaktion. Man kann damit Zahlen, Wörter (Strings = Zeichenketten) und vieles mehr erfragen. Das Beispiel lernen6.html ist ein Zentimeter ↔ Inch Umrechner. Ein Wert wird abgefragt und auf Tastendruck (onkeyup) in das jeweils andere Maß verwandelt:
Kopiere das Beispiel in eine neue Datei im Editor und speichere es unter dem Namen lernen6.html auf dem Desktop:
💡 | Die Interaktion mit dem User findet zwischen den beiden <fieldset>-Tags statt. |
💡 | Mit <input type="number" … onkeyup="cm2in(this.value)" … > erfolgt die Abfrage. Die Funktion cm2in(this.value) übernimmt den Wert der Eingabe als Parameter zur Umrechnung. |
💡 | Der lange CSS-<style>-Teil enthält em, eine relative Größenangabe. |
✍ | ⚡ Schreibe selbst weitere Umrechner für km↔mi, oder °C↔°F oder … |
✍ | Vereine mehrere Umrechner auf einer Seite: Vorsicht mit den id-Attributen! |
✍ | Wie wäre es mit einem Umrechner für Jahre↔Sekunden? |
👓️ | Es gibt noch weitere Input- Typen… |
👓️ | Überprüfe deinen Code: W3C®-Validator. |
Man kann externe Bilder mit <img src="https://www.qwant.com/favicon.png" alt="Qwant"> einbinden, aber es geht aucu anders: In lernen7.html zeichnen wir selber!
Kopiere das Beispiel in eine neue Datei im Editor und speichere es unter dem Namen lernen7.html auf dem Desktop:
💡 | document.addEventListener("DOMContentLoaded" … «hört» auf den Browser: Sobald das DOM geladen ist, wird zeichne(ch) ausgeführt. |
💡 | <canvas> ist unsere Leinwand, sie hat die id papier. Über diesen Selektor kann sie angeprochen werden. |
💡 | Unser Zeichenstift in ctx=canvas.getContext("2d"); hat viele Fähigkeiten. |
✍ | Zeichne weitere Flaggen (Frankreich, Deutschland usw.). Beachte die Proportionen und Farben! |
✍ | Kombiniere deine Flaggen auf einer Seite (mehrere <canvas> erforderlich). |
👓️ | Unsere Flaggen sind hochwertige Vektorgrafiken, sie passen ihre Auflösung dem Ausgabemedium an! |
👓️ | Mit svg kann man SVG-Vektorgrafiken einbinden. Ein ausgezeichnetes, freies Vektorgrafik-Programm ist InkScape. Alternativen sind folgende Online SVG-Editoren: Editor 1, Editor 2 oder Editor 3. Hier findest du die jetzt gültige SVG-Sprachdefinition (Englisch). |
✍ | Bette eine <svg>-Zeichnung in deine Seite ein:
|
✍ | Erstelle eigene <svg>-Zeichnungen zum Einbetten! |
Mach es wie die Großen! Studiere mit Ctrl+U (Mac: ⌘+U) den Quellcode interessanter Websites! Vermeide die «bequemen» Frameworks (Bibliotheken), sie blähen deine Seiten auf und machen dich abhängig.
Moderne Seiten sind responsive (Smartphone, Tablet, PC usw.) – sie müssen auf allen Geräten funktionieren.
Math.function | Das JS-Objekt Math hat viele Methoden und Eigenschaften | |
str.regexp | String.replace() Regular Expressions (Zeichen ersetzen) | |
Array | Arrays (Daten-Sammlungen → Datenbanken) | |
Web Speech API | Das Web Speech-API ermöglicht die Sprachsynthese. | |
CSS-Generator | Generator für einfache responsive Menüs: CSSmenu.zip . Beispiel: css.zip oder einfache Version ohne Menü cssr.zip |
Link | Beschreibung | ||
---|---|---|---|
selfHTML | Wiki, Grundlagen, Tutorials | ||
MediaEvent | Professionelles Design, Tutorials | ||
w3schools | Umfangreiche Grundlagen, Tutorials | ||
vscode.dev | Visual Studio Code (Editor im Browser) | ||
HTMLCodes.ws | Alphabetische HTML-Übersicht | ||
JavaScript Hero | Online JavaScript üben | ||
YouTube | JavaScript-Tutorials suchen | ||
RGB/A-Farbenmixer | RGB/α-Farbwerte codieren | ||
Google-Farbenmixer | RGB-Farbwerte codieren (intuitiv) | ||
Qwant-Suche | Qwant: Suche HTML / CSS / JavaScript | ||
Zeichentabellen | Symbole & Sonderzeichen codieren | ||
keycode.info | JavaScript KeyCodes | ||
KeybSG | Tastatur der Schweiz | ||
getEmojis 😂 | Emojis suchen & codieren | ||
Das Curry-Buch | Unterhaltsamer Einstieg in die JS-Programmierung | ||
HTML image map creator | Erstellen von MAPs (verweissensitive Grafiken) | ||
DOM mit JavaScript | HTML-DOM mit reinem JavaScript steuern | ||
Validator | HTML-Seiten überprüfen |