LTAM Einführung: CSS Einführung: Cascaded Style Sheets (CSS) 1) Referenzen: http://www.w3schools.com/css Buch: CSS Feuilles de Style en Cascade (Micro Application) 2) Warum CSS benutzen? CSS wird benutzt um Web-Seiten zu formatieren. Entspricht einer Norm des W3C. CSS bietet vielfältigere Formatierungsmöglichkeiten als HTML. Formatierung von Webseiten mit CSS ist einfacher und übersichtlicher als mit HTML-Tags. Komplette Web-Sites können schnell und koherent formatiert werden. Spätere Änderungen können mit minimalem Arbeitsaufwand vorgenommen werden. Formatierungen können für weitere Projekte gebraucht werden. 3) Was ist eine CSS-Definition? Eine CSS-Definition wird definiert durch einen Eigenschaftsnamen und dessen Wert(e). Eigenschaftsname und Wert(e) sind durch ein Doppelpunkt getrennt. Jede CSS-Definition wird mit einem Strichpunkt beendet. i) Syntax: Eigenschaft : Wert [,Alternativ_wert1, Alternativ_Wert2,...]; Falls der Wert Leerzeichen enthält muß dieser Wert zwischen Anführungszeichen angegeben werden. ii) Beispiele: CSS-Definition font-family: Arial; font-family: Arial; color: red; font-family: "Times New Roman"; font-family: "Times New Roman" , "Courier New"; color : red, blue; SHMMA '01 Seite - 1 - LTAM Einführung: CSS 4) Wie werden CSS eingesetzt? Eine CSS-Definition kann an 3 verschiedenen Stellen auftreten: a) innerhalb eines HTML Tags b) zentralisiert: die CSS-Definition ist nur innerhalb dieser HTML-Datei verwendbar c) externe Datei: diese Datei kann in jede HTML-Datei eingebunden werden. a) CSS-Definition innerhalb eines HTML-Tags. Hierzu wird das HTML-Attribut style benutzt. i) Syntax: <html_tag style="CSS-Definition"> ... </html_tag> ii) Beispiele: CSS-Defintion innerhalb eines HTML-Tags <h1 style="font-family: Arial; font-size: 24pt;">Meine erste CSSFormatierung.</h1> <h1 style="font-family: Arial; font-size: 24pt; font-style: italic; color: red;">Dies ist ein einfacher Titelabschnitt welcher mittels CSS formatiert wurde.</h1> <p style="font-family: Artic; font-size: 20pt; font-weight: bold; color: #7C5503; background-image: url(hbild1.jpg); border: 2px solid #000000; padding: 20px; text-align: center; margin-left: 20%; margin-right: 20%;">In diesem Abschnitt wurde Schrift und Hintergrundbild mit Rahmen eingefügt.</p> iii) Gültigkeitsbereich: Nur das HTML-Tag in welchem sich die CSS-Definition befindet ist von dieser Definition betroffen. Jedes andere HTML-Tag wird standardmäßig dargestellt. iv) Bemerkung: Solche CSS-Definitionen innerhalb des HTML-Tags sollten nur bei einmaligen Formatierungen verwendet werden. alle HTML-Tags, Attribute und CSS-Eigenschaften werden in Kleinschrift dargestellt(XML). SHMMA '01 Seite - 2 - LTAM Einführung: CSS b) Zentralisierte CSS-Definition. Im Kopf der HTML-Datei wird die CSS-Definition innerhalb des HTML-Tags style eingebettet. Zuerst wird der Name des neuen Styles angeben, dann folgt seine CSS-Definition zwischen geschweiften Klammern. Jeder neue Styl muss in einer neuen Zeile definiert werden. Im Kopf werden die Styles nur definiert. Im Body werden sie, wenn benötigt, aufgerufen. i) Syntax: <style type="text/css"> STYLE_NAME1 {CSS-Definition} STYLE_NAME2 {CSS-Definition} </style> ii) Verschiedene Stylarten. Man unterscheidet zwischen 4 Stylarten, was sich auch in der Wahl des Stylnamen wiederspiegelt. Stylart: Stylname: Beispiele: 1. Normaler Styl HTML-Tag p , h1 , a , body 2. Unterklasse eines Styles HTML-Tag.Name a.back , a.forward , p.code 3. Pseudo-Styl HTML-Tag.Name:Aktion a:visited , a.back:active 4. Unabhängiger Styl .Name .text , .syntax Da mehrere Stylarten vorliegen sind deren Aufrufe innerhalb des Bodyteils auch verschieden: Stylart: Stylaufruf: Beispiel: 1. Normaler Styl <HTML-Tag> <p> , <h1>, <a> , <body> 2. Unterklasse eines Styles <HTML-Tag class="Name"> <a class="back" …> 3. Pseudo-Styl <HTML-Tag class="Name"> <p class="code" …> 4. Unabhängiger Styl <HTML-Tag class=Name> <div class="text" …> Unabhängige Styles können für jedes HTML-Tag verwendet werden. Bei den drei anderen Stylarten darf immer nur jenes HTML-Tag gebraucht werden für welches die CSS-Definition stattgefunden hat. Daher auch der Unterschied zwischen abhängigen und unabhängigen CSS-Styles. iii) Beispiele: Zentralisierte CSS-Definition <html> <head> <style type="text/css"> h1 {font-family: Arial; font-size: 20pt; font-style: italic; color: red;} </style> </head> <body> <h1>Titelabschnitt mit zentral definiertem CSS.</h1> <h2>Ein weiterer Titel</h2> </body> </html> SHMMA '01 Seite - 3 - LTAM Einführung: CSS <html> <head> <style type="text/css"> h1 {font-family: Arial; font-size: 20pt; font-style: italic; color: red;} a.foot1:visited {font-family: Verdana, font-size: 10pt, color: red;} p.text {font-family: Artic; font-size: 20pt; font-weight: bold; color: #7C5503; background-image: url(hbild1.jpg); border: 2px solid #000000; padding: 20px; text-align: center; margin-left: 20%; margin-right: 20%;} </style> </head> <body> <h1>Titelabschnitt <a class="foot1" href="http://www.ltam.lu">mit</a> zentral definiertes CSS.</h1> <p class="text">CSS für Schrift, Hintergrundbild und Rahmen.</p> </body> </html> iv) Gültigkeitsbereich: Diese CSS-Definitionen sind in der HTML-Datei gültig in welcher sich diese Definitionen befinden. v) Bemerkungen: Solche CSS-Definitionen ermöglichen schnelle Änderungen innerhalb einer HTML-Seite. Die Seiten werden einheitlicher gestaltet. SHMMA '01 Seite - 4 - LTAM Einführung: CSS c) Externe CSS-Definition. In diesem Fall werden die CSS-Definitionen in eine Datei mit Endung .css geschrieben. Die Schreibweise ist identisch zur Syntax der zentralisierten CSS-Definitionen. Das Tagpaar <style> </style> darf hier nicht angegeben werden. Um diese Definitionen in einer beliebigen HTML-Datei benutzen zu können muss die CSS-Datei im Kopfteil mittels des Tags link eingebunden werden. i) Syntax: <link rel="stylesheet" type="text/css" href="URL"> URL: kann der Name einer lokalen oder nicht-lokalen-CSS-Datei sein. ii) Beispiele <head> <link rel="stylesheet" type="text/css" href="../scripts/css/metaarl.css"> <link rel="stylesheet" type="text/css" href="http://foxi.ltam/lu/scripts/defs.css"> </head>… iii) Gültigkeitsbereich Solche CSS-Definitionen sind in jeder Datei gültig in welcher die externe CSS-Definitionsdatei durch das link-Tag eingebunden wurde. iv) Bemerkungen Komplette Web-Sites können so identisch formatiert werden. Änderungen müssen nur in einer Datei vorgenommen werden. SHMMA '01 Seite - 5 - LTAM Einführung: CSS 5) CSS und Ausgabemedien CSS erlaubt es zwischen mehreren Ausgabemedien zu unterscheiden. Auf diese Art und Weise kann man Web-Seiten verschieden formatieren in Hinsicht einer Ausgabe auf Bildschirm oder Papier. Einige Beispiele dieser Ausgabemedien unter CSS sind: aural, braille, handheld, print, screen, ... Des weiteren werden diese Medien auch noch in 4 Mediengruppen unterteilt: Continuous oder paged Visual, aural oder tactile Grid oder bitmap Interactive oder static Folgende Tabelle zeigt zu welcher Gruppe die einzelnen Medien gehören: Medium i) Handheld continuous/ paged Beide visual/ aural/ tactile visual grid/ bitmap beide interactive/ static beide Print Paged visual bitmap static Projection Paged visual bitmap static Screen Continuous visual bitmap beide Braille Continuous tactile grid beide Syntax: Man unterscheidet zwischen 2 Fälle: Innerhalb des Kopfteils (style-Tag) Externe CSS-Datei angewandt auf ein Medium @media AusgabeMedium { CSS-Definition } <link rel="stylesheet" type="text/css" media="AusgabeMedium" href="CSS-Datei> ii) Beispiele: Innerhalb des Kopfteils (styleTag) <html> <head>... <style type="text/css"> @media screen { body {font-size:12pt;} } </style> </head> ... Externe CSSDatei angewandt auf ein Medium <link rel="stylesheet" type="text/css" media="screen, projection" href="screen.css"> 6) Kommentare in CSS Kommentare werden in CSS zwischen den Zeichen /* und */ geschrieben. 7) Ausnahme CSS-Definition Manchmal soll nur ein einziges Mal eine CSS-Formatierung angewendet werden, während für jedes andere Auftreten dieses Tags die normale Formatierung erfolgen soll. Hier könnte man die CSSDefinition innerhalb des HTML-Tags vornehmen, allerdings ginge so die Übersichtlichkeit verloren. Aus diesem Grund gibt es das Konstrukt id für die CSS-Definition. i) Syntax: STYLE_NAME1#id {CSS-Defintion} #id {CSS-Definition} oder oder *#id {CSS-Definition} SHMMA '01 Seite - 6 - LTAM Einführung: CSS ii) Beispiel: <style type="text"cs"> ... p {font-size: 12pt;} p.text {color: #0066cc;} p#a1 {position:absolute; left: 20pt;} </style> ... <p id="a1" class="text"> ... </p> Alle Abschnitte werden in 12 Punkt Schriftgröße ausgegeben, mit Ausnahme des Abschnittes mit der id="a1", in welchem die Schriftgröße 20 Punkte beträgt. 8) CSS und Web-Designprogramme Bisher sieht es so aus als sollten die CSS manuell erstellt werden. Aber auch Programme wie Macromedia Dreamweaver MX erlauben es CSS zu erstellen: Menü: Text CSS Styles New. Hier kann man dann zwischen den verschiedenen Arten von CSS-Definitionen wählen und per Mausklick die Formatierung auswählen. Auch in diesem Fall ist es von Vorteil wenn man die CSSDefinitionen in einer externen CSS-Datei abspeichert. Weiterhin gibt es auch Programme welche nur für die Erstellung von CSS-Definitionen zuständig sind. Ein Beispiel ist hier das Programm: CSS-Style 2.0 von maxro welches Freeware ist. (www.maxro.de) SHMMA '01 Seite - 7 - LTAM Einführung: CSS 9) Aufgaben: a) CSS-Definition innerhalb eines HTML-Tags. 1. Erstelle die Datei aufg1_css.html. Gib zuerst manuell das Grundgerüst einer HTML-Datei an. Dann erst sollst du die beiden Beispiele aus der Theorie (Seite 2 unten) eingeben und dir das Resultat in einem Navigator ansehen. Ersetze hbild1.jpg durch eine beliebige Datei mit JPEG-Format. Hinweis: Netscape Wenn der Netscape Navigator verwendet wird, sind einige CSS-Schriftformatierungen nicht vorhanden. Dieses Problem umgeht man, indem man den zu bearbeitenden Abschnitt in einen Bereich einbettet. Dieser Bereich wird durch das HTML-Tag div erstellt. Dann werden alle CSSFormatierungen, welche nicht direkt mit dem Text zusammenhängen (Hintergrundbild, Rahmen,...) im div-Tag festgelegt. In den folgenden Aufgaben wird jeweils das div-Tag gebraucht falls es sich als nötig erweist. <div style="position: relative; background-image:url(hbild1.jpg); border: 2px solid #000000; padding: 20px; margin-left: 20%; margin-right: 20%> <p style="font-family: Artic; font-size: 20pt; font-weight: bold; color: #7C5503; text-align: center; margin-left: 20%; margin-right: 20%">In diesem Abschnitt wurde Schrift und Hintergrundbild mit Rahmen eingefügt.</p> </div> Ändere einige der CSS-Definitionen um indem du dir die Beispiele der Seite 2 oben ansiehst. Analysiere die CSS-Definition: font-family: "Times New Roman , Courier New"; 2. Die Datei aufg2_css.html enthält im body-Tag den Abschnitt "CSS Formatierungen erleichtern noch nicht die Arbeit!". Erkläre die folgenden Eigenschaften indem du sie dem Body-Tag zuweist: background-color: #FFEECC; padding-top: 20px; padding-bottom: 20px; padding-right: 60px; padding-left: 60px; font-family: Verdana, Sans-Serif; font-size: 140%; 3. Mit Hilfe der HTML-Tags h1 bis h6 sollst du die Texte "Titel 1" bis "Titel 6" ausgeben in der Datei aufg3a_css.html. Nachdem du das Resultat im Browser gesehen hast, sollst du die Datei aufg3a_css.html kopieren (Name: aufg3b_css.html). Die einzelnen Titel werden wie folgt mit CSS formatiert: Die Eigenschaft font-family erhält den Wert Arial Sans Serif, die font-size für "Titel 1" beträgt 22 Punkte, für "Titel 2" 20 Punkte,... Die Titel 1 bis 3 werden in roter Schrift dargestellt und die Titel 5 und 6 werden in Schiefschrift dargestellt. Warum werden die Farben nicht interpretiert? 4. Was passiert wenn du eine nicht auf dem Computer installierte Schrift verwenden willst (Control Panal Fonts). Gib hierzu zwei Abschnitte Text in einer HTML-Datei aufg4_css.html ein, wo nur der zweite Abschnitt durch CSS formatiert wird und Vergleiche die Ausgabe im Browser. 5. Warum wird im HTML-Code der Datei tmpl5_css.html eine Tabelle verwendet? Benenne eine Kopie dieser Datei aufg5_css.html und schreibe diesen HTML-Code so um, dass keine Tabelle mehr vorkommt. Benutzte die CSS-Formatierung! Tabellen sollten nur dann benutzt werden wenn die wiederzugebende Information in tabellarischer Form ausgeben werden soll. 6. Vergleiche den Arbeitsaufwand wenn man die Schriftart des angezeigten Textes umändern möchte in den beiden Beispielen der Aufgabe 5. Man geht davon aus, dass sich noch mehr Text vor oder nach dem angezeigten Text befinden könnte. SHMMA '01 Seite - 8 - LTAM Einführung: CSS b) Zentralisierte CSS-Definition. 7. Kopiere die Datei aufg5_css.html und benenne sie aufg7_css.html. Ändere diese Datei so um, dass nur noch zentralisierte CSS-Definitionen verwendet werden. 8. aufg8_css.html ist eine Kopie von aufg7_css.html. Das Wort flanelle soll als Hyperlink auf die Seite www.ltam.lu verweisen und der Name Berthe Lannis soll auf eine lokal abgespeicherte Datei namens maupassant.html verweisen. Bei diesen zwei Links handelt es sich um einen externen und internen Link, wobei der Unterschied durch verschiedene Formatierungen hervorgehoben werden soll. Jeder interne Link dieser Seite sollte in der Schrift Arial, 14pt und rot angezeigt werden, während jeder externe Link mit Times New Roman, 18pt und grün angezeigt wird. Wenn Times New Roman nicht zur Verfügung steht soll Courier New automatisch verwendet werden. 9. Definiere einen Styl welcher jedes Bild mit einem Rahmen von 20pt in blauer Farbe versieht. 10. Definiere einen unabhängigen Styl mit Namen syntax welcher die folgenden Eigenschaften besitzt: Verdana, 18pt, rot, Fettdruck. 11. Nebenstehende Abbildung zeigt dir eine Tabelle welche mit CSS formatiert wurde. Solch eine Formatierung wäre mit Hilfe von HTML nahezu unmöglich. In der Datei tmpl11_css.html befindet sich der HTML-Code der Tabelle. Deine Aufgabe ist es diese Tabelle mit Hilfe der untenstehenden Angaben mit CSS zu formatieren. Schriftart Hintergundfarben : Arial; Comic Sans MS : linen; navajowhite; gold; khaki palegoldenrod Rahmenfarbe : darkorange Zellenschriftgrösse : 10pt 12. Analysiere den folgenden HTML-Code und erstelle eine Skizze welche die Aufteilung der Seite zeigt. Gib den HTML-Code erst zur Kontrolle ein. Dateiname: aufg12_css.html. <html> <head> <style type="text/css"> h1 {font-family: AlgerianD;} p {font-size: 10pt; line-height: 16pt;} a {text-decoration: none; font-weight: bold;} a.intern {color: orangered;} a.extern {color: darkred;} img {margin-left: 0px; margin-right: 15px; border-style: inset; border-color: dodgerblue; border-width: 20pt;} body {margin-left: 10pt; margin-right:10pt; backgroung-color: ghostwhite; color: blue;} </style> </head> <body> <div> <h1>Maupassant</h1> <img src="livre.jpg" width"190" height="240" border="0" alt="Livre" align="left"> <p>Un Matin, comme il était étendu sur le sable, tout occupé à regarder les femmes sortir de l'eau, un petit pied l'avait frappé par sa gentillesse et sa mignardise. Ayant levé les yeux plus haut, toute la personne le séduisit. De toute cette personne, il ne voyait d'ailleurs que les chevilles et la tête émergeant d'un peignoir de <a href="maupassant.htm" class="intern">flanelle</a> blanche.</p> <p>Présenté à la famille, il put et il devint bientôt fou d'amour. Quand il apercevait <a href="maupassant2.htm" class="intern">Berthe Lannis</a> de loin, sur la longue plage de sable jaune, il frémissait jusqu'au cheveux. Était-ce donc de l'<a href="http://www.ltam.lu" class="extern">amour</a>, cela.</p> </div> </body> </html> Hinweis: Formalure und unsichtbare Tabellen Sehr oft wird zu Formatierung von Formularen eine Tabelle gebraucht. Solche unsichtbaren Tabellen können meist mittels CSS umgangen werden. Wichtige CSS-Eigenschaften in dieser Hinsicht sind: position, left, top, width, height,... SHMMA '01 Seite - 9 - LTAM Einführung: CSS c) Externe CSS-Definition. 13. Wandele die Aufgaben 11 und 12 so um (aufg13a_css.html und aufg13b_css.html), dass eine externe CSS-Datei (aufg13a.css und aufg13b.css) verwendet wird. 14. Erstelle ein Formular welches die Personalien abfragt und sie dir per E-mail zusendet. Die Formatierung des Formulars wird mit CSS erledigt und die CSS-Definition befindet sich in einer ausgelagerten Datei. Es darf keine Tabelle zur Formatierung benutzt werden. Gerade Zeilen erhalten eine Formatierung und ungerade Zeilen erhalten eine unterschiedliche Formatierung (Hintergrund). Auch der Knopf zum Absenden der E-Mail soll formatiert werden. Denke auch an einen Titel und kurzen Einleitungstext, sowie einen Hintergrund. Die Datei tmpl14_css.html enthält eine Version mit Tabelle allerdings ohne richtige Farbformatierung für die Zeilen. 15. Ändere die Aufgabe 11 (aufg15_css.html) so um, dass die Hintergrundfarben am Bidlschirm angezeigt werden, jedoch beim Drucker als weiss dargestellt werden. 16. Erstelle eine externe CSS-Datei welche die Formatierung für das Ausgabemedium Bildschirm bildschirm.css enthält und eine ander Datei für den Drucker drucker.css. Auf dm Drucker werden alle Überschriften H1 bis H3 Schriften in schwarzer Farbe dargestellt, während sie auf dem Schirm rot, grün, blau sind. Am Bildschirm ist der Hintergrund gelb. Erstelle eine kleine HTML-Beispieldatei. SHMMA '01 Seite - 10 -