====== LU12a - Einführung ====== ===== Basistechnologien einer einfachen Webseite ===== Um eine Webseite aufzubereiten, wird HTML, Mediadateien (Bilder oder Videos), Skripte (z.B. JavaScript, PHP) und CSS (Stylen/Layouten/Animationen) verwendet. Alle diese Basistechnologien zusammen erlauben moderne Webseite im Webbrowser darzustellen. {{:modul:m293:learningunits:lu12:basis_tech.png?200|}} Die Hauptrolle von **CSS** (oder Stylesheets) bei der Erstellung von Webseiten ist das **Erscheinungsbild**. Mit CSS werden **Regeln** erstellt, wie der Inhalt eines HTML-Elements dargestellt werden soll. An dieser Stelle macht es sich bezahlt, wenn Sie **semantisch sinnvoll** die einzelnen HTML-Elemente im HTML-Dokument notiert haben. CSS unterstützt die Trennung von Struktur und Gestaltung eines Dokuments. Im Idealfall werden die präsentierenden Aspekte komplett vom Inhalt der Webseite getrennt. Dies bedeutet: * HTML definiert die Bedeutung bzw. Semantik des Inhalts. * CSS definiert die Darstellung des Inhalts. Diese Bedeutung wird nachfolgend illustriert: {{:modul:m293:learningunits:lu12:seite_mit_css_final.png?500|}} ===== Aufbau eines Selektors in CSS ===== Nachfolgend wird nur der allgemeine Aufbau der CSS-Regel dargelegt. Die unterschiedlichen Typen von Selektoren werden separat behandelt. Eine CSS-Regel setzt sich aus einem **Selektor** und einer **Deklaration** zusammen: ==== Selektoren ==== Mit dem Selektor wird das HTML-Element angegeben, auf das die CSS-Regel angewendet werden soll. Es ist auch möglich, eine Regel auf mehrere HTML-Elemente anzuwenden, wobei die einzelnen HTML-Elemente durch Kommata voneinander getrennt sind. === Beispiel === Hiermit wird die CSS-Regel, dass die Schriftfarbe (engl. color) blau (engl. blue) ist, für die HTML-Elemente h1, h2, h3 und p gleichzeitig festgelegt. h1, h2, h3, p { color: blue; } ==== Deklarationen ==== Mit der oder den Deklaration(en) legen Sie fest, wie Sie die mit dem Selektor ausgewählten HTML-Elemente formatieren wollen. Die Deklaration selbst besteht ebenfalls aus zwei Teilen, und zwar einer Eigenschaft und einem Wert. Die Eigenschaft wird vom Wert durch einen Doppelpunkt getrennt. {{:modul:m293:learningunits:lu12:css_dekla.png?200|}} ===== Deklaration eines Selektors ===== Die Deklaration **innerhalb der geschweiften Klammern** einer CSS-Regel besteht immer aus mindestens **einer Eigenschaft und einem Wert**, wobei zwischen der Eigenschaft und dem Wert ein Doppelpunkt verwendet wird. Mit einem **Semikolon** werden mehrere Eigenschaft/Wert-Paare getrennt angegeben: h1 { font-family: "Arial"; color: red; text-align: center; } h2, h3 { font-family: "Courier"; color: blue; } ===== Kommentare für CSS-Code verwenden ===== Kommentare werden mit ''/∗ ∗/'' gesetzt. Alles was dazwischen steht (auch Zeilenumbrüche), wird vom Webbrowser ignoriert. /* Erzeugt einen Kreis */ /* Achtung! Funktioniert nicht mit IE8 oder älter */ .circle { height: 50px; width: 50px; border-radius: 50px; } Sinnvoll sind solche Kommentare auch, wenn Sie Ihre Stylesheets in einzelne Bereiche aufteilen, um sich damit schneller im CSS-Code orientieren zu können. /*------------------------------------*/ /* Kopf- und Fußbereich */ /*------------------------------------*/ ... CSS-Anweisungen für Kopf- und Fußbereich ... /*------------------------------------*/ /* Inhalt */ /*------------------------------------*/ ... CSS-Anweisungen für den Hauptinhalt ... ===== Formatierung des Quellcodes ===== Die Formatierung von CSS-Code wird grundsätzlich im Team oder vom Entwicklungsleiter festgelegt, damit auch der CSS-Code einheitlich formattiert wird und sich andere Entwickler (z.B. wenn Sie in den Ferien weilen) schnell in Ihrem Code zurecht finden. === Schlechtes Beispiel === /* In Ordnung, aber sehr unübersichtlich */ h2,h3{font-family:"Courier";color:blue;text-align:center;} === Gutes Beispiel === /* Viel besser lesbar */ h2, h3 { font-family:"Courier"; color:blue; text-align:center; } Bei CSS-Regeln mit nur einer Deklaration hingegen könnten Sie alles in eine Zeile notieren: h1 { color: blue; } ---- {{tag>m293-LU12 m293-G2G m293-G2F}} Nach [[http://ict.bzzlab.ch|Daniel Garavaldi]]