6 CSS – Formatierung rulez
249
6.1 Die drei Säulen von CSS
250
6.2 Die Stylesheets – so geht der Browser vor
250
6.3 CSS und HTML – ein schönes Paar
256
6.3.1 So geht's: Das style-Tag
256
6.3.2 So geht’s auch: Den CSS-Code in eine externe Datei auslagern
257
6.3.3 So wollen wir’s nicht: Einbinden des CSS-Codes in ein style-Attribut
258
6.4 Und die Schreibweise von CSS-Regeln?
258
6.5 Ein Muss: Selektionen und Spezifitäten
260
6.5.1 Die Berechnung der Spezifität
265
6.5.2 Selektion auf Basis von Attributen
267
6.5.3 Eltern, Kinder und Geschwister – verschachtelte Elemente
268
6.5.4 Pseudoklassen und Pseudoelemente für weitere Auswahlkriterien
273
6.6 Die Vererbung – mehr Pro als Kontra
277
6.7 Einheiten in CSS – nicht alles ist relativ
280
6.8 Sind ja alles nur Boxen – das Box-Modell
282
6.8.1 Das Box-Modell für Block-Elemente
283
6.8.2 Das Box-Modell für Inline-Elemente
288
6.8.3 Wir haben es in der Hand: Die Darstellung von Boxen steuern
289
6.9 Glanz und Gloria – Farben
294
6.10 Das geschriebene Wort – Schriften
295
6.10.1 Corporate Design Fonts auf Websites – Pro und Contra
299
6.10.2 Ein paar Worte zur Typografie
299
6.10.3 Wie lesbar sind Schriften?
301
6.10.4 Statische vs. variable Fonts – die Zukunft der Schriftformate?
304
6.10.5 Schriftnutzung auf Websites – Webfonts, Google Fonts und Lizenzschriften
305
6.10.6 Die Einbettung von Google Fonts – ein ehrlich gemeinter Dank an Google
312
6.11 Textumfluss (float) – umflossene Elemente wie in Druckmedien
320
6.12 Der Hintergrund als Gestaltungselement
325
6.12.1 Hintergrundbilder sind keine Bilder
328
6.12.2 Das Farbenspiel der Hintergrundverläufe
330
6.13 Positionierungsarten – Normal Flow vs. individuelle Positionierung
332
6.13.1 position:relative
334
6.13.2 position:absolute
335
6.13.3 position:fixed
339
6.13.4 position:sticky
340
6.14 Tabellenartiges Design mit CSS
343
6.15 Listenartiges Design mit CSS
350
6.16 CSS Counters – Individuelle Nummerierung mit CSS gefällig?
352
6.17 Fortgeschrittenes Layout – Jetzt wird’s fein
356
6.17.1 Flexboxen – eindimensionales Denken
356
6.17.2 Grids – zweidimensionales Denken
363
6.18 Alles ist in Bewegung – Übergänge und Animationen
379
6.18.1 Transitions als Vorstufe zu Animationen – die einfache Variante
380
6.18.2 Keyframe-Animationen – Animation in Vollendung
383
6.18.3 Das Spiel mit der Perspektive: Der Parallax-Effekt
387
6.19 Ein erster Schritt in Richtung Programmierung mit CSS-Variablen
391
6.19.1 Mathematische Berechnungen in CSS
393
6.20 Media Queries und @-Regeln aus Rücksichtnahme auf die User-Anforderungen
395
6.20.1 width und height
397
6.20.5 Dark Mode vs. Light Mode
402
6.20.6 Was wird vom Browser unterstützt? Ein Blick auf die @supports-Regel
407
6.21 Advanced Stuff: CSSOM
408
6.22 Sass, LESS & Co – der Einsatz von CSS-Präprozessoren
411
11 Die Serverseite bzw. das Backend – Programmieren mit PHP
761
11.1 PHP gegen den Rest der Welt?
762
11.2 Aller Anfang ist leicht
763
11.3 Die Entwicklungsumgebung
766
11.4 Imperativer oder objektorientierter Ansatz?
768
11.5 Jeder macht Fehler – das Fehlermodell von PHP
769
11.6 Die Unterschiede in der Schreibweise von JavaScript und PHP
771
11.6.1 Variablen und Konstanten
772
11.6.4 Arrays und Objekte
773
11.6.6 Konstanten und globale Variablen
781
11.7 Trial and Error: try-catch
782
11.8 Hilfreich: Code in externe Dateien auslagern
784
11.9 Debugging für PHP-Entwickler?
786
11.9.1 Vorbereitungen treffen
789
11.9.2 Variableninhalte und Co. auf dem Bildschirm ausgeben
789
11.10 Der Anknüpfungspunkt an HTML – Formulare als wesentliches Kommunikationsmittel
793
11.11 Den HTTP-Header manipulieren – serverseitige Weiterleitungen
804
11.12 »Kennst Du mich noch?« – Sessions (Sitzungen)
807
11.12.1 Ablegen von serverseitigen Informationen – das $_SESSION-Array
815
11.12.2 Weg damit: Session und Session-Variablen löschen
818
11.13 Formulare aufgebohrt: Datei-Upload
819
11.14 Die Dateistruktur auf der Serverseite – unsere Ablage
828
11.14.1 Den Inhalt von Verzeichnissen auslesen
829
11.14.2 Neue Verzeichnisse anlegen
839
11.14.3 Bestehende Verzeichnisse löschen
845
11.14.4 Bestehende Verzeichnisse und Dateien umbenennen bzw. verschieben
847
11.14.5 Nicht für alle bestimmt – Dateien und Verzeichnisse schützen
852
11.15 Bilder skalieren
855
11.15.1 Verbesserungspotenzial detektiert
857
11.15.2 Alternative Funktionen zu imagescale
859
11.16 Die Kommunikation mit der Außenwelt – der Versand von E-Mails
864
11.16.1 Zu einfach und schnell im Spam: Die mail-Funktion
865
11.16.2 Die sinnvolle Variante: Die PHPMailer-Library
869