Programmieren lernen

Eine kurze Einführung
in HTML, CSS und JavaScript
für den Unterricht

© 2020-2024 Thomas Bigler, freigegeben für den Unterricht

Programmieren lernen

►︎ Vorwort für Lehrkräfte

Wir benötigen einen Browser (Edge, Chrome) und einen Text­edi­tor ✎︎ (z.B. Note­pad++, Visual Studio Code, Caret oder Note­pad/Text­Edit) mit Fest­brei­ten­schrift. Ohne In­stal­la­tion kann man mit VS Code oder Liveweave im Brow­ser pro­gram­mie­ren (z.B. in Chrome­OS).

Es gibt keine dummen Fragen – dumm ist nur, nicht zu fra­gen: Nutze die Links auf die­ser Sei­te!

1. Das HTML-Grundgerüst

Kopiere das Grundgerüst in eine neue Datei im Editor und speichere es unter dem Na­men lernen.html auf dem Desk­top (Schreib­tisch):

 ↑ HTML Grundgerüst 📋 kopieren.

Nun öffnest du lernen.html auch mit dem Brow­ser und ord­nest die zwei Fen­ster neben­ein­an­der an (Editor = Code Time, Brow­ser = Run­time). Nach ei­ner Än­derung im Edi­tor, spei­che­re mit Ctrl+S und ak­tua­li­sie­re im Brow­ser mit F5, so wird dein Re­sul­tat sicht­bar.

💡Tags sind wie Klammern: <h1>Titeltext</h1>.
💡Der sichtbare Teil der Seite be­fin­det sich zwi­schen den bei­den <body></body>-Tags.
💡Für eine neue Zeile ver­wen­dest du <br>
👓Moderne HTML5-Seiten be­gin­nen im­mer mit <!DOCTYPE html>.
In­ner­halb von <head> ist der Me­ta-Tag <meta charset="UTF-8"> wich­tig für die Zei­chen­ko­die­rung (z.B. äöü).
Der Me­ta-Tag <meta name="viewport" content="width=device-width"> ist wich­tig für die kor­rek­te Ska­lie­rung auf Mo­bi­lge­rä­ten.
💡So er­zeugt man einen Link:
<a href="https://www.qwant.com/" target="_blank">Qwant</a>
👓Bilder ein­bin­den: <img src="pix/hund.jpg" alt="Bello!">
Für die Bild­quel­le scr sind zur­zeit fol­gen­de For­ma­te zu­läs­sig: JPG, PNG, WebP und GIF (ver­al­tet). Wich­tig: Ver­wen­de aus­schließ­lich fol­gen­de Zei­chen für Da­tei­na­men a..z, 0..9, und _ (kei­ne Groß­buch­sta­ben, kei­ne Son­der­zei­chen, kei­ne Leer­zei­chen!)
Mache dich mit den HTML-Tags ver­traut und passe die Sei­te dei­nen Wün­schen an.
Titel → <h1> und Ab­satz → <p>. Ver­giss nicht, dei­ne Sei­te zu spei­chern und den Brow­ser-In­halt zu ak­tua­li­sie­ren!
Ergänze die Seite mit dei­nen Lieb­lings-Links!
Mit der An­wei­sung <h1 style="color:red;"> kannst du die Schrift­far­be des Ti­tels set­zen. Ex­pe­ri­men­tie­re wei­ter…
Im Browser Musik hö­ren?
HTML5 Webradio 📋 kopieren ↑
Symbole und Emojis? Kein Problem: Je­des Zei­chen hat seinen Code und kann als Entity ge­schrie­ben wer­den: &#x2764; ⇒ ❤
YouTube-Videos einbetten geht so:
YouTube ein­betten 📋 kopieren ↑

2. CSS: Farbe & Form

Wir wollen die Seite auch gestalten. Dazu ver­wen­den wir CSS (Cascading Style Sheets). In einer HTML-Datei be­fin­den sich die Stil­an­ga­ben inner­halb der <style>-Tags. Die zu ge­stal­ten­den Ele­men­te wer­den über Se­lek­to­ren an­ge­spro­chen.

Kopiere das CSS-Grundgerüst in eine neue Datei im Editor und spei­che­re es unter dem Na­men lernen2.html auf dem Desk­top (Schreib­tisch):

 ↑ CSS-Grundgerüst 📋 kopieren.

💡Beachte die {} und die ; (Fehler sind schwer zu finden!)
💡Für Farben kann man auch Hex-Werte be­nut­zen. Oran­ge schreibt man z.B. so #ffa500;
Stelle dir deine eigenen RGB-Farben zu­sam­men!
💡Die Anzeige der Links wird über a:link ge­steu­ert.
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 Pro­jek­ten la­gert man die CSS-In­for­ma­tio­nen in eine se­pa­ra­te Datei style.css aus und bin­det sie im HTML-Kopf ein:
<style src="css/style.css" />

3. JavaScript: Eingabe & Ausgabe

Mit der Programmier­sprache Java­Script er­wacht eine Web­seite zum Le­ben. Java­Script orien­tiert sich stark an der Sprache C.

Kopiere das JavaScript-Grundgerüst in eine neue Datei im Editor und speichere es unter dem Na­men lernen3.html auf dem Desk­top (Schreib­tisch):

 ↑ JavaScript-Grundgerüst 📋 kopieren.

💡Das eigentliche Pro­gramm be­findet sich zwi­schen den <script></script>-Tags. Befehls­zeilen enden mit einem ; (Strich­punkt).
👓Mit name=prompt(Frage,Vorgabe) wird der Va­ria­ble name die Be­nut­zer­ein­ga­be zu­ge­wie­sen.
👓Die Methode alert(Meldung) gibt den Text in einem Dialog­fen­ster 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 Ein­gaben via For­mu­lar <form> :

 ↑ Formular-Beispiel 📋 kopieren.

4. JavaScript: Wenn, dann, sonst…

Eine Bedingte Anweisung ist ein Programm­ab­schnitt, der nur un­ter einer be­stimm­ten Be­din­gung aus­ge­führt wird. In Java­Script 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 Na­men lernen4.html auf dem Desk­top:

 ↑ 📋 kopieren.

💡Die Funktion geheim() wird durch den HTML-Knopf <button> auf­ge­ru­fen. Das Schlüs­sel­wort onclick ist ein Event (Er­eig­nis).
💡Gleich = ist nicht gleich == ! Das Zeichen = ist eine Zuweisung und == ist ein Ver­gleichs­ope­ra­tor. So vergleicht man in Java­Script:
== → ist gleich
!= → ist nicht gleich
→ ist größer
>= → ist größer od. gleich
→ ist kleiner
<= → ist kleiner od. gleich
💡Man kann auch mehrere if-Be­din­gun­gen ver­knüp­fen:
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 pro­fes­sio­nellen An­wen­dun­gen!
Schreibe ein Quiz! Reagiere mit if () {} else {} auf die Antworten der User.
Passe die Variable text deinen Wün­schen an. Die Anweisung do­cu­ment.get­Element­By­Id("mel­dung").inner­HTML­+=text; schreibt die­sen Text in den Ab­satz <p id="meldung"></p>.
Du kannst al­so auf die An­wei­sung alert("Kennwort richtig.\nTrete ein!"); ver­zich­ten!
Ver­wen­de dies für die Ant­wor­ten in dei­nem Quiz!
⚠️Benutze die Debugger-Console des Brow­sers F12. Hier werden Java­Script-Feh­ler mit Zei­len- & Spal­ten­an­ga­ben an­ge­zeigt.
⚡ Schreibe ein Zahlen­spiel! Die Grund­la­gen da­zu fin­dest du hier: Zahlenspiele. Beim Aus­pro­bie­ren und An­pas­sen des Quellcodes kannst du viel ler­nen! Zwar funk­tio­niert das Spiel, aber es ist nicht feh­ler­frei: Ver­schö­ne­re und ver­besse­re es!
Viele Tipps, einen prak­ti­schen Editor und ein wei­te­res Zah­len­ra­ten fin­dest du in die­sem Ja­va­Script-Kurs.

5. JavaScript: Zählen und rechnen!

Zum einfachen Zählen ver­wen­den wir Zähl­schlei­fen (en: loops) mit for.

Kopiere das Beispiel in eine neue Da­tei im Edi­tor und spei­che­re es unter dem Na­men lernen5.html auf dem Desk­top:

 ↑ 📋 kopieren.

💡Die Funktion quadratZahlen() wird durch den HTML-Knopf <button> auf­gerufen.
💡Die Schleife for (var i=1; i<21; i++) {} zählt die Lauf­variable i von 1 bis 10 hoch.
💡text ist eine Variable des Typs String. Sie wird schrittweise mit dem aus­zu­ge­ben­den Text gefüllt.
💡Die An­wei­sung docu­ment.get­Element­ById("zeig").inner­HTML = text; weist dann den text dem Ab­satz <pre id="zeig"></pre> zu (jetzt noch leer!).
💡<!-- Textausgabe --> ist ein Kommentar. Kom­men­ta­re sind wichtig, um sich auch später im Code zu­recht­zu­fin­den.
⚠️Debugger F12 einschalten! Be­son­de­re Vor­sicht mit den Ar­gu­men­ten des for-Befehls: Bei einem lo­gi­schen Feh­ler kann es vor­kommen, dass sich der Brow­ser auf­hängt!
Füge eine Funktion für die Neuner­reihe hin­zu: function reihe9() und er­stelle den da­zu ge­hö­ren­den HTML-Be­fehls­knopf Neuner­reihe.
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 Qua­drat­wur­zeln (en: Square Root)? Die Java­Script-Me­tho­de Math.sqrt() kann das: Math.sqrt(2) er­gibt z.B. 1.4142135623730951.
👓️Es gibt noch weitere Schleifen­arten
👓️Lass dich mathe­ma­tisch ins­pi­rie­ren: Teil­bar­keit mit Java­Script !
👓️Benutze einen Va­li­da­tor für deinen Code: W3C® oder Validator.nu. So ist ga­ran­tiert, dass dein Code auf allen Sy­ste­men feh­ler­frei läuft.

6. JavaScript: Interaktion

Der Tag <input> dient der Interaktion. Man kann damit Zahlen, Wörter (Strings = Zei­chen­ket­ten) und vieles mehr erfragen. Das Beispiel lernen6.html ist ein Zen­ti­me­ter ↔ Inch Um­rech­ner. Ein Wert wird ab­ge­fragt und auf Ta­sten­druck (onkeyup) in das je­weils an­de­re Maß ver­wan­delt:

Kopiere das Beispiel in eine neue Da­tei im Edi­tor und spei­che­re es unter dem Na­men lernen6.html auf dem Desk­top:

 ↑ 📋 kopieren.

💡Die In­ter­ak­tion mit dem User fin­det zwi­schen den bei­den <fieldset>-Tags statt.
💡Mit <input type="number" … onkeyup="cm2in(this.value)" … > er­folgt die Ab­fra­ge.
Die Funktion cm2in(this.value) über­nimmt den Wert der Ein­gabe als Pa­ram­e­ter zur Um­rech­nung.
💡Der lange CSS-<style>-Teil ent­hält em, eine re­la­ti­ve Grö­ßen­an­ga­be.
⚡ Schreibe selbst wei­te­re Um­rech­ner für km↔mi, oder °C↔°F oder …
Vereine mehrere Um­rech­ner auf ei­ner Sei­te: Vor­sicht mit den id-Att­ri­bu­ten!
Wie wäre es mit einem Um­rech­ner für Jahre↔Sekunden?
👓️Es gibt noch weitere Inp­ut- Ty­pen
👓️Überprüfe deinen Code: W3C®-Validator.

Praktische JS-Funktionen

Aktuelles Datum ermitteln

 ↑ 📋 kopieren.
Text in die Zwischenablage kopieren

 ↑ 📋 kopieren.
Element kurze Zeit aufleuchten lassen

 ↑ 📋 kopieren.
Zahl formatieren

 ↑ 📋 kopieren.
Tastatur: Hotkeys programmieren

 ↑ 📋 kopieren.

7. JavaScript: Zeichnen auf Canvas

Man kann ex­ter­ne Bil­der mit <img src="https://www.qwant.com/favicon.png" alt="Qwant"> ein­bin­den, aber es geht aucu an­ders: In lernen7.html zeich­nen wir sel­ber!

Kopiere das Beispiel in eine neue Da­tei im Edi­tor und spei­che­re es unter dem Na­men lernen7.html auf dem Desk­top:

 ↑ 📋 kopieren.

💡document.addEventListener("DOM­Content­Loaded" … «hört» auf den Brow­ser: So­bald das DOM ge­la­den ist, wird zeichne(ch) aus­ge­führt.
💡<canvas> ist unsere Leinwand, sie hat die id papier. Über die­sen Selektor kann sie an­ge­pro­chen wer­den.
💡Unser Zeichenstift in ctx=can­vas.get­Context("2d"); hat viele Fähig­kei­ten.
Zeichne wei­tere Flag­gen (Frankreich, Deutschland usw.). Be­achte die Pro­por­tio­nen und Far­ben!
Kombiniere deine Flag­gen auf einer Sei­te (meh­re­re <canvas> er­for­der­lich).
👓️Unsere Flaggen sind hoch­wer­tige Vektorgrafiken, sie pas­sen ihre Auflö­sung dem Aus­ga­be­medium an!
👓️Mit svg kann man SVG-Vektorgrafiken ein­bin­den. Ein aus­ge­zeich­ne­tes, frei­es Vek­tor­gra­fik-Pro­gramm ist Ink­Scape. Al­ter­na­ti­ven sind folgende On­line SVG-Editoren: Editor 1, Editor 2 oder Editor 3. Hier fin­dest du die jetzt gül­ti­ge SVG-Sprach­de­fi­ni­tion (Eng­lisch).
Bette eine <svg>-Zeichnung in deine Seite ein:
 ↑ 📋 kopieren.
Erstelle eigene <svg>-Zeich­nun­gen zum Ein­bet­ten!

8. Wie weiter?

Mach es wie die Großen! Studiere mit Ctrl+U (Mac: +U) den Quell­code in­teressan­ter Web­sites! Ver­mei­de die «be­que­men» Frameworks (Bib­lio­the­ken), sie blä­hen dei­ne Sei­ten auf und ma­chen dich ab­hän­gig.

Moderne Seiten sind responsive (Smart­phone, Tab­let, PC usw.) – sie müssen auf al­len Ge­rä­ten funk­tio­nie­ren.

Oft gebraucht – schwierig zu merken:

📋

📋

📋

📋

📋

📋

Weitere, interessante Themen:

Math.function Das JS-Objekt Math hat vie­le Me­tho­den und Ei­gen­schaf­ten
str.regexp String.replace() Re­gu­lar Ex­pres­sions (Zeichen er­set­zen)
Array Arrays (Daten-Sammlungen → Da­ten­ban­ken)
Web Speech API Das Web Speech-API ermöglicht die Sprachsynthese.
CSS-Gene­ra­tor Ge­ne­ra­tor für ein­fa­che re­spon­si­ve Me­nüs: CSSmenu.zip . Beispiel: css.zip  oder ein­fa­che Ver­sion oh­ne Me­nü cssr.zip 

9. Links

Link BeschreibungTastenkürzel
HTML-Grund­ge­rüst in die Zwi­schen­ab­la­ge ko­pie­ren 📋 Ctrl + +
self­HTML Wiki, Grundlagen, Tu­to­rials   Alt + S
Media­Event Professionelles Design, Tu­to­rials   Alt + M
w3­schools Umfangreiche Grund­la­gen, Tu­to­rials   Alt + W
vs­code.dev  Visual Studio Code (Edi­tor im Brow­ser) Alt + L
HTML­Co­des.ws Al­pha­be­ti­sche HTML-Über­sicht   Alt + C
Java­Script He­ro Online Java­Script üben   Alt + H
YouTube Java­Script-Tu­to­rials su­chen   Alt + Y
RGB/A-Far­ben­mi­xer RGB/α-Farbwerte codieren  Alt + R
Google-Far­ben­mi­xer RGB-Farbwerte codieren (intuitiv)   Alt + G
Qwant-Su­che Qwant: Suche HTML / CSS / Java­Script   Alt + Q
Zei­chen­ta­bel­len Symbole & Sonder­zei­chen co­die­ren  Alt + A
key­code.in­fo Java­Script Key­Codes   Alt + K
KeybSG Ta­sta­tur der Schweiz  Alt + T
get­Emo­jis 😂 Emojis suchen & co­die­ren   Alt + E
Das Curry-Buch  Unterhaltsamer Ein­stieg in die JS-Pro­gram­mie­rung   
HTML image map crea­tor Erstellen von MAPs (ver­weis­sen­si­ti­ve Gra­fi­ken)   
DOM mit Ja­va­Script HTML-DOM mit rei­nem Java­Script steu­ern   
Va­li­da­tor HTML-Seiten überprüfen   Alt + V