Über Inhalt und Form beim Webdesign
= Wie ist das Dokument strukturiert?
= Wie soll das Dokument dargestellt werden?
Sowohl HTML-Dateien als auch Stylesheets sind einfache Text-Dateien, daher genügt zum
Schreiben der Dateien ein einfacher Text-Editor. Die HTML-Dateien speichert man mit
der Endung .html (oder .htm) ab. Sie lassen sich dann im Webbrowser betrachten.
Zur Edition benötigt man:
Zur Überprüfung der HTML-Dokumente gibt es den
HTML-Validation-Service
und für die Stylesheets den
CSS-Validator
des W3C.
Non-Profit-Organisationen können sich die Zugänglichkeit ("Barrierefreiheit") ihres
Webauftrittes vom Barrierekompass
kostenlos überprüfen
lassen.
<tag></tag>
)
, <tag />
) <tag1><tag2></tag2></tag1>
;
falsch: <tag1><tag2></tag1></tag2>
) <element attribut="attributwert"></element>
)<!--Kommentar-->
) Versuchen Sie, den Quelltext dieser Seite zu verstehen.
(Mozilla, Firefox: ANSICHT/SEITENQUELLTEXT ANZEIGEN; Opera, IE:
ANSICHT/QUELLTEXT)
<!DOCTYPE ...>
: Dokumententyp ("HTML-Version")
<html ... ></html>
: Anfang und Ende eines HTML-Dokuments
mit Angabe des Namensraumes und verwandter natürlicher Sprache (z.B.
"de"
für Deutsch
nach
ISO
639-2) <head></head>
: Kopfteil mit Informationen zum
Dokument (Titel, Zeichensatz z.B. "8859-1"
für
Westeuropäisch) <body></body>
: Dokumenteninhalt <p></p>
: Absatz <br />:
Zeilenumbruch<h1></h1>
, <h2></h2>
,
..., <h6></h6>
: Überschriften 1. bis 6.
Ordnung <hr />
: Horizontaler Trennstrich (leeres Tag) Schreiben Sie diese Seite !
<ul><li></li></ul>
: ungeordnete
Listen <ol><li></li></ol>
: geordnete Listen
(z.B. numeriert)Listenelemente müssen nicht unbedingt untereinander angeordnet sein. Die Formatierung (auch die Art der Numerierung[arabische, römische Zahlen]) lässt sich mit CSS vornehmen.
<table><tr><td></td></tr></table>
: Tabellen (Tabelle, Zeile, Zelle)<table>
<caption>Überschrift der Tabelle</caption>
<thead>
<tr>
<th>Überschrift der 1. Spalte</th>
<th>Überschrift der 2. Spalte</th> </tr>
<thead> <tfoot>
<tr>
<td>Alle Angaben ohne Gewähr</td>
<td> </td> </tr>
</tfoot> <tbody>
<tr>
<td>1. Spalte, 1. Zeile</td>
<td>2. Spalte, 1. Zeile</td>
</tr>
<tr>
<td>1. Spalte, 2. Zeile</td>
<td>2. Spalte, 2. Zeile</td>
</tr>
</tbody>
<table>
Tabellen sollten nur zur Wiedergabe strukturierter Daten genutzt werden. Zur Aufteilung und Formatierung von Webseiten nutze man die Auszeichung logischer Bereiche in Verbindung mit den CSS-Möglichkeiten (siehe unten).
<em></em>
: betonter Text <strong></strong>
: stark betonter Text <code></code>
: Quellcode <abbr></abbr>
: Abkürzung, z.B.:<abbr title="Zentrale Einrichtung f&uum;r Kommunikation
und Informationsverarbeitung">ZEIK</abbr>
<a></a>
: Anker
<a href="http://golm.rz.uni-potsdam.de/golm/index.htm"></a>
: absoluter Link<a href="../index.htm"></a>
:
relativer Link <a href="mailto:fiedler@rz.uni-potsdam.de"></a>
: Link mit E-Mail-Protokoll (startet E-Mail-Programm)<a id="mein_anker" name="mein_anker"></a>
:
Anker im engeren Sinn, benannter Punkt in einem Dokument <a href="../index.html#mein_anker"></a>
:
relativer Link auf einen benannten Anker Anker können Zusatzinformationen im title
-Attribut tragen, z.B. <a href="/" title="zur Startseite">...</a>
, die dann dem Nutzer als Tipp beim Überfahren mit der Maus angezeigt werden.
<img />
: Bilder einbinden
<img src="../bilderordner/sonnenuntergang.jpg"
width="100" heigth="75" alt="Sonnenuntergang
am Meer" />
: Grafikdatei aus einem lokalen Bilderordner
einbetten <img src="http://www.example.net/img/himmel.gif"
width="100" heigth="75" alt="Himmel über Berlin "
/>
: Grafikdatei mit absoluter Adresse einbetten Achtung!
ist ein leeres Tag, d.h. es endet daher in XHTML mit
<img />/>
. Ein Alternativtext ( alt="..."
) ist in XHTML obligatorisch (s.
Warum
alt-Attribute Pflicht sind ). Auch wenn manche Browser ihn anzeigen,
wenn der Mauszeiger über das Bild fährt, ist er dazu nicht
gedacht: Für Erläuterungen gibt es das title-
Attribut.
<object></object>
: Einfügen von Objekten
<object type="application/x-shockwave-flash" data="flashfilme/kaufhaus_werbung.swf"
width="100" height="75">
<param name="movie" value="flashfilme/kaufhaus_werbung.swf"
/>
<a href="http://www.kaufhaus.de/">
<img src="img/kaufhaus_werbung.png" width="100" height="75" alt="Kauf
bei Kaufhaus!">
</a>
</object>
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab"
width="320" height="260">
<param name="src" value="movies/tollerfilm.mov" />
<param name="controller" value="true" />
<object type="video/quicktime" data="movies/tollerfilm.mov" width="320" class="mov">
<param name="controller" value="true" />
Fehler- oder Alternativtext
</object>
</object>
Bei all diesen Objekten sollte daran gedacht werden, dass Alternativangebote in Textform zur Verfügung gestellt werden, damit auch die Nutzer, die diese Objekte nicht sehen können (etwa weil sie die nötigen Browser-Plugins nicht haben), die Inhalte erfassen können.
<div></div>
: Blockelement <span></span>
: Inline-Element Das Blockelement <div>
dient der Einteilung des Webdokuments
in logische Bereiche (z.B. Inhalt, Fußzeile, etc.); das Inline-Element
<span>
wird innerhalb von anderen Elementen (z.B. <p>
)
wird besondere Zwecke benutzt (z.B. Anzeigen von Sprachwechsel Deutsch->Englisch,
Klassen mit CSS-Regeln).
Diese beiden Element werden häufig als Hilfsmittel für das unten
folgende Design mit CSS verwandt.
Zeichen | Name | Entity |
---|---|---|
ä | a-Umlaut | ä |
Ä | A-Umlaut | Ä |
ö | o-Umlaut | ö |
Ö | O-Umlaut | ö |
ü | u-Umlaut | ü |
Ü | U-Umlaut | Ü |
ß | sz-Ligatur | ß |
© | Copyright-Zeichen | © |
€ | Euro-Zeichen | € |
& | et-Zeichen | & |
" | Anführungszeichen | " |
Die hier dargestellten Sonderzeichen (und auch alle anderen) lassen sich
auch numerisch (dezimal in der Form �
oder hexidezimal
in der Form �
)umschreiben, z.B. ä
für "ä".
Auf den Seiten von Unicode findet man eine
HTML-Zeichenreferenz für westeuropäische Zeichen
und für andere ISO-Kodierungen.
Achtung!
Die korrekte Darstellung der Sonderzeichen ist abhängig von
der im Kopf des HTML-Dokuments eingestellten Kodierung! (z.B. charset=iso-8859-1
für westeuropäischen Zeichenvorrat [Latein-1], charset=iso-8859-2
für mittelosteuropäischen Zeichenvorrat [Latein-2], charset=iso-8859-5
für Kyrillisch, charset=utf-8
für Unicode). Will
man mehrere Sprachen auf einer Seite benutzen (z.B. Russisch und Deutsch),
sollte man entweder auf einige Zeichen verzichten (also "ss" statt
"ß"), oder Unicode benutzen
(von älteren Browser jedoch nicht durchgängig unterstützt!).
Schreiben Sie die folgenden Seiten und verknüpfen
Sie miteinander
Seite 1
- Seite 2
- Seite3 !
Mit Cascading Style Sheets lassen sich Style-Vorgaben für einzelne
HTML-Elemente von Webseiten erstellen. Prinzipiell können Stylevorgaben
in der HTML-Datei selbst oder aber in einem externen CSS-Dokument gemacht
werden, das dann in die HTML-Dokumente eingebunden wird.
Die Einrichtung zentraler Style-Dateien ist vorzuziehen, da nicht nur eine
größere Übersichtlichkeit über die Styles gegeben ist,
sondern so auch ein einheitliche Design für eine Site oder zumindest
für einen gewünschte Menge von HTML-Dateien erzielt werden kann.
CSS-Dateien lassen sich (ebenso wie HTML-Dateien) mit jedem beliebigen
Texteditor erstellen.
Sie sollten die gängige Dateiendung .css haben.
CSS verhalten sich "kaskadierend", d.h. Eigenschaften werden vererbt:
Ein untergeordnetes Element übernimmt die Styles des darübergeordneten
Elements, es sei denn, sie sind anders definiert; Positionierungsangaben
beziehen sich auch auf das darüber liegende Element.
Z.B.: Wird für das <body>
-Element die Schrift "Times"
festgelegt, so gilt dies auch für das darinliegende <div>
-Element.
Sollte für ein <div>
-Element eine andere Schrift
festgelegt sein (z.B. Garamond), so wird diese für das <div>
-Element
angezeigt und auch für alle darinbefindlichen Elemente (z.B. <p>
),
bis wieder z.B. in einem weiteren Element (z.B. <span>
)
etwas anderes definiert ist, usw.
Das Einbinden von externen CSS-Dateien geschieht im Kopf (<head></head>
)
der HTML-Datei.
Zwei Möglichkeiten:
<link rel="stylesheet" href="css/mein_style.css"
type="text/css" />
<style type="text/css">
@import "css/mein_style.css";
</style>
Es lassen sich auch mehrere CSS zu verschiedenen Zwecken einbinden z.B.
<link rel="stylesheet" type="text/css"
media="screen" href="css/screenstyle.css" />
<link rel="stylesheet" type="text/css"
media="print" href="css/printstyle.css" />
Man kann auch dem Nutzer die Auswahl zwischen alternativen Stylesheets überlassen:
<link rel="alternate stylesheet" type="text/css" href="css/bigstyle.css" title="große
Schrift" />
<link rel="alternate stylesheet" type="text/css" href="css/smallstyle.css" title="kleine
Schrift" />
Im Gegensatz zu HTML-Dateien haben CSS keinen Kopf oder ähnliches. Man kann gleich mit den einzelnen Regeln beginnen.
Kommentare werden so gekennzeichnet:
/* das ist ein Kommentar*/
.
Selektor { Eigenschaft: Wert; }
z.B.:
body {font-family: Times, serif;}
bei mehreren Eigenschaften :
Selektor {
Eigenschaft 1: Wert;
Eigenschaft 2: Wert;
Eigenschaft x: Wert;
}
mehrere Selektoren:
Selektor 1, Selektor 2, Selektor X { Eigenschaft: Wert; }
z.B.:
code, pre { font-family: "Courier New", Courier, mono; }
font-family
: Schriftfamilie p { font-family: Verdana, "Helvetica New", sans-serif;
}
sanf-serif, serif, monospace, fantasy
).
font-style
normal
oder italic
(kursiv) font-variant
: Schriftgradnormal
oder small-caps
(Kapitälchen)font-weight
: Schriftdickebold
(entspricht dem Wert 700
), bolder
, lighter
font-size
: Schriftgröße12 px
, 18 pt
oder
im Verhältnis: 0.8 em
, 88 %
color
: Schriftfarbeblack, white, olive, gray, yellow, silver, green,
purple, navy, blue, fuchsia, lime, maroon, teal, red, aqua
) oder per Hexadezimalzahl als Angabe
der Farbmischung aus Rot-Gelb-Blau (z.B. #000099
ist ein dunkles Blau)background-color: #...;
) festgelegt werden.Beim Einsatz von Farben sollte man darauf achten, dass für ausreichenden Konstrast gesorgt ist und dass Text und Grafik auch verständlich sind, wenn sie ohne Farbe betrachtet werden.
text-align
: Ausrichtung left, right, center, justify
(Links-, rechtsbündig, zentriert oder Blocksatz) vertical-align
: vertikale Ausrichtung top, middle, bottom, super, sub
( oben, Mitte, unten, höher- oder tiefergestellt)display
: Darstellung eines Elements als Block-Box (block
), in einer Zeile (inline
), wie ein Listenelement (list-item
) oder ausgeblendet (none
).Entwickeln Sie für die erste Übungsseite eine
einfache CSS-Styledatei mit Angaben zur Schrift und der Textformatierung und binden Sie
diese mit <link ... />
in die HTML-Datei ein!
<a></a>
) bei unterschiedlichem
Status (Anker-Pseudo-Klassen) a:link { color: blue } /* noch nicht besuchter Link */ a:visited { color: red } /* schon besuchter Link */ a:hover { color: black } /* Benutzer zeigt mit der Maus auf einen Link' */ a:active { color: yellow } /* Link wird ausgewählt */
Man beachte die Reihenfolge!
body {
background-image: url(/images/background.png);
}
body {
background-image: url(http://www.server.xy/im/background.gif);
}
<div></div>
) - PositionierungMit dem <div>-Element lassen sich Webseiten in einzelne logische Bereiche teilen (z.B. für Navigation, Kopfzeile, Hauptteil, etc.), die sich dann mit Hilfe von CSS gestalten und positionieren lassen.
Das Element mit dem Identifikationsnamen "mein_bereich"
(in HTML als <div id="mein_bereich"></div>
)
lässt sich in CSS über
#mein_bereich {
Eigenschaft: Wert;
}
gestalten. Dabei ist zu beachten, dass jeder Bereich (also jede "id")
nur einmal in jedem Webdokument vorkommen kann.
Bei der Positionierung gibt folgende Möglichkeiten:
position: static;
: Positionierung nach normalem Fluss;
position: relative;
: relativ zur statischen Position;
position: absolut;
: relativ zum übergeordnten Element;
position: fixed;
: relativ zum übergeordnten Element,
wobei diese Position beim Scrollen mit der Maus nicht verändert wird (vom
IE nicht unterstützt!).
Die Positionierung im Ganzen kann dann z.B. lauten:
#mein_bereich {
position: absolute;
top: 20px;
left: 160px;
width: 200px;
height: 100px;
}
#sein_bereich {
position: fixed;
top: 20px;
right: 0px;
width: 50%;
height: 80px;
margin: 12px 30px 4px 30px; /*oben, rechts, unten links*/
padding: 4px;
border: 1px dotted olive; /*Linien-Dicke, Art, Farbe*/
}
Mit width
und height
wird die Höhe
des Bereiches angegeben. Mit margin
definiert man einen etwaig gewünschten
Rand ringsum den Bereich, mit padding
einen inneren Rand zum nächsten Element
(z.B. einem Textabschnitt). Um den Bereich lassen sich mit border
Linien ziehen,
für die
Linienstärke, die Art (solid
[durchgezogen], dotted
[gepunktet],
dashed
[gestrichelt]) und die Farbe
festzulegen ist.
Durch die Verwendung von Klassen lassen sich bestimmte Inline-Bereiche (z.B. innerhalb eines Absatzes) bestimmen. Die Bereiche einer Klasse können in einem Webdokument beliebig oft vorkommen.
Klassen werden in CSS mit einem Punkt definiert:
.bunte_klasse {
color: red;
}
<p>Text,
Text, ...<span class="bunte_klasse">roter Text</span></p>
li.bunt {
color: green;
}
<ul><li>Unterpunkt</li><li
class="bunt">grüner Unterpunkt</li></ul>
Durch #mein_bereich { display: none;}
lässt sich die Ausgabe eines Bereichs
unterdrücken.
Sinnvoll ist dies beispielsweise bei Navigationsbereichen, auf die man bei Druckausgaben verzichten
kann.
Tooltipps und Adressen von Links verschwinden normalerweise bei gedruckten Webseiten, da diese
auf dem Bildschirm angezeigt werden, wenn der Nutzer die entsprechende Stelle mit der Maus
überfährt. In einem Druckstylesheets lassen sich Vorgaben machen, damit diese Informationen
auch auf dem Papier nicht fehlen:
Mit abbr:after { content: " (" attr(title) ") ";}
gibt man den
Titel
(also den Langnamen) einer Abkürzung nach der Abkürzung in Klammern mit aus.
Mit a.extern:after { content: " < " attr(href) ">";}
wird
die Web-Adresse (URI) eines im HTML-Dokument mit <a class="extern" ...>
gekennzeichneten
externen Links in spitzen Klammern mit aufs Papier gebracht.
Ändern Sie den HTML-Code der Seiten aus Übung
2 dahingehend, dass Sie sinnvoll Bereiche für die Navigation, den
Inhalt, etc. definieren und positionieren und gestalten Sie diese Bereiche
in einem CSS-Stylesheet!
z.B. in dieser Form mit diesem
Stylesheet.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Titel</title> </head> <body> <!-- ... Body des Dokuments mit dem Inhalt ... --> </body> </html>