Inhalt
Hier ist der Inhalt[. . . ]
This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA
hier der Absatz
.Halli Hallo
Halli Hallo
Alle meine Entchen schwimmen auf dem See
richtig ineinander verschachteln.
HTML-Tabellen wurden früher in Webseiten für das Layout der Seite verwendet, diese Tabellenlayouts sind noch auf vielen älteren Webseiten zu finden. Moderne Webseiten werden mit CSS-Layouts gestaltet (Siehe Kapitel 3). 1.5 Upload und Tools Der HTML-Code ist fertig, aber damit ist die Arbeit noch lange nicht vorbei. MMT Webprogrammierung 1 19 1.5.1 Validator Um Fehler im HTML-Code zu finden reicht ein Webbrowser nicht aus. Wie oben beschrieben sind Webbrowser sehr tolerant, was kaputten Code betrifft. Eine strenge Prüfung des HTML-Codes macht der Validator des W3C: . http://validator.w3.org/ Abbildung 6: Der HTML-Validator des World Wide Web Consortiums Die Fehlermeldungen des Validators muss man sorgfältig lesen, und von oben nach unten durcharbeiten und reparieren. Mit etwas Glück repariert man das erste Problem und viele Folge-Fehler fallen damit auch weg. Abbildung 7: Fehlermeldung des Validators Die Fehlermeldung in Abbildung 7 geht auf einen Tippfehler zurück: der schließende Tag wurde falsch geschreiben. Eine 1.5.2 Upload Die fertige Webseite muss auf einem Webserver veröffentlicht werden. In der FH stehen Ihnen zwei Webserver zur Verfügung: auf www.users.fh-salzburg.ac.at und auf multimediatechnology.at. Um die Daten vom eigenen Computer auf den Webserver zu laden gibt es verschiedene Methoden, die wichtigsten sind FTP, WebDAV, SFTP. Für die Webserver der FH kann nur SFTP verwendet werden. Bei jeder Upload-Methode brauchen Sie folgende Informationen: den Namen des Servers, Userna- MMT Webprogrammierung 1 20 men, Passwort, in welchen Ordner Sie die Daten speichern, unter welcher URL die Daten im Web sichtbar sind. Der Server www.users wird von allen Studiengängen verwendet: Upload-Methode Name des SFTP-Servers Username + Passwort Ordner bei Upload URL SFTP www.users.fh-salzburg.ac.at fhs666 – gleich wie bei FH-Mail htdocs/ http://www.users.fh-salzburg.ac.at/~fhs666/ Der Server multimediatechnology.at ist auch unter dem Namen multimediaart.at bekannt, und wird nur von MMA+MMT verwendet: Upload-Methode Name des SFTP-Servers Username + Passwort Ordner bei Upload URL SFTP multimediatechnology.at fhs666 – gleich wie bei FH-Mail public_html/ http://multimediatechnology.at/~fhs666/ oder eigene Subdomain, z.B. http://ichbinich.multimediatechnology.at/ Folgende Programme zum Upload sind in den FH-Labors installiert, bzw. können Sie selbst installieren: • Dreamweaver: Upload ist nach der Definition einer „Site“ möglich • Secure File Transfer Client: nur für SFTP • FireFox: AddOn von Firefox, freie Software, können Sie selbst installieren Achten Sie beim Upload darauf, dass die Ordnerstruktur und die relative Position der Dateien beibehalten wird; nur dann funktionieren die relativen Links! Dreamweaver und FireFTP bieten Hilfe beim Erhalt der Struktur. In Abbildung 8 wurde recht (am lokalen Computer) eine Datei ausgewählt und dann der Button „Datei bereitstellen“ gedrückt. Dreamweaver beachtet, dass die Datei lokal im Ordner html-ue1 liegt, und lädt Sie in den entsprechenden Ordner am Webserver hoch. MMT Webprogrammierung 1 21 Abbildung 8: Site-Fenster von Dreamweaver – Upload einer Datei automatisch in den richtigen Ordner Abbildung 9 zeigt, was Sie nicht tun sollten: die Datei mit Drag-and-Drop in den falschen Ordner am Webserver hinaufladen. Dann funktionieren die relativen Links nicht mehr. Abbildung 9: Upload mit Dreamweaver in den falschen Ordner Bevor Sie FTP im Dreamweaver Site-Fenster benutzen können müssen Sie (Unter SITE SITES VERWALTEN BEARBEITEN ERWEITERT REMOTE-INFORMATIONEN) die richtige Konfiguration eintragen,wie in Abbildung 10 gezeigt. MMT Webprogrammierung 1 Abbildung 10: Bearbeiten der FTP-Information in Dreamweaver Die anderen erwähnten Programme funktionieren sehr ähnlich. 22 MMT Webprogrammierung 1 2. 23 CSS Basics Der zweite Termin stellt die Grundzüge von Cascading Style Sheets vor Was Sie wissen sollten • Wie HTML und CSS zusammen hängen. Wie CSS Selektoren aufgebaut sind. Welche Schreibweisen und Maßeinheiten es in CSS für Farben, URLs und Größenangaben gibt. • Wie das CSS Box Model funktioniert, wie der Zusammenhang zwischen margin, border und padding ist. • Welche Möglichkeiten zur Darstellung von Schrift, Absatz, Rahmen, Hintergrundfarbe und Hintergrundbilder CSS ungefähr bietet. Wie Sie die genaue Schreibweise der dafür notwendigen CSS-Deklarationen nachschlagen können Was Sie können sollten • Ein einfaches Stylesheet für ein XHTML-Dokument erstellen. Bei Vorgabe einer bestimmten visuellen Darstellung und eines XHTML-Dokuments ein geeignetes Stylesheet erstellen, das zu dieser Darstellung führt • Mit Hilfe von Firebug oder durch Lesen des Codes herausfinden welche CSS-Regeln zu einer bestimmten Darstellung in einer (fremden) Webseite führen • Die Korrektheit des CSS-Codes mit dem CSS-Validator des World Wide Web Consortium überprüfen. Fehler in einem CSS-Dokument ausbessern bis es valide ist Weitere Informationsquellen • CSS Zen Garden. http://csszengarden.com/ • CEDERHOLM,Dan (2007): Bulletproof Webdesign. Addison-Wesley, München. ISBN 3827326230. • MEYER,Eric A. (2006): Eric Meyer's CSS. Addison-Wesley, München. ISBN 3827324793. • Web Standards Project. http://www. webstandards.org/ Tools • Desktop Webbrowser: Firefox, MSIE, Opera, Safari • „exotische“ Webbrowser: Lynx, Opera Mobile, … • Die Firefox Erweiterungen ColorZilla, MeasureIt, Web Developer, FireFTP MMT Webprogrammierung 1 24 2.1 Kurzvorstellung von Stylesheets Die einfachste Art die visuelle Darstellung einer Webseite zu definieren ist die Einbettung eines Stylsheets. Das Stylesheet definiert für die einzelnen HTML-Tags wie sie dargestellt werden sollen. In Listing 1 werden Formatierungen für die Tags body, p, h1 und h2 vorgenommen, der gezeigte <style>-Tag wird im Head des HTML-Dokument eingebunden: 1. <style type="text/css"> 2. p { 3. font-family: Calibri, Helvetica, Arial, sans-serif; 4. font-size: 13px; 5. } 6. h1,h2 { 7. font-family: "Trebuchet MS", Verdana, Arial, sans-serif; 8. } 9. h1 { font-size: 24px; } 10. h2 { font-size: 20px; } 11. body { background-color: green; } 12. Listing 1: Hintergrundfarbe, Schriftfamilie, Schriftgröße mit CSS festlegen An Hand dieses Beispieles werden nun die ersten Stylesheet-Befehle erklärt. Die Syntax von Stylesheets ist völig anders als die von HTML. 2.1.1 Schriftart Zuerst werden wir die Schriften im Dokument festlegen. Dabei gilt es die Einschränkungen des Web zu beachten: welche Schriften auf dem Endgerät zur Verfügung stehen ist nicht bekannt, deswegen werden mehrere Schriften angegeben, diese Liste wird vom Browser von links nach rechts abgearbeitet, die erste Schrift die er findet verwendet er. In Zeile 2 bis 5 von Fehler! Verweisquelle konnte nicht gefunden werden. werden zwei Anweisungen für Fließtext gegeben (HTML-Tag ): die Schriftfamilie in Zeile 3 und die Schriftgröße in Zeile 4. In Zeile 3 Vergleichen Sie Zeile 3 mit Zeile 7: Schriftnamen die ein Leerzeichen enthalten müssen in Anführungszeichen gesetzt werden, wie „Trebuchet MS“ in Zeile 6. Das letzte Wort in Zeile 7 „sans-serif“ ist ein CSS-Kürzel für „irgendeine serifenlose Schrift“. Es empfiehlt sich am Ende einer Schriftliste ein solches Kürzel als Standardwert „wenn alle Stricke reißen“ anzugeben, dabei sind folgende Werte möglich: sans-serif serif cursive fantasy monospace. Das StudiumStudienziel ist es, breit gefächerte technische und kreative Kompetenzen... Das StudiumStudienziel ist es, breit gefächerte technische und kreative Kompetenzen... Projekte und Praxissemster stellen schon während des Studiums die Verbindung... Durch das Hinzufügen der Tags für Formatierung wurde der HTML-Code komplizierter und unübersichtlicher. Erst ab ab 1995 wurde endlich an den Standards für Stylesheets gearbeitet, seit den frühen 2000ern ist die Unterstützung in den gängigen Browsern vorhanden. So sieht nun eine HTMLSeite mit separatem Stylesheet aus: Die html-Datei Die Datei fh. css h1 { font-family: Arial; color: blue; } p:first-letter { font-size: large; } Das StudiumStudienziel ist es, breit gefächerte technische und wirtschaftliche Kompetenzen... Rote, zentrierte ÜberschriftGültigkeitsbereich einer Style Angabe Sie können innerhalb einer HTML-Datei sowohl eine externe Style Sheet Datei verwenden (eingebunden durch eine entsprechende Anweisung im head Bereich), als auch eine lokale Definition im head Bereich angeben, als auch spezielle Angaben für einzelne Tags erstellen. Was passiert nun, wenn die verschiedenen Style-Deklarationen sich widersprechen? Die Angaben bei einem einzelnen Tag haben immer Vorrang. danach folgen die lokalen Angabe im head Bereich und erst zum Schluß die externe Datei. „Je näher beim Tag, desto stärker wirkt es.“ 2.2.2 Klassen, IDs, SPANs und DIVs Wenn Sie mit den Style-Angaben den p-Tag umformatieren, betrifft das alle p-Tags in der Webseite. Oft möchten Sie aber ein oder zwei Absätze anders formatieren als die anderen Absätze. Zu diesem Zweck können Sie sich im Stylesheet noch weitere Formatvorlagen - sogenannte "Klassen" - definieren: 3 Siehe Souders, Steve (2007) High Performance Web Sites. O'Reilly. ISBN 9780596529307 MMT Webprogrammierung 1 29 .wichtig { color: red; } Diesen Klassen können Sie eigene Namen geben (hier „wichtig“), vor dem Klassennamen steht immer ein Punkt. Jedem normalen HTML-Tag können Sie nun diese Klasse zuweisen. Dies geschieht mit dem Attribut class. Eine ganz wichtige Meldung Ein ganz wichtiger Absatz Ein ganz normaler Absatz Zur „normalen“ Wirkung des HTML-Tags kommt nun die Formatierung durch die Klasse hinzu: der Text „ganz wichtige“ und „Ein ganz wichtiger Absatz“ ist in diesem Beispiel also rot. Eine Klasse kann also mehrmals in einem Dokument verwendet werden. Zur eindeutigen Kennzeichnung von Tags wird das Attribut id verwendet: Eine ganz wichtige Meldung Ein ganz wichtiger Absatz Das einzige Impressum dieser Seite Auf diese eindeutigen IDs kann in CSS mit der Raute referenziert werden: #impressum { background-color: #DDD; } Sowohl Klassen als auch IDs können mit Tags kombiniert werden um einen komplexen Selektor zu bilden, aber das macht nur bei Klassen wirklich Sinn: .wichtig { font-size: 20px; } /* alle Tags mit der Klasse wichtig */ p.wichtig { color: red; } /* nur der Tag p mit der Klasse wichtig */ b.wichtig { color: yellow; } /* nur der Tag b mit der Klasse wichtig */ #impressum { background-color:#ddd; } /* nur der Tag mit der id #impressum */ p#impressum { background-color:#ddd; } /* nur der p-Tag mit der id #impressum (gleich) */ b#impressum { background-color:#ddd; } /* nix! */ Die Firefox-Erweiterung Firebug zeigt Tags, Klassen und IDs in dieser Schreibweise an: Es wird öfter vorkommen, dass Sie einem Bereich eine bestimmte Klasse zuweisen möchten, ohne dass ein passender Tag vorhanden ist. Hier können Sie die beiden Tags <span> und verwenden, die beide selber kaum Eigenschaft aufweisen. <span> eignet sich für die Verwendung in Fließtext,
ist ein blockbildender Tag, erzwingt also einen Zeilenumbruch.
Es gibt hier ganz <span class="wichtig">besonders interessante Meldungen. Die Worte „besonders interessante“ erscheinen rot. 2.2.3 Maßeinheiten in Stylesheets Für Längen- und Größen-Angaben gibt es mehrere Maßeinheiten: px (Pixel) , em (=Breite des Buchstaben M) , ex (Höhe des Buchstaben X), % (Prozent), cm (Zentimeter), in (Inch). Einige davon sind relativ (em = relativ zur Schriftgröße, px = relativ zur Pixel-Größe am aktuellen Ausgabemedium), andere MMT Webprogrammierung 1 30 absolut (Centimeter, Inch). Die absoluten Angaben kann man derzeit nur bei der Ausgabe auf Papier sinnvoll verwenden. Farbangaben können auf mehrer Arten erfolgen: mit einigen Farbwörtern (red, green,…) oder mit der Angabe von rot-, grün- und blau-Anteil (jeweils werte von 0 bis 255) in verschiedenen Schreibweisen: Dezimal rgb(16,0,255), hexadezimal #10F oder zweistellig hexadezimal #1000FF. Wird in einem Stylesheet auf eine URL verwiesen (z.B. auf die URL eines Hintergrundbildes), dann kommt die Schreibweise url(http://absolute.com/bild.gif) oder url(relativ/ bild.gif) zum Einsatz. Achtung: die relative URL bezieht sich auf das Stylesheet (nicht die HTML-Datei in der es verwendet wird). Box Model Jeder blockbildende Tag (z. B. h1, h2, p, blockquote, div, …) hat einen Rahmen, Innen- und Außenabstand. Diese werden mit den Deklarationen border, padding und margin festgelegt. Ein Hintergrundbild und/oder eine Hintergrundfarbe des Tags reicht immer bis zum Rahmen, aber nicht darüber hinaus. Abbildung 13: Darstellung des Box Models von hicksdesign.co.uk Die Ausdehnung von margin, padding und border kann man besonders gut mit der FirefoxErweiterung Firebug erforschen wie in Abbildung 14 gezeigt. MMT Webprogrammierung 1 31 Abbildung 14: margin, border, padding in FireBug Dabei wird direkt in der Webseite der Aussenabstand (margin) gelb und der Innenabstand (padding) dunkelviolett hinterlegt. Die Standard-Darstellung von Absätzen erklärt sich über den margin-top und margin-bottom des Tags: ) im Browser Salzbuerger NockerlMit Image Replacement kann man die optimale Darstellung für Suchmaschinen und Braille Ausgabegeräte mit der optimalen Darstellung als Bild kombinieren. Gutes Beispiel: Image Replacement Der Text wird normal im HTML-Code eingegeben, es wird aber auch ein Bild in der richtigen Schriftart erstellt. Bei CSS-fähigen Browsern wird der Text versteckt und das Bild angezeigt. Browser ohne CSS und Suchmaschinen verwenden einfach den Text: MMT Webprogrammierung 1 34 <style> h1#bildStattText { /* schiebt den "echten text" extrem weit nach links */ text-indent:-10000px; overflow:hidden; background: url(pix/nockerln_schriftzug.gif); /* hoehe und breite der grafik angeben! */ height:150px; width:500px; } Salzburger NockerlnSchlechtes Beispiel: Navigationsmenü mit Bildern Ein Navigationsmenü wird mit Tabellen und Bildern aufgebaut: Wieder gilt: die Information ist für eine Suchmaschine oder ein Braille Ausgabegerät nicht lesbar. Für diese Ausgabemedien wären Links mit normalen Texten besser.
Im nächsten Kapitel lernen Sie eine Methode kennen wie Sie aus dieser Liste ein Menü machen. MMT Webprogrammierung 1 3. 35 CSS für Layout und Interaktion Was Sie wissen sollten • Wie relative und absolute URLs funktionieren, wie URLs und Pfadangaben im Dateisystem zusammen hängen • Welche Bildformate im Web verwendet werden können. Welches Bildformat für ein gegebenes Bild geeignet ist (auf Grund von Anforderungen wie: Anzahl der Farben, Transparenz, Alpha-Transparenz, Animation) • Wie verschiedene Ausgabegeräte und verschiedene Bildschirmgrößen die Darstellung von Webseiten beeinflussen und die Gestaltung von Webseiten schwierig machen. • Welchen Zusammenhang es zwischen den Begriffen ‚graceful degradability’, Barrierefreiheit und Suchmaschinen-Tauglichkeit von Webseiten gibt. • Welche Vor- und Nachteile fixe, fluide und elastische Layouts von Webseiten haben. Was Sie können sollten • Absolute und relative URLs verwenden. Fehler die durch falsche URLs verursacht werden finden und korrigieren. • Ein Bild das digital vorliegt in ein geeignetes Format für das Web konvertieren. • Ein Bild (auf verschiedene Arten) auf einer Webeite positionieren. • Mittels CSS zwei oder drei Spalten nebeneinander positionieren. • Mittels CSS aus einer Liste von Links ein Navigations-Menü machen. • An einem bestehen CSS-Layout Veränderungen vornehmen. Weitere Informationsquellen • CSS Zen Garden. http://csszengarden.com/ • CEDERHOLM,Dan (2007): Bulletproof Webdesign. Addison-Wesley, München. ISBN 3827326230. • MEYER,Eric A. (2006): Eric Meyer's CSS. Addison-Wesley, München. ISBN 3827324793. • Web Standards Project. http://www. webstandards. org/ • Plain Old Semantic HTML (POSH). http://microformats. org/wiki/POSH MMT Webprogrammierung 1 36 3.1 URLs In Kapitel 1.3.2 wurden URLs und Ihre Bestandteile kurz vorgestellt. Nun geht es um die Handhabung von URLs innerhalb von HTML und CSS. 3.1.1 Absolute und relative URLs URLs werden in CSS und HTML an vielen Stellen verwendet: bei Links und Bilder, beim Verweis auf externe Stylesheets, externe Javascript-Dateien, etc. An all diesen Stellen können Sie URLs in den hier beschriebenen Schreibweisen verwenden. (die „absolute“ und „relative“ Schreibweise wurde von den Pfadangaben im UNIX-Dateisystem übernommen; auch die Pfadangaben von DOS/Windows und von CD-ROMs funktionieren ähnlich. ) Neben wir an in der Datei http://mediacube.at/pix/weg.html seien folgende drei URLs enthalten: http://mediacube.at/pix/weg-zur-alten-schmiede.jpg absolut beginnt mit Protokoll relativ zum beginnt mit / relativ zur Datei Webserver /pix/weg-zur-alten-schmiede.jpg weg-zur-alten-schmiede.jpg Bei den relativen URLs muss man die URL des enthaltenden dokuments und die relative URLs zusammen—addieren, um zu einer absoluten URL zu kommen. http://mediacube.at/pix/weg.html + /pix/weg-zur-alten-schmiede.jpg = http://mediacube.at/pix/weg-zur-alten-schmiede.jpg und http://mediacube.at/pix/weg.html + weg-zur-alten-schmiede.jpg = http://mediacube.at/pix/weg-zur-alten-schmiede.jpg Mit einer anderen Ausgangs-URL ist das Ergebnis natürlich anders: http://multimediatechnology.at/2008/09/22/weg.html + /pix/weg-zur-alten-schmiede.jpg = http://multimediatechnology.at/pix/weg-zur-alten-schmiede.jpg und: http://multimediatechnology.at/2008/09/22/weg.html + /pix/weg-zur-alten-schmiede.jpg http://multimediatechnology.at/2008/09/22/weg-zur-alten-schmiede.jpg Relativen URLs können selbst wieder (mehrere) Ordnernamen enthalten: http://multimediatechnology.at/showcase-2008.html + 2008/07/31/mmt-auf-facebook.html http://multimediatechnology.at/2008/07/31/mmt-auf-facebook.html = = MMT Webprogrammierung 1 37 Zwei Punkte als Ordnernamen bedeuten dabei: „raus aus dem aktuellen Ordner“: http://multimediatechnology.at/2008/04/17/rattenscharfes-computergame.html + ../../mmt-auf-facebook.html = http://multimediatechnology.at/2008/07/31/mmt-auf-facebook.html Mit dieser Schreibweise kann man auch Unsinn machen: http://multimediatechnology.at/2008/04/17/rattenscharfes-computergame.html + ../../05/../04/17/rattenscharfes-computergame.html = http://multimediatechnology.at/2008/04/17/rattenscharfs-computergame.html All diese Berechnungen finden im Webbrowser statt, und sind völlig unabhängig davon, wie der Webserver die URL interpretiert. So könnte z.B die letzten URL „in Wirklichkeit“ gar nicht auf Ordner mit Namen 2008, 04, 17 verweisen, sondern eine Datenbanksuche nach „2008-04-17“ nach sich ziehen – das ist Sache des Servers. 3.1.2 Konfiguration des Webservers und URLs Die Konfiguration des Webservers wird hier am Beispiel von Apache gezeigt. Andere Webserver (z.B: Internet Information Server von Microsoft) verfügen auch über diese Fähigkeiten, werden aber anders konfiguriert. Die Apache-Konfiguration müssen Sie noch nicht anwenden können, sie ist hier nur zur Information angeführt. Eventuell können Sie im Fach „Operations & IT“ diese Information in diesem Semester anwenden, auf jeden Fall im nächsten Semester in „Webprogrammierung 2“. Betriebssystem des Webservers Die Webserver der FH sind ausnahmslos UNIX-Server. Die UNIX-Dateisysteme unterscheiden bei Datei- und Ordnernamen zwischen Groß- und Kleinschreibung, sind also „case-sensitive“. Der Rechner auf dem Sie die Webseiten erstellen läuft wahrscheinlich unter Windows oder MacOS; dort sind die Dateisysteme „case-insensitive“. Ein Link auf die Datei bild.JPG funktioniert unter Windows oder MacOS auch, wenn er bild.jpg geschreiben wird. Liegt die Datei aber dann am (UNIX-)Webserver, so funktioniert der Link nicht mehr! bild.jpg und bild.JPG sind zwei unterschiedliche Dateien! Webspace und Ordner Im einfachsten Fall wird im Webserver ein Ordner spezifiziert, der als Ausgangspunkt für den Webspace dient. Für den Webserver mediacube.at ist dies der Ordner /var/www/virthosts/mediacube.at/ URL http://mediacube.at/pix/weg-zur-alten-schmiede.jpg MMT Webprogrammierung 1 Dateisystem 38 /var/www/virthosts/mediacube.at/pix/weg-zur-alten-schmiede.jpg Die Apache-Konfiguration dazu sieht so aus: Standard-Dokument Endet eine URL auf einen Schrägstrich, dann verweist sie eigentlich auf einen ganzen Ordner, nicht auf eine spezielle Datei. Für diesen Fall kann im Webserver ein Standard-Dokument definiert werden. Auf allen Webservern der FH ist dies die Datei index.html. d.h. wenn eine URL auf einen Ordner verweist, und in diesem Ordner eine Datei mit Namen index.html existiert, dann wird diese Datei geliefert. URL http://mediacube.at/ Dateisystem /var/www/virthosts/mediacube.at/index.html URL http://mediacube.at/pix/ Dateisystem /var/www/virthosts/mediacube.at/pix/index.html Die Apache-Konfigurationsanweisung dazu lautet DirectoryIndex index.html Achtung: die Konfiguration ist am Internet Information Server normalerweise anders, dort wir die Datei default.htm verwendet! Was passiert wenn keine Datei mit dem richtigen Namen vorhanden ist? Die zwei Möglichkeiten sehen Sie in Abbildung 17: entweder eine Auflistung der Dateien im Ordner oder eine Fehlermeldung. Abbildung 17: Zugriff auf einen Ordner ohne Standard-Dokument (index.html): Auflistung oder Fehlermeldung Die entsprechenden Apache-Konfigurationsanweisung dazu sind: Options +Indexes Options -Indexes MMT Webprogrammierung 1 39 Automatischer Webspace für Alle Am Webserver www.users existiert für jeden Account automatisch ein Webspace. Dieser WEbspace befindet sich innerhalb des Home-Verzeichnisses des jeweiligen Accounts. Z.B. könnte eine Studentin den Username fhs303030 habe und das Home-Verzeichnis /home/urstein/stud/03/fhs303030/. Ihr Webspace ist im Unter-Ordner htdocs: URL http://www.users.fh-salzburg.ac.at/~fhs303030/test.html Dateisystem /home/urstein/stud/03/fhs303030/htdocs/test.html URL http://www.users.fh-salzburg.ac.at/~fhs111111/test.html Dateisystem /home/urstein/stud/01/fhs111111/htdocs/test.html Beachten Sie: für das formulieren von relativen URLs sind nur die URLs relevant, nicht die Position der Dokumente im Dateisystem! Der Ordnername htdocs wird also nie in einer URL vorkommen. Der Link von einem User-Webspace zum nächsten funktioniert also so: http://www.users.fh-salzburg.ac.at/~fhs303030/test.html + ../~fhs111111/test + /~fhs111111/test = http://www.users.fh-salzburg.ac.at/~fhs111111/test Oder relative zum Webserver: http://www.users.fh-salzburg.ac.at/~fhs303030/test.html = http://www.users.fh-salzburg.ac.at/~fhs111111/test Die Apache Konfigurationsanweisung lautet: UserDir htdocs 3.1.3 Pragmatische Tipps zu Dateienamen und URLs Groß- und Kleinschreibung Hintergrund: Webserver läuft auf UNIX, dort sind Dateinamen case-sensitive. Tipp: ich schreibe alle Ordner- und Dateinamen sowie alle URLs immer durchgängig klein. Leerzeichen Hintergrund: Leerzeichen in URLs müssen als %20 geschrieben werden. Tipp: ich verwende keine Leerzeichen in Ordner- und Dateinamen meiner Web-Projekte. Umlaute Hintergrund: URLs sind global sichtbar. Eine URL, die ich erschaffe, muss vielleicht einmal auf einer Tastatur eingetippt werden, die keine deutschen Umlaute hat. MMT Webprogrammierung 1 40 Tipp: ich vermeide Umlaute in Ordner- und Dateinamen meiner Web-Projekte und beschränke mich auf den englischen Zeichensatz. Ordnerstruktur Hintergrund: Nicht nur der Code meiner Webseiten ist für das Funktionieren der Seiten wichtig, sondern auch die Dateinamen und Ordnernamen, bzw. die Ordnerstruktur. Liegt eine Datei im falschen Ordner wird sie nicht mehr gefunden. Tipp: ich überlege mir die Ordnerstruktur meines Webspace sorgfältig. Wenn ich auf meheren Rechnern entwickle, dann baue ich auf jedem dieser Rechner die Ordnerstruktur wieder auf. Ich nutze Dreamweaver für den Upload und Download, weil er die Ordnerstruktur „mitdenkt“. MMT Webprogrammierung 1 3.2 41 Rahmenbedingungen für Layout Wie in Kapitel 1 beschrieben gibt es viele verschiedene Ausgabegeräte für Webseiten. Für die Gestaltung des Layouts von Webseiten spielt dabei die Bildschirmgröße bzw. die Auflösung eine wichtige Rolle. 3.2.1 Auflösung Zuerst stellt sich die Frage: woher weiß ich, wie hoch die Auflösung am Computer meiner LeserIn ist? Woher weiß ich, wie viel Platz im Browserfenster zur Verfügung steht? Die Antwort lautet: ich weiß es nicht, und es gibt keine zuverlässige Methode, mit der man diese Information in jedem Fall herausfinden kann. Es gibt eine Meßmethode mit Hilfe der Programmiersprache Javascript, mit der man die Größe des Browserfensters messen kann – das Ergebnis der Messung ist natürlich dadurch verfälscht, dass Browser ohne Javascript ganz aus der Messung herausfallen. Diese Beschränkung sollten Sie bei den folgenden Überlegungen immer beachten. Abbildung 18 zeigt einige derzeit (2008) mögliche Bildschirm-Auflösungen. Abbildung 18: einige mögliche Bildschirmauflösungen und Seitenverhältnisse 2008, basierend auf http://en.wikipedia.org/wiki/Image:Vector_Video_Standards2.svg MMT Webprogrammierung 1 42 Vergleichen Sie die höchsten hier dargestellte Auflösungen mit der geringsten Auflösungen. Da Breite und Höhe (mehr als) verdoppelt sind, steht bei der höchsten Auflösung also (mehr als) die vierfache Fläche zur Verfügung! Abbildung 19 zeigt zwei Statistiken über die Bildschirmauflösung von thecounter.com von 2006 und 2008. In diesem Zeitraum ist der Anteil der geringsten hier dargestellte Auflösung (800x600) von 17% auf 7% gefallen. Die meistverwendete Auflösung bleibt 1024x768. Abbildung 19: Statistik über die Bildschirmauflösung, Juni 2006 und April 2008, Quelle: thecounter.com 3.2.2 Brutto-Fläche vs. Netto-Fläche Von diesen „Brutto-Angaben“ über die Größe der zur Verfügung stehenden Fläche sind nun noch der Platz für den Fensterrahmen des Browsers, für Scrollbalken, Symbolleisten, und eventuell eingeblendete Favoritenleisten abzuziehen, um den „netto“ verbleibenden Raum für die Gestaltung der Webseite zu erhalten. Abbildung 20 zeigt diese Problematik an Hand einer Webseite. Abbildung 20: Platzbedarf von Browser-Elementen: firefox ohne Sidebar, Internet Explorer mit Favoriten MMT Webprogrammierung 1 43 Beide Browser zeigen dieselbe Webseite, beide Browser wurden auf einem Computer mit einer Bildschirm-Auflösung von 1024x768 Pixel verwendet. Links in der Abbildung sehen sie den Browser Firefox. Nach Abzug von Symbolleisten oben, Statusleiste unten, Scrollbalken rechts und dem (sehr dünnen) Fensterrahmen links bleiben 1003x615 Pixel für die Webseite. Rechts in der Abbildung sehen Sie dieselbe Seite in Internet Explorer. Zusätzlich zu den üblichen Symbolleisten ist hier auch die „Favoriten-Leiste“ am linken Rand des Browser sichtbar. Es bleiben 743x562 Pixel für die Darstellung der Webseite. Wie Sie sehen können ist die Seite so gestaltet, dass das Foto, das in Firefox in der rechten oberen Ecke der Webseite sichtbar ist, in Internet Explorer nicht mehr sichtbar ist. Abbildung 21 zeigt eine Statistik über die „Netto-Größen“ von Browser-Fenstern. Laut dieser Statistik kann eine Webseite mit Breite 950 Pixel auf ca. 70% der Browser vollständig angezeigt werden. Bei 1050 Pixel Breite sind es nur noch 20%. Abbildung 21: „Netto“-Breite von Browser-Fenstern, 2005-2006, Quelle: webwelt.horus.at 3.2.3 Entwurf für mehrere Auflösungen Wie gehen WebdesignerInnen mit den verschiedenen Auflösungen um? Ein paar Varianten: 1) Ignorieren und für die eigene Bildschirmauflösung entwerfen. Manchmal in kombination mit der Beschriftung „best viewed at 1600x1200“ 2) Ignorieren dass es viele Bildschirmauflösungen gibt, und für das Minimum entwerfen. 3) Entwurf der für mehrere Auflösungen funktioniert Dazu ein strenges Urteil: 1) ist völlig inadequat für das Medium Web. „best viewed“ ist eine Zumutung für alle LeserInnen auf ‚unpassenden’ Ausgabegeräten. Stellen Sie sich vor, der Architekt der FH hätte eine Treppe zum Eingang zum Foyer eingeplant, und dann ein Schild daneben gestellt „FH nur benutzbar für Leute die Treppen steigen können“. Was würden sich wohl RollstuhlfahrerInnen oder Leute mit Kinderwagen dazu denken? 2) Zeigt schon ein Minimum an Wissen über das Web, ignoriert aber die gestalterische Herausforderung des Mediums. Weil soch ein Entwurf auf einem Bildschirm mit hoher auflösung MMT Webprogrammierung 1 44 sehr klein auf einer großen leeren Fläche erscheint wird es spöttisch „Briefmarkenlayout“ genannt. 3) Nur das verdient wirklich die Bezeichnung „Webdesign“. Ein Beispiel für Variante 3 : Darstellung der Seite bei einer Auflösung von 800x600: Navigation (linke Spalte) und Content ist sichtbar. Eine Spalte rechts mit untergeordnetem Content ist nur durch Scrollen nach rechts erreichbar. Darstellung der Seite bei einer Auflösung von 1024x768 Navigation, Content und ZusatzContent voll sichtbar. MMT Webprogrammierung 1 45 Darstellung der Seite bei einer Auflösung von 1280 x 1024 Navigation, Content Content voll sichtbar. und Zusatz- Der „leere“ Teil der Webseite wird durch das Hintergrundbild interessant gestaltet. Darstellung der Seite bei einer Auflösung von 1600x1200. Navigation, Content Content voll sichtbar. und Zusatz- Der „leere“ Teil der Webseite wird durch das Hintergrundbild interessant gestaltet. Das Hintergrundbild wiederholt sich zwar vertikal, aber horizontal zeigt es auch bei dieser Auflösung neue Details. 3.2.4 Bilder im Web Als Bildformate für Webseiten werden nur Pixel-Formate von vielen Browsern unterstützt. MMT Webprogrammierung 1 gif 46 Palette von 255 Farben + 1 Transparenz-Farbe (kein Alpha). „animiertes Gif“ enthält mehrere Bilder, die der Reihe nach angezeigt werden (Daumenkino). Besonders geeignet für Bilder mit klaren Kanten, einfärbigen Flächen, wenigen Farben, z. B. Comics, Logos. jpg Millionen von Farben, variable Kompression, keine Transparenz. Besonders geeignet für Bilder mit Farbverläufen, z. B. Photos. png Nachfolge-Format für gif, Alpha-Transparenz, diese wird aber von MSIE erst ab MSIE 7 unterstützt. Tabelle 2: Bildformate im Vergleich Es kann jedes Bild in allen drei Formaten gespeichert werden. Ideal wäre, das Format auszuwählen, in dem das Bild nichts an Qualität verliert, und die Dateigröße möglichst gering ist. 3.2.5 Schriftgröße Die Schriftgröße im Browser unterliegt nur bedingte der Kontrolle durch HTML und CSS Code. Das „letzte Wort“ hat hier die LeserIn, die die Schrift größer oder kleiner stellen kann., z.B. in MSIE unter Ansicht Schriftgrad, in Firefox mit der Tastenkombination STRG + oder STRG – Je nach Schriftgröße und zur Verfügung stehendem Platz im Browser-Fenster wird der Browser die Absätze geeignet in Zeilen umbrechen: MMT Webprogrammierung 1 3.3 47 CSS Selektoren In Kapitel 2.2.2 haben Sie CSS Selektoren für Klassen und IDs kennen gelernt. In der CSS 2.1 Spezifikation werden u.a. folgende Schreibweisen für Selektoren beschrieben4: Name Muster Beschreibung Universal selec* tor Stimmt mit jedem Element überein. Type selectors E Stimmt mit jedem E-Element überein (d.h. ein Element des Typs E). Grouping E, F, G Stimmt mit jedem E-, sowie jedem F-, sowie jedem G-Element überein. E, F und G könnten auch komplexere Selektoren sein! Descendant selectors E F Stimmt mit jedem F-Element überein, das ein Nachfahre eines EElements ist. Child selectors E > F Stimmt mit allen F-Elementen überein, die Kindelemente eines Elements E sind. The :first-child pseudo-class E:first-child Stimmt mit Element E überein, wenn E das erste Kindelement des übergeordneten Elements ist. The link pseudo- E:link E:visited classes Stimmt mit dem Element E überein, wenn E der Quellanker eines Hyperlinks ist, dessen Ziel noch nicht besucht wurde (:link), oder dessen Ziel bereits besucht wurde (:visited). The dynamic pseudo-classes E:active E:hover E:focus Stimmt während bestimmter Benutzeraktionen mit E überein. Adjacent selectors E + F Stimmt mit jedem F-Element überein, dem unmittelbar ein Element E vorausgeht. Class selectors E.warning Nur HTML. Stimmt mit jedem E-Element überein, dessen CLASS gleich „mwarning“ ist. ID selectors E#myid Stimmt mit jedem E-Element überein, dessen ID gleich „myid“ ist. 4 Gekürzt! Originaltext siehe auch http://www.w3.org/TR/CSS2/selector.html#q1, Beschreibung zitiert nach der Übersetzung http://www.edition-w3c.de/TR/1998/REC-CSS2-19980512/kap05.html, MMT Webprogrammierung 1 3.4 48 CSS für Layout Die Darstellung einer HTML-Seite durch den Browser erfolgt von oben nach unten, je nach Sprache von links nach rechts oder von rechts nach links. Dabei wird zwischen blockbildenden Tags und nicht-blockbildenden Tags unterschieden. Innerhalb eines Blocks wird Text vom Browser gesetzt und umgebrochen, jeder Block nimmt genau einen rechteckigen Bereich des Browserfensters in der vollen Breite ein. In Abbildung 22 wurden und <em>-Tags verwendet und mit folgendem Stylesheet formatiert: p { background-color:#CCCCCC; } em { background-color:#FFFF66; } InhaltHier ist der Inhalt[. . . ] 52 #main { border: 1px red solid; position:relative; width: 700px; margin: 0px auto; } #content { margin-left: 120px; background-color: #ddd; } #navi { position: absolute; width: 80px; top:0px; left:0px; } 3.5 Navigationsmenü mit CSS Wenn man mit CSS ein Navigationsmenü gestaltet dann sollte man von einem HTML-Code ausgehen der auch ohne CSS gut benutzbar bleibt. Dieser Ansatz ist auf englisch als „graceful degradablility“ bekannt. Der Ausgangspunkt für ein Navigationsmenü ist eine Liste mit Links: Ohne CSS wird die Liste ganz normal dargestellt. Mit CSS kann man daraus ein vertikales Menü machen, dazu wird mit list-style-type:none der Listenpunkt zu einem normalen Tag. .unsichtbar {display:none;} div#navi li { list-style-type:none; margin-bottom:1px; background:#6C6; width:6em; padding: 0.2em; } div#navi li a:link { text-decoration: none; font-weight: bold; color: black; } Mit Hilfe von Float kann man das Menü auch horizontal darstellen, dazu muß nur ein float eingefügt und der margin anders gesetzt werden: MMT Webprogrammierung 1 53 div#navi li { float:left; list-style-type:none; margin-right:1px; background:#6C6; width:6em; padding: 0.2em; } div#navi li a:link { text-decoration: none; font-weight: bold; color: black; } 3.5.1 :hover Mit dem Selektor :hover wird eine CSS-Regel nur angewandt wenn die Maus über dem Tag ist. div { background-color: #ddd; } div:hover { background-color: red; } Mit Hilfe von Hintergrundbildern kann man so zum Beispiel einen kitschigen 3d-Button darstellen. div { background-image: url(button-up.png); } div:hover { background-image: url(button-down.png); } Beim Laden des zweiten Hintergrundbildes kann es dabei zu einer Verzögerung kommen. Um das zu verhindern kann man die beiden Hintergrundbilder in einer Bilddatei speichern und nur den Bildausschnitt wechseln: /* css */ div { height:115px; width:240px; background-image: url(pix/rolloverButton.gif); overflow:hidden; } div:hover { background-position: 0 -120px; } Eine extreme Anwendung dieses Prinzips nennt man CSS-Sprites: dabei werden möglichst viele Bilder in einer Bild-Datei zusammengefaßt. Falls viele kleine Icons verwendet werden kann das die Darstellung der Webseite erheblich beschleunigen. MMT Webprogrammierung 1 54 Abbildung 30: CSS Sprites von Yahoo MMT Webprogrammierung 1 4. 55 Formulare, URLs, erstes Javascript Zum vierten Termin der Lehrveranstaltungen lernen Sie Formulare und Ihre Funktionsweise kennen. Was Sie wissen sollten • Wie Web-Formulare mit URLs zusammen hängen • Welche HTML-Tags ein Formular und seine Eingabeelemente definieren Was Sie können sollten • Ein Web-Formular erstellen • Ein alternatives Web-Formular für ein bestehendes Formular / Programm definieren Weitere Informationsquellen • Formulare. In: Selfhtml. http://de.selfhtml.org/html/formulare/ • HTML Forms and Input. In: W3 Schools. http://www.w3schools.com/html/html_forms.asp • Newhouse(2001): Practical CSS Layout Tips, Tricks, & Techniques. In: A List Apart. http://www.alistapart.com/stories/practicalcss/ Vertiefungsmöglichkeiten • Ein alternatives Web-Formular für ein bestehendes Formular / Programm definieren 4.2 Formulare Mit Ihren bisherigen Kenntnissen können Sie schon Webseiten mit einfachen InteraktionsMöglichkeiten gestalten: mit Links ermöglichen Sie der LeserIn die Navigation durch das Web. Formularen ermöglichen mehr Interaktion – aber immer noch in einem sehr strengen, sehr strukturierten Rahmen. Abbildung 31 zeigt zwei typische Anwendungsgebiete für Web-Formulare: das Eingabeformular der Suchmaschine Google und ein Bestellformular. MMT Webprogrammierung 1 56 Abbildung 31 Formulare in Webseiten Mit den HTML-Tags |