Tipps zu HTML und CSS
Schwerpunkt dieser Seite sind überschaubare, konkrete Aufgaben und Lösungen dazu: in validem XHTML plus CSS. Barrierearmut wird angestrebt.
- Neuste Tipps
- Standard-Merkmale der Beispiele auf dieser Seite
- Verschiedenes
- Überschriften-Hierarchie
- Zeilennummerierung für Codebeispiele
- Wasguckstdu – Box mit begrenzter Größe – 'overflow: auto'
- Fußnoten
- Fußbereich am unteren Fensterrand ausrichten
- Mikroformate – Einführung
- SFTP statt FTP: Zeitstempel übertragen
- Suchmaschinenoptimierung (SEO)
- Buch in einem einzigen HTML-Dokument
- Marginalien
- Stilvorlage für den Druck
- Vermeiden von
clear: bothfür Elemente nach Floats - Dreispalten-Layout
- Mozilla Standard-Stilvorlage
- Vorteile von UTF-8
- Konstanten im Stylesheet: serverseitig
- Übersichtlicher Aufbau von Stylesheets
- CSS-Editoren: Besprechungen
- Augenerkrankungen und barrierearme Gestaltung
- Element am unteren Rand eines DIV ausrichten
- Überlauf von Text in
preaus der Box verhindern - Automatische Nummerierung von Überschriften, Bildern und Tabellen
- Anwendungsdialog visualisieren
- Links
- Bilder
- Listen
- Typographie
- Zitate
- Hilfsmittel
- XHTML validieren: komplette lokale Verzeichnisse in einem Rutsch
- Linkverfügbarkeit prüfen mit Xenu
- Favicon aus Bildvorlage erzeugen - mit Online-Werkzeug
- Bildschirmfoto erstellen und hochladen mit einem Tastendruck
- Blindtextgenerator – 'Lorem ipsum …'
- XHTML-Code in Wiki-Dialekt konvertieren
- MediaWiki-Dialekt in XHTML konvertieren
- Word-Dokument in HTML-Dokument umwandeln
- HTML-Tidy auf ganze Verzeichnisse anwenden
- .htaccess
- Checklisten – Spezifikationen – Einführungen
- Danksagungen
Neuste Tipps
- 21.7.2010
- Überarbeitung und Erweiterung von URLs beim Drucken ausgeben
- 30.09.2009
- 16.03.2009
- 17.05.2008
- Prüfung der Verfügbarkeit aller Links
- 21.02.2007
- 24.01.2007
- 12.01.2007
- 02.12.2006
- 21.11.2006
- 06.11.2006
- 27.07.2006
- 21.06.2006
- 30.05.2006
- 15.03.2006
- 07.03.2006
- 18.11.2005
- Neue Rubrik mit vielen Einträgen: Test- und Beispieldokumente
- 11.10.2005
- 27.09.2005
- 16.07.2004
- Start dieser Seite
Standard-Merkmale der Beispiele auf dieser Seite
- HTML
- valides XHTML 1 strict
- Streben nach semantisch sinnvollem Code
- sparsamer Umgang mit Klassen- oder ID-Attributen
- sparsamer Umgang mit
divundspan - Vermeidung von Markup, welches nur der Bildung passender Selektoren für die Gestaltung per CSS dient
- keine Angaben zur Gestalt über Attribute oder Inline-Styles
- Streben nach schönem, also klarem, übersichtlichem und schlankem Code
- keine Einschränkung der Nutzbarkeit ohne CSS
- CSS
- valides CSS 2
- redundante Angabe der Selektoren
Beispiel:dl.literaturverzeichnis dt strong{ }stattstrong{ }damit es einfacher ist, die Stilvorlagen nachzuvollziehen - Streben nach schönem, also klarem, übersichtlichem und schlankem Code
- Bevorzugung skalierender Gestaltung, also einer Gestaltung, die sich der Größe des Darstellungsfeldes und der vom Nutzer gewählten Schriftgröße anpasst
- Die Gestaltung funktioniert auf allen wichtigen Browsern, bzw. sie schränkt die Nutzbarkeit nicht ein
Verschiedenes
Überschriften-Hierarchie
Zwei lesenswerte Artikel zum Thema:
Zeilennummerierung für Codebeispiele
Aufgabe
- In Beispielen mit Code soll vor jeder Zeile eine fortlaufende Nummer stehen
- Wenn der Nutzer den Code im Browser markiert, sollen die Nummern nicht mitkopiert werden
Lösung
In CSS2 existiert keine Eigenschaft für eine Zeilennummierung. Daher muss improvisiert werden.
<table class="codebeispiel-mit-zeilennummerierung"> <tr> <td class="zeilennummern"><pre> 1 2 3 4 </pre></td> <td><pre> <ul> <li>Lorem</li> <li>Ipsum</li> </ul> </pre></td> </tr> </table>
Danke an Pablo Theissen für die Anregung.
Wasguckstdu – Box mit begrenzter Größe – 'overflow: auto'
Aufgabe
- Standard-Merkmale der Beispiele
- Box mit fester Größe
- Mehr Inhalt als die Box aufnehmen kann
Lösung
Fußnoten
Aufgabe
- Eine wissenschaftliche Arbeit liegt gedruckt vor. Sie enthält etwas
Typisches für solche Arbeiten: Fussnoten.
Der Inhalt soll auch als Webseite zugänglich gemacht werden. Das gedruckte Dokument und die Webseite sollen sich nicht wesentlich unterscheiden. Daraus folgt: sprechende Linktexte haben zwar in aller Regel eine höhere Gebrauchstauglichkeit auf einer Webseite als eine winzige Zahl als Linktext, aber es wird auf diese Änderung bewußt verzichtet. - Standard-Merkmale der Beispiele
- Das Fußnotenzeichen ist nicht nur ein Link auf die Fußnote, sondern
es ist selbst Ziel eines Link: Es existiert ein Link "zur Textstelle"
in jeder Fußnote
Dies Links erlauben es dem Leser, die zugehörige Textstelle auch dann zu finden, wenn er in den Fußnoten stöbert und nicht direkt von der Textstelle kommt. - Das Element
suptransportiert keine Semantik. Daher gebe ich dem Markupmuster
<a id="fnz3" class="fnz" href="#fn3">3</a>
gegenüber
<sup id="fnz3" class="fnz"><a href="#fn3">3</a></sup>
den Vorzug.
- Die Fußnotenzeichen besitzen eine kleine Polsterung, damit die Fläche
des Links größer wird. So ist der Link etwas leichter für Mausnutzer
zu treffen.
Die Fußnotenzeichen erhalten beim Hovern eine Hintergrundfarbe, weil so Mausnutzer leichter feststellen können, ob sie Link bereits "getroffen" hat.
Lösung
Fußbereich am unteren Fensterrand ausrichten
Aufgabe
- Standard-Merkmale der Beispiele
- Die Seite besitzt einen Fussbereich: Solange im Fenster genügend Höhe vorhanden ist, soll dieser Fussbereich am unteren Rand des Fensters dargestellt werden.
- Der Fußbereich soll sich verschieden umfangreichem Inhalt anpassen, ohne dass die Stilvorlage angepasst werden muss
- Der Fussbereich soll mit einer abgrenzenden oberen Rahmenlinie (oder
einer Hintergrundfarbe) versehen werden. Dabei soll der Fußbereich seine
minimale Höhe einnehmen.
(Dieses Kriterium lassen sich für den IE nicht erfüllen:height: 1pxwird nicht interpretiert)
Zusatzaufgabe 1
Verwendung von div
Lösung 1
Die Variante mit DIVs stammt im Original von Manuel Bieh. Er beschreibt
sie auf Einmal
Erdgeschoss bitte. Nachteile der Methode: div class="wrapper" und br
style="clear: both;" dienen allein dem Gestaltungsziel.
Zusatzaufgabe 2
Verwendung von table
Lösung 2
Nachteile der Variante mit TABLE: die Verwendung von TABLE dient allein
der Gestaltung. Und der Fußbereich wird im IE nicht in minimaler Höhe
dargestellt, weil dieser height: 1px nicht interpretiert.
Die Variante mit TABLE kann also nur eingesetzt werden, wenn auf die
Abgrenzung des Fußbereiches verzichten möchte.
Mikroformate – Einführung
Empfehlenswerter Artikel zum Thema von Michael Jendryschik
SFTP statt FTP: Zeitstempel übertragen
Beim FTP-Protokoll wird der Zeitstempel nicht übertragen. Nachdem eine Datei auf den Server übertragen wurde, steht in ihrem Zeitstempel der Zeitpunkt der Übertragung.
Werkzeuge, die der Synchronisation eines lokalen Verzeichnisses mit dem Verzeichnis auf einem Server dienen, bewerten solche Dateien dann als ungleich und schlagen - unnötigerweise - eine Synchronisation vor.
Im Protokoll SFTP (Secure File Transfer Protocol) dagegen wird der Zeitstempel exakt übertragen. Leider bieten nur wenige Webhoster dieses - auch unter anderen Gesichtspunkten zu bevorzugende - Protokoll an.
Suchmaschinenoptimierung (SEO)
Empfehlenswerter Artikel zum Thema von Jens Meiert
Buch in einem einzigen HTML-Dokument
Aufgabe
- PDFs passen sich nicht den Fensterbreiten an, wenn sie auf dem Display gelesen werden – auch bei normal breiten Fenster kann die Nutzbarkeit enorm leiden, wenn z.B. ein sehschwacher Nutzer das PDF in einer großen Schrift lesen möchte
- Auf Displays lassen sich in aller Regel speziell für den Bildschirm gestaltete Schriften lesen. In PDFs kann der Anwender die Schrift nicht anpassen.
- Dies ist eine Skizze, wie ein Buch als HTML-Dokument ausgezeichnet werden könnte
- Außer wenigen Kapiteln enthält das Buch keine weiteren Überschriften
- Ein Inhaltsverzeichnis mit seiteninternen Links zu den Kapiteln exististiert
- Nach einer festen Textmenge ist jeweils ein benannter Anker zu finden. Die Textmenge zwischen zwei Ankern passt in etwa auf eine A5-Seite bei Rändern von 2cm und einer Schriftgröße von 9pt.
- Jeder Absatz mit Seitenzahl besitzt einen Anker und kann daher verlinkt werden – praktisch für Zitate
- Die Seitenzahlen sind nach rechts ausgerückt, damit sie einerseits leicht erfasst werden und andererseits den Lesefluss nicht stören
- Die Skizze ist mit einer sehr einfachen Stilvorlage für den Druck
ausgestattet, in welchem auch Seitenumbrüche festgelegt sind. Firefox
zum Beispiel unterstützt die entsprechende Eigenschaft.
Leider unterstützen die Browser noch keine Stilregeln für die Angabe der Papiergröße und der Seitenränder wie@page{ size: 14.80cm 21.00cm; margin: 1.5cm; }
Lösung
Marginalien
Aufgabe
- Standard-Merkmale der Beispiele
- Oberkanten von Marginalie und zugehörigem Absatz fluchten
- Lange Marginalien brechen um
- Im Inhalt kommen verschiedene Elemente wie
p,ul,preetc. vor
Lösung
p.marginalie {
width: 12em;
float: left;
text-align: right;
margin: 0;
}
div {
margin: 0 0 0 14em;
}
<p class="marginalie">Marginalie</p>
<div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat.</p>
<ul>
<li>Lorem
<ul>
<li>ipsum</li>
</ul>
</li>
</ul>
<pre>Lorem ipsum dolor sit amet.</pre>
</div>
<p class="marginalie">Lange lange lange lange lange Marginalie</p>
<div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat.</p>
</div>
Das div um die Elemente mit Inhalt ist leider notwendig.
Ein Grund: ein Element wie pre wird typischerweise mit einer
Festbreitenschrift dargestellt. Die Größe für die Festbreitenschrift
kann der Nutzer in seinem Browser selbst einstellen. Verschiedene Schriftgrößen
für p und pre sind also möglich (und wahrscheinlich).
Eine Randangabe mit margin: 14em würde also verschiedene
Längen ergeben.
Da für eine geschmeidige Seite weder absolute Schriftgrößenangaben
noch eine Randangabe in einer absoluten Größe angemessen ist, bleibt
nur die Umhüllung mit einem div.
Stilvorlage für den Druck
Aufgabe
Keine (Farb)Tinte und kein Papier vergeuden.
Lösung
/*
Tinte sparen: schwarze Schrift, keine Hintergrundfarben
*/
* {
background: white;
color: black;
}
/*
Keine Raender, denn diese koennte der Nutzer nicht mehr in den
Druckeinstellungen des Browsers reduzieren.
*/
body {
margin: 0;
}
/*
Unterstrich gepunktet: ein durchgezogener Unterstrich hebt stark hervor.
Ein gepunkteter Unterschricht ist dezenter.
Warum lasse ich die Kennzeichnung von Hyperlinks für den Druck nicht ganz weg?
Ein Leser erfaehrt durch die Kennzeichnung, dass zu bestimmten
Begriffen/ Themen weiterfuehrende Informationen existieren. Wenn diese
ihn interessieren, kann er zu einem spaeteren Zeitpunkt die Webseite
aufrufen und den Verweisen folgen.
*/
a {
border-bottom-style: dotted;
border-bottom-width: 1px;
text-decoration: none;
}
/*
Kein Umbruch direkt hinter Ueberschriften.
Koennen zwar nicht alle Browser, aber so nuetzt die Regel immerhin
einigen Nutzern
*/
h2,
h3,
h4 {
page-break-after: avoid;
}
/*
Zeilenhoehe festlegen um die Lesbarkeit zu verbessern
*/
p,
li,
dd,
td,
th {
line-height: 1.45em;
}
/*
Blockzitate absetzen von Fliesstext
*/
blockquote p {
line-height: 1em;
font-size: 0.9em;
}
/*
Groessen der Ueberschriften
*/
h1 {
font-size: 2em;
font-weight: bold;
}
h2 {
font-size: 1.4em;
font-weight: bold;
}
h3 {
font-size: 1em;
font-weight: bold;
}
/*
Abstand zwischen Listenpunkten verbessert die Lesbarkeit, weil
so einzelne Listenpunkte leichter als Ganzes wahrgenommen werden koennen
*/
li,
dt,
dd {
margin-top: 0.3em;
}
/*
Bereiche ausblenden, die in der gedruckten Version nicht
nuetzlich sind
*/
.nav.
.news,
.header {
display: none;
}
/*
URL der Seite einblenden, damit der Nutzer jederzeit zur Quelle findet
*/
.url {
display: block;
}
Vermeiden von clear: both für
Elemente nach Floats
Aufgabe
Einem Bereich mit Floats folgt ein beliebiges Element, welches wieder im normalen Elementfluss dargestellt werden soll.
<div class="foo"> <p>Float</p> <p>Float</p> </div> <p>Erstes Element nach dem Bereich mit Floats</p>
Der Nachbarschafts-Selektor
div.foo + * {
clear: both;
}
wird jedoch nicht breit unterstützt.
Damit also das Element p wieder im normalen Elementfluss
dargestellt wird, müsste es mit der CSS-Eigenschaft clear: both versehen
werden. Nur mit einer Ergänzung im Markup, könnte das erste p nach
dem div class="foo" gezielt per CSS angesprochen werden.
Zum Beispiel:
p.foo {
clear: both;
}
. . .
<div class="foo">
<p>Float</p>
<p>Float</p>
</div>
<p class="foo">Erstes Element nach dem Bereich mit Floats</p>
Das Ergänzen des Codes mit class="foo" würde nur dem Gestalten
per CSS dienen:
es wäre ein Bruch des eleganten Prinzips der Trennung von Struktur
und Gestaltung.
Lösung
div.foo{
overflow: auto; /* Vermeidet "clear: both" für nachfolgende Elemente */
width: 100%; /* Redundantes Layout - nötig für IE */
}
div.foo p{
float: left;
margin: 1em;
border: 1px solid black;
}
Dreispalten-Layout
Aufgabe
- Standard-Merkmale der Beispiele
- Darstellung von drei Inhaltsbereichen in drei Spalten

- Darstellung eines Kopfbereiches, der sich über die gesamte Breite der drei Spalten erstreckt
- Darstellung eines Fussbereiches, der sich über die gesamte Breite der drei Spalten erstreckt
- die Spalten mit dem Bereich Navigation oder dem Bereich Nachrichten können umfangreicher sein (können mehr Höhe einnehmen) als der Bereich Inhalt
- alle Spalten besitzen die gleiche Höhe und können mit drei verschiedenen Hintergrundfarbe versehen werden
- die Hintergrundfarbe muss nicht auf einem Hintergrundbild beruhen
- der Inhalt jeder der drei Spalten kann linksbündig, zentriert oder rechtsbündig ausgerichtet werden
- keiner der drei Spalten muss eine vorgegebene Breite zugewiesen werden
- jeder der drei Spalten kann eine relative Breite in
emoder%zugewiesen werden - die Eigenschaft
max-widthfür den Bereich Inhalt kann eingesetzt werden, ohne dass auf Browsern, die diese Eigenschaft unterstützen, Nachteile entstehen. - bei großen Schriftgraden oder schmaleren
Fenstern kommt es niemals zur Überlagung von
Inhalten. Sobald die Inhalte nicht mehr in die Fensterbreite hineinpassen,
erscheint ein horizontaler Scrollbalken. Der Scrollbalken soll
so spät wie möglich erscheinen.
Bei der Beispielseite erscheint er bei einem 1024px breiten Fenster erst ab einem Schriftgrad von etwa 37px.
Lösung
Warum führe ich kein Beispiel mit einem CSS-3-DIV-Layout auf?
- in CSS existieren keine Eigenschaften für Spalten-Layouts
echte Eigenschaften für Spalten-Layouts werden erst mit CSS 3 eingeführt. - wenn die drei Inhalts-Bereiche mit
divausgezeichnet werden, kann daher ein Spalten-Layout nur nachgebildet werden - Die Eigenschaft
display: tablewird von IE nicht unterstützt - die Kompromisse, die für das Nachbilden nötig sind, ziehen
unübersichtliche und schwer zu pflegende Stilvorlagen nach sich.
Die Vorschläge für das genaue Vorgehen, die Dokumentation aller Widrigkeiten und sinnvolle Lösungsmöglichkeiten füllen Sietzende von Webtutorials.
Jede neue Browserversion (zuletzt IE7) erfordert neue Hacks und oftmals das Anpassen der alten.
Über Vorschläge zu eleganten Stilvorlagen freue ich mich und
füge sie gerne hier ein.
Die Beispieldatei mit
drei div steht dafür fertig bereit – noch ohne CSS.
Besonders Punkt 12 muss erfüllt werden.
Bis dahin empfehle ich für Dreispalten-Layouts die Verwendung einer
Tabelle mit drei Zellen.
Mozilla Standard-Stilvorlage
Fügen Sie resource:///res/html.css in die Adressleiste
ein.
Vorteile von UTF-8
Empfehlenswerter Artikel zum Thema von Björn Hoehrmann
Konstanten im Stylesheet: serverseitig
Empfehlenswerter Artikel zum Thema von Klaus Langenberg
Übersichtlicher Aufbau von Stylesheets
Empfehlenswerter Artikel zum Thema von Klaus Langenberg
CSS-Editoren: Besprechungen
Empfehlenswerter Artikel zum Thema von Klaus Langenberg
Augenerkrankungen und barrierearme Gestaltung
Empfehlenswerter Artikel zum Thema von Jens Meiert
Element am unteren Rand eines DIV ausrichten
Aufgabe
Eine Seite besitzt ein DIV, welches mehrere Kindelemente enthält. Das letzte Kind soll am unteren Rand des DIV ausgerichtet werden.
Lösung
div.foo {
position:relative;
height: 10em;
border: 1px solid black;
}
p.bar {
position:absolute;
bottom:0;
}
<div class="foo">
<p>Lorem</p>
<p class="bar">Ipsum</p>
</div>
Überlauf von Text in pre aus
der Box verhindern
Aufgabe
Wenn pre breiter ist als seine Elternelement, läuft es
darüber hinaus. Der überlaufende Teile erhält die Hintergrundfarbe des
Elternelementes.
body {
margin-left: 10%;
margin-right: 10%;
background: white; color: black;
}
pre {
background: yellow;
color: black;
}
<body>
<p>Ein kurzer Absatz in einem P-Element.</p>
<pre>Ein langer Absatz in einem PRE-Element. [. . .] in einem PRE-Element.</pre>
</body>
Was passiert hier?
Die Eigenschaft color setzt die Farbe der Zeichen und
der Rahmen. background setzt die Farbe des Hintergrundes
der Box, nicht der einzelnen Zeichen.
In dem Beispiel wird die Box nicht breiter als ihr Elternelement, hier body.
Für das Element pre wurde die Eigenschaft overflow nicht
gesetzt, daher steht sie auf ihrem Ausgangswert visible.
Siehe dazu die CSS2 Spezifikation: Überlauf
und Abschneiden.
Es sähe besser aus, wenn der überlaufende Teil seine eigenen Hintergrundfarbe behielte.
Lösung
pre {
display: table;
}
Automatische Nummerierung von Überschriften, Bildern und Tabellen
Aufgabe
- Standard-Merkmale der Beispiele
- Überschriften werden ab Ebene 2 im System 1.1.1 nummeriert
- Bilder und Tabellen werden fortlaufend nummeriert
- Verwendung der CSS-Eigenschaften
content,counter-incrementundcounter-reset - Opera interpretiert die verwendeten CSS-Eigenschaften - Firefox und Internet Explorer nicht
Lösung
Anwendungsdialog visualisieren
Aufgabe
Für eine Debatte über Usability soll eine Idee für einen Anwendungsdialog transportiert werden. Am anschaulichsten geht dies mit einer Skizze. Das Erstellen einer solchen Skizze in einer Grafikanwendung ist mühsam. Daher soll eine HTML-Vorlage erstellt werden.
Lösung
- Eingesetzt wurden die Elemente
form,table.anwendungsdialog,table,thead,tbody,tfoo,tr,td,td.ausgegraut,th,th.ausgegraut,fieldset,legend,input,input.aktiv,input.ausgegraut,input.selektiert,textarea,select,option - Nicht eingesetzt wurde
labelum den Code knapp zu halten. Ebenfalls nicht eingesetzt wurdecaption, weil es im Tabellen-Modell mit kollabierenden Rahmen, nicht in exakt der Breite dargestellt werden kann, wie die Tabelle. thwurde für diejenigen Felder eines Paares verwendet, welches rechtsbündig ausgerichtet werden soll.
Widrigkeiten
- In Anwendungen kann jeweils eine Schaltfläche eines Dialogs direkt
per Enter ausgelöst werden. Diese Schaltfläche ist mit Hilfe
der Rahmenlinien gekennzeichnet. Dies habe ich versucht mit CSS nachzubilden.
Leider rendert Opera beim Zuweisen irgeneiner Rahmeneigenschaft (
border-widthoderborder-style) auch einen anderen Hintergrund. Dadurch hebt sich die aktive Schaltfläche sehr unschön von den anderen ab. Das Einfärben aller Schaltflächen mit einer Hintergrundfarbe scheidet als Lösung aus: Schaltflächen von Datei-Upload-Feldern lassen sich überinputnicht erreichen. Eine Lösung kenne ich bisher nicht. - Der Rahmen von
fieldsetsteht im Browserstylesheet auf100%. Bisher ist es mir nicht gelungen,fieldsetbrowserübergreifend auf eine Gerade-genug-Größe zu bringen. - Opera rendert keinen Zeilenumbruch innerhalb von
valueininput. Abhilfe brächte die Verwendung vonbutton.
Links
URLs beim Drucken ausgeben
Wählen Sie die Druckvorschau in Ihrem Browser, um die Effekte im Beispieldokument zu betrachten.
Aufgabe
Es gibt diverse Verweistypen inmitten von Fließtext:
- Normaler externer Verweis mit sprechendem Verweistext
- Normaler externer Verweis mit URL als Verweistext (dieser Typ soll vermieden werden, muss aber möglich sein)
- Normaler interner Verweis mit sprechendem Verweistext auf einer andere Seite der Site
- Normaler interner Verweis mit sprechendem Verweistext
auf dieselbe Seite - Spezieller interner Verweis mit dem Verweistext
[1]auf eine Anmerkung am Ende derselben Seite - Spezieller interner Verweis mit dem Verweistext
[Luhmann 1982]auf einen Literaturbeleg am Ende derselben Seite
Folgende Hauptmerkmale sollen erfüllt werden:
- Beim Drucken aus dem Browser heraus sollen die URLs zu den Verweistypen 1, 3 und 4 am Ende des Textes als Liste ausgegeben werden. Dies erlaubt es dem Leser des gedruckten Textes, wenn es nötig wäre, dem Link durch manuelles Eingeben des URL zu folgen.
- Der Verweistext (der dann im gedruckten Dokument sichtbar wird) muss sich eindeutig von dem Verweistext für Anmerkungen oder Literaturbelege unterscheiden. Daher erhält er das Präfix
W.
Vielleicht gibt es bessere und dabei treffende und leicht verstehbare Kürzel?Link,Adresse,URL, ... - Bei dem Verweistyp 2 ist der URL bereits der Verweistext. Hier muss und darf also keine weitere Ausgabe der URLs erfolgen.
- Die Verweistypen 5 und 6 sprechen für sich. Für sie wird daher kein URL ausgegeben.
- Jeder Eintrag in einem Verzeichnis beginnt mit einer charakteristischen Zeichenfolge. Dieser "Eintragsbeginn" ist eine exakte Wiederholung des Verweistextes, es werden also auch die eckigen Klammern dort verwendet. Für eine mühelose Wiedererkennbarkeit.
- Verweistext und "Eintragsbeginn" sind per CSS-Selektor gestaltbar.
Weil Attributselektoren noch nicht breit unterstützt werden, erhält auch ein Verweistext, der prinzipiell per Attributselektor getroffen werden könnte, eine Klasse.
Nebenmerkmale, die nichts mit der spezifischen Aufgabe der Ausgabe von URLs zu tun haben:
- Die Verweistexte werden ohne Unterstrich ausgegeben.
- Weil hochgestellte Ziffern auf Webseiten schwer zu treffen sind, wird für Anmerkungsverweise
Lorem [2]und nichtLorem²verwendet. Dies wird auch für die Druckausgabe beibehalten, obwohl hochgestellte Ziffern in der Druckausgabe keine Nachteile hätten. Ähnlichkeit der Web- und Print-Ausgabe geht vor. - Vor den kurzen Verweisen
[1]und[W1]steht ein geschütztes Leerzeichen. Das geschützte Leerzeichen vor[W1]steht innerhalb desspandamit es zusammen mit dem Element ausgeblendet werden kann. - Die Einträge im Literaturverzeichnis stehen in alphabetischer Reihenfolge
- Jeder Verweis im Inhalt und jeder "Eintragsbeginn" in einem Verzeichnis wird in der Größe minimal verringert. So drängen sie sich weniger auf.
Lösung
Nachteil:
Wenn die Seite ohne CSS genutzt wird, stören redundante Informationen
auf dem Display.
Falls hier ein PHP-Programmierer mitliest, der dieses Konzept mit den Endnoten interessant findet, freue ich mich über eine Zusammenarbeit. Vielleicht lässt sich die skizzierte Ausgabe per PHP-Skript automatisieren.
Richtiges Vokabular
<a href="http://example.tld/page.html#part3">Linktext</a>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Verweis
^^^^^^^^ Quellanker
^^^^^^ Fragmentbezeichner
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Zielanker
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ URI
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Verweisziel
<h2 id="part3">
^^^^^ Zielanker
Externe Links per CSS mit einem kleinen Symbol kennzeichnen
Aufgabe
Auf einer Site werden für alle Verweise auf site-externe Dokumente absolute Pfade, für alle site-internen jedoch relative verwendet.
Per CSS soll diese Links mit einem Kennzeichen versehen werden und damit unterscheidbar sein.
Lösung
a[href^="http://"]:before {
content: "\2197\a0"
}
Der Selektor foo[bar^="zot"] validiert nicht gegen CSS
2.1, entspricht aber der CSS3 W3C Candidate Recommendation http://www.w3.org/TR/css3-selectors/
Kanonische Adressen
Empfehlenswerter Artikel zum Thema von Christoph Schneegans
Hover-Hintergrundfarbe über die volle Höhe eines Links – bei höherem Schriftgrad eines Inlineelementes
Ihnen fällt eine kürzere Überschrift ein? Bitte melden!;)
Aufgabe
Gehoverte Links werden mit einer Hintergrundfarbe gekennzeichnet. In
einer Sitemap sollen Schlagwörter durch einen höheren Schriftgrad hervorgehoben
werden. Beim Hovern sollen diese Schlagwörter in ihrer vollen Höhe überdeckt
werden.
Ein Blockdarstellung des Elementes a ist nicht erwünscht.
Die Hoverfarbe soll nur den Linktext hinterlegen die volle Breite eines
Blockelementes.
Lösung
body {
background: white;
color: black;
}
a {
font-size: 2em;
color: blue;
}
a:hover{
background : blue;
color: white;
}
span {
font-size: .5em;
}
<p><a . . .><span>Lorem </span><strong>ipsum</strong></a></p>
Es scheint keine saubere Lösung zu existieren: Falls jemand
eine ohne Layout-Markup, hier in Form von span,
kennt, freue ich mich über eine Nachricht.
Bildlink ohne Rahmen in Linkfarbe und ohne Farbe beim Hovern
Aufgabe
- Darstellung von Bildlinks ohne Rahmen in der Linkfarbe
- Wenn für gehoverte Links eine Hintergrundfarbe eingestellt ist, soll beim Hovern eines Bildlinks keine Hintergrundfarbe erscheinen
Lösung
a:link:hover {
background: rgb(251, 232, 57);
}
img {
vertical-align: bottom;
border: none;
}
<p>Bildlink: <a . . .><img . . . /></a></p>
<p>Textlink: <a . . .>Lorem</a></p>
Bilder
Bild skaliert mit Fensterbreite
Aufgabe
Bild skaliert abhängig von der Fensterbreite
div.skalierend {
width: 40%;
}
div.skalierend img{
width: 100%;
}
<div class="skalierend"><img src=". . ." /></div>
Lösung
Bilduntertitel maximal so breit wie Bild
Aufgabe
- Standard-Merkmale der Beispiele
- Bilder können verschieden groß sein
- Bild und Bilduntertitel stehen in einer gemeinsamen Box
- Bilduntertitel können beliebig lang sein – die Boxhöhe passt sich an
- Boxbreite entspricht der Breite des Bildes
- Angabe von
widthundheightfür das Bild
Zusatzaufgabe 1
Ohne Angabe für Breite der Box im HTML-Code - weder als Inline-Stilregel noch als Attribut
Lösung 1
table.bild-mit-untertitel {
width: 1px;
}
<p>. . .</p>
<table class="bild-mit-untertitel">
<tr><th><img . . . /></th></tr>
<tr><td>Bilduntertitel</td></tr>
<table>
<p>. . .</p>
div.bild-mit-untertitel img {
display: block;
}
<p>. . .</p>
<div class="bild-mit-untertitel" style="width: 100px;"><img . . . />Bilduntertitel</div>
<p>. . .</p>
Bild in Bildlink beim Hovern austauschen
Aufgabe
- Standard-Merkmale der Beispiele
- funktioniert z.B. in Opera 9 oder Firefox 2.0, nicht jedoch im Internet Explorer
- zeigt ohne CSS das normale Bild
- Verwendung des Attributselektors, daher keine Klassenattribute oder IDs im Markup notwendig
Lösung
##div a[href="/bilder/html/wiebke-1-tag-alt-600x600.jpg"] {
display: block;
overflow: hidden;
width: 150px;
height: 142px;
background-image: url(/bilder/html/wiebke-1-tag-alt-150x150-farbig.jpg);
}
div a[href="/bilder/html/wiebke-1-tag-alt-600x600.jpg"]:hover img {
margin-left: 150px;
}
<div><a href="/bilder/html/wiebke-1-tag-alt-600x600.jpg"><img src="/bilder/html/wiebke-1-tag-alt-150x150-schwarzweiss.jpg" width="150" height="142" alt="" /></a></div>#
Galerieübersicht skalierend – vier Varianten
Aufgabe
- Standard-Merkmale der Beispiele
- Bilder können unterschiedlich groß sein
- Gitter als Anordnung – alle Gitterfelder sind gleich groß
Was ist mit "Gitter" gemeint? Wie in einer Tabelle jede Zelle, ist auch jedes Gitterfeld einer Gitterspalte gleich breit bzw. jedes Gitterfeld einer Gitterzeile gleich hoch. Jedoch ist die Anzahl der Zellen in Tabellenzeilen fest. In einem Gitter nicht. Je schmaler das Fenster, desto weniger Gitterfelder werden pro Gitterzeile dargestellt.
Beispiel: Angenommen ein Gitter zeigt bei einer bestimmten Fensterbreite die Anordnung 4x3. Bei einem hinreichend schmaleren Fenster wird es zu einem 3x4-Gitter, bei noch schmalerem Fenster zu einem 2x6, bis hin zu einem 1x12.
Zusatzaufgabe 1
- ohne Untertitel
- Bilder sind links oben ausgerichtet
- zusammenfallende Rahmen sind mit CSS für
divnicht möglich - Feste Maße werden manuell (oder per Skript) für
divangegeben - alswidthundheightFür die Bestimmung des Maßes ist die größte Breite und die größte Höhe von allen vorkommenden Bildern ausschlaggebend
Lösung 1
Zusatzaufgabe 2
- ohne Untertitel
- Bilder sind horizontal und vertikal zentriert
- zusammenfallende Rahmen sind mit CSS für
divnicht möglich - Feste Maße werden manuell (oder per Skript) für
divangegeben - alswidth,heightundline-height. Für die Bestimmung des Maßes ist die größte Breite und die größte Höhe von allen vorkommenden Bildern ausschlaggebend - Vertikale Zentrierung funktioniert nicht im Internet Explorer
Lösung 2
Zusatzaufgabe 3
- Wie Variante 2, jedoch mit einzelligen Tabellen
- Vertikale Zentrierung funktioniert auch im Internet Explorer
Lösung 3
Zusatzaufgabe 4
- mit Untertitel
- Unterkanten der Bilder fluchten
- Oberkanten der Bilduntertitel fluchten
- Bilder und Bilduntertitel sind horizontal zentriert
- Länge des Bilduntertitels ist nicht beschränkt
Untertitel sind gegebenenfalls nicht in voller Länge sichtbar um das Rastermaß nicht zu sprengen - Feste Maße werden manuell (oder per Skript) für
thundtdangegeben - alswidthundheight. Für die Bestimmung des Maßes ist die größte Breite und die größte Höhe von allen vorkommenden Bildern ausschlaggebend
Lösung 4
Listen
Automatische Nummerierung von verschachtelten Listen – Typ '1.1.1'
Aufgabe
- Standard-Merkmale der Beispiele
- Alle Ebenen einer verschachtelten Liste werden im Typ '1.1.1' nummeriert
- Verwendung der CSS-Eigenschaften
content,counter-incrementundcounter-reset - Opera und Firefox interpretieren die verwendeten CSS-Eigenschaften - Internet Explorer dagegen nicht
Lösung
Relativ große Matroschkas – Schriftgrößen in verschachtelte Listen
Aufgabe
Hier geht es um die Gestaltung von verschachtelten Listen mit relativen Schriftgrößen, eben um Matroschkas
li der ersten Schachtelungsebene sollen z.B. doppelt so
groß dargestellt werden, wie die li der zweiten Schachtelungsebene.
Matroschkas der zweiten Ebene sollen dieselbe Größe haben wie P,
welches genau wie das äußere ul Kind von body ist.
Lösung
ul {
font-size: 2em;
}
ul ul {
font-size: 0.5em;
}
<body>
<p>Lauter Matroschkas</p>
<ul>
<li>Matroschka 1
<ul>
<li>Matroschka 2</li>
<li>Matroschka 2</li>
</ul>
</li>
<li>Matroschka 1
<ul>
<li>Matroschka 2</li>
<li>Matroschka 2</li>
</ul>
</li>
</ul>
</body>
Ich danke Christoph Päper, der einen nützlichen Beitrag zu diesem Thema gepostet hat.
font-size: 1em bedeutet: "die gleiche Schriftgröße erzeugen,
wie beim jeweils übergeordnetem (Eltern)Element, also html, body bzw. ul." Siehe
auch die Definition in
der CSS2-Spezifikation.
Nehmen wir an, der Benutzer hätte in seinem Browser eine Schriftgröße von 12,1 Pixel voreingestellt.
Es können am Bildschirm nur ganze Pixel dargestellt werden:
| Angegebene, berechnete und angezeigte Werte | |||||||
|---|---|---|---|---|---|---|---|
| Angegeben (specified) |
Berechnet (computed) |
Angezeigt (~actual) |
Angegeben (specified) |
Berechnet (computed) |
Angezeigt (~actual) |
||
html |
n/a | 12.1px | n/a | html |
n/a | 12.1px | n/a |
body |
n/a | 12.1px | 12px | body |
n/a | 12.1px | 12px |
p |
n/a | 12.1px | 12px | p |
n/a | 12.1px | 12px |
ul |
2em | 24.2px | 24px | ul |
2em | 24.2px | 24px |
li |
n/a | 24.2px | 24px | li |
n/a | 24.2px | 24px |
ul |
1em | 24.2px | 24px | ul |
0.5em | 12.1px | 12px |
li |
n/a | 24.2px | 24px | li |
n/a | 12.1px | 12px |
Listen: Abstände und Polsterung
Mit Hilfe dieses Testdokumentes können
Sie sich leicht einen Überlick verschaffen, welche Änderung von margin oder padding in
welchem Browser zu welcher Darstellung führt.
Ersten Teil eines Listenpunktes gestalten – bei schlankem Markup
Aufgabe
Ein Listenpunkt enthält mehr als einen Teil. Der erste soll sich von den nachfolgenden unterscheiden.
Lösung
li {
font-weight: bold;
}
li p {
font-weight: normal;
margin: 0;
}
<ul>
<li>Erster Teil
<p>Weiterer Text</p>
</li>
<li>Erster Teil
<p>Weiterer Text</p>
</li>
</ul>
Navigation
Vertikale Navigation
Aufgabe
- Standard-Merkmale der Beispiele
- zwei Ebenen
- alle Ebenen sind sind "ausgeklappt"
- keine
divoderspan - aktiver Punkt
- ohne
a - mit
strong - mit anderer Hintergrundfarbe
- ohne
emfür jeden Ast des aktiven Punktes
Zusatzaufgabe 1
- erste Ebene ist nie ein Verweis
- Hintergrundfarbe für aktiven Punkt reicht über ganze Breite
- keine Einrückung
- gleiche Hintergrundfarben für die beide Ebenen
- klickbare Fläche über ganze Breite
Lösung 1
.nav {
width: 11em;
font-weight: bold;
}
.nav * {
display: block;
}
.nav ul ul {
font-weight: normal;
padding: 0;
}
.nav ul {
list-style: none;
margin: 0;
padding: 0.2em;
line-height: 1.45em;
background: rgb(252, 254, 226);
}
.nav ul ul li {
background: rgb(254, 216, 137);
}
.nav a {
text-decoration: none;
background: rgb(252, 254, 226);
}
.nav a:hover {
background: rgb(254, 216, 137);
}
.nav strong {
font-weight: normal;
}
<div class="nav">
<ul>
<li>Lorem
<ul>
<li><a href="#a">Ipsum</a></li>
<li><a href="#b">Dolor sit</a></li>
</ul>
</li>
<li><em>Consectetur</em>
<ul>
<li><strong>Adipisicing</strong></li>
<li><a href="#c">Elit sed</a></li>
<li><a href="#d">Eiusmod tempor</a></li>
</ul>
</li>
<li>Ut labore
<ul>
<li><a href="#e">Et dolore</a></li>
<li><a href="#f">Magna aliqua</a></li>
<li><a href="#g">Ut enim</a></li>
<li><a href="#h">Ad minim</a></li>
<li><a href="#i">Veniam quis</a></li>
</ul>
</li>
<li>Exercitation
<ul>
<li><a href="#j">Ullamco</a></li>
<li><a href="#k">Laboris nisi</a></li>
<li><a href="#l">Nisi ut</a></li>
<li><a href="#m">Aliquip ex ea</a></li>
</ul>
</li>
</ul>
</div>
Zusatzaufgabe 2
- erste Ebene ist manchmal Verweis
Verweise in erster Ebene führen direkt zu einer Seite und öffnen nicht wiederum eine Übersicht.
Nicht-Verweise in erster Ebene enthalten immer eine zweite Ebene. - aktiver Punkt mit
li class="aktiv" - in zweiter Ebene können nur Verweise vorkommen, keine Nicht-Verweise
- zweite Ebene eingerückt, keine weitere Hervorhebung für erste Ebene
- blaue Farbe für Verweise, schwarz für Nicht-Verweise
Lösung 2
.nav {
width: 14em;
line-height: 1.45em;
}
.nav ul {
margin: 0;
padding: 0 0.2em 0 0.2em;
background: rgb(252, 254, 226);
list-style: none;
}
.nav ul ul {
padding: 0 0 0 1em;
}
.nav .aktiv {
background: rgb(254, 216, 137);
}
.nav a {
border-bottom-style: dotted;
border-bottom-width: 1px;
text-decoration: none;
}
.nav a:hover {
border-bottom: none;
background: rgb(254, 216, 137);
}
.nav strong {
font-weight: normal;
}
<div class="nav">
<ul>
<li>Lorem
<ul>
<li><a href="#a">Ipsum</a></li>
<li><a href="#b">Dolor sit</a></li>
</ul>
</li>
<li><em>Consectetur</em>
<ul>
<li class="aktiv"><strong>Adipisicing</strong></li>
<li><a href="#c">Elit sed</a></li>
<li><a href="#d">Eiusmod tempor</a></li>
</ul>
</li>
<li><a href="#e">Incididunt</a></li>
<li>Ut labore
<ul>
<li><a href="#f">Et dolore</a></li>
<li><a href="#g">Magna aliqua</a></li>
<li><a href="#h">Ut enim</a></li>
<li><a href="#i">Ad minim</a></li>
<li><a href="#j">Veniam quis</a></li>
</ul>
</li>
<li><a href="#k">Nostrud</a></li>
<li>Exercitation
<ul>
<li><a href="#l">Ullamco</a></li>
<li><a href="#m">Laboris nisi</a></li>
<li><a href="#n">Nisi ut</a></li>
<li><a href="#o">Aliquip ex ea</a></li>
</ul>
</li>
</ul>
</div>
Ein einziger Navigationsbereich versus mehrere
Aufgabe
Bei vielen Sites kommen Navigationslinks nicht nur in einem, sondern in mehreren Bereichen vor. Sehr typisch ist z.B. das Platzieren von Links wie "Startseite", "Kontakt", "Seitenübersicht", "Neu auf der Site" im Kopf.
Das gemeinsame Merkmal dieser Linkgruppe: sie sind auf ziemlich jeder Site nützlich (siteunabhängig) und sie sind es auch auf jeder Seite einer Site (seitenunabhängig).
Die zweite Gruppe von Links, diejenigen, die vom Typ und Inhalt der Site abhängen (siteabhängig), wird oft in einer vertikalen Leiste dargestellt.
Eine dritte Gruppe von Links erwähne ich der Vollständigkeit halber, sie soll uns jedoch hier nicht weiter beschäftigen: Links, die vom Inhalt der aktuellen Seite abhängen, also ein Inhaltsverzeichnis für die Überschriften der aktuellen Seite (seitenabhängig).
Da Sites sich stark in ihrem Umfang unterscheiden und der Umfang selbstverständlich bei der Gestaltung der Navigation als Faktor einfließt, grenze ich die Rahmenbedingungen für das Beispiel ein:
- Es gibt maximal zwei Ebenen in der vertikalen Leiste
- Auf der Startseite ist nur die erste Ebene sichtbar
- Auf Seiten die zu Links der Ebene 2 gehören, ist nur eine einzige Teilliste der Ebene 2 sichtbar: diejenige, die zur Orientierung nötig ist. (Wären alle Teillisten "ausgefaltet", hätte man die Sitemap)
- Anzahl der Links der Ebene 1: bis zu 15
- Anzahl der Links der Ebene 2: bis zu 30 (Eine Sitemap bestünde also aus bis zu 45 Listenpunkten)
- Die Anzahl der Links in einer Teilliste der Ebene 2 sollte nicht größer sein als ca. 7. Droht sie größer zu werden, sollte der Autor eine neue Gruppe auf Ebene 1 anlegen.
Wie verändert sich nun die Gebrauchstauglichkeit, wenn die Links aus Gruppe 1 und 2, also die siteunabhängigen und die siteabhängigen in einem einzigen Navigationsbereich liegen, wenn also entweder alle Links aus dem Kopf entfernt werden oder der Kopf gleich ganz rausgenommen wird?
Mir sind leider keine Usability-Fakten bekannt, die belegen, dass Nutzer bestimmte Typen von Navigationslinks vor allem im Kopf erwarten und sie diese Typen von Links daher schlechter finden, wenn sie in einer zentralen Navigationsleiste auftauchen, wo sich sämtliche Links befinden.
Falls jemand zu diesem konkreten Thema Usability-Fakten kennt, freue ich mich über Hinweise
Lösung
Typographie
Typographie für Webautoren
Empfehlenswerter Artikel zum Thema von Christoph Päper
Halbbreites geschütztes Leerzeichen
Aufgabe
Ein halbbreites geschütztes Leerzeichen   wird
kaum unterstützt. Das halbbreite ungeschützte Leerzeichen   wird
zwar breiter unterstützt, bietet aber keinen Trennschutz.
Lösung
.masszahl-einheit {
word-spacing: -0.5ex;
white-space: nowrap;
}
<span class="masszahl-einheit">130 mg</span>
Mir selber schmeckt das Hinzufügen solchen Markups für einzelne Wert-Einheite-Paare nicht. Ich verzichte darauf.
Geschützter Bindestrich
Das dafür vorgesehene Zeichen ‑ wird leider
nicht breit unterstützt. Folgende Abhilfe ist möglich:
.komposita {
white-space: nowrap;
}
Frau <span class="komposita">Däubler-Gmelin</span>
Mir selber schmeckt solches zusätzliches Markup nicht. Ich verzichte darauf.
Trennstrich (weicher/bedingter Trennstrich)
Browser können bisher keine automatischen Trennungen vornehmen. Bei
langen Wörtern könnte man Sollbruchstellen einfügen.
Das dafür vorgesehene Zeichen ­ wird leider nicht
breit unterstützt. Manche Browser zeigen den Strich immer an.
Eine akzeptable Lösung, eine Abhilfe, frei von Nebenwirkungen, ist mir nicht bekannt.
Zitate
Zitatblock – mit Quellenverweis
Aufgabe
- Standard-Merkmale der Beispiele
- Die Quellenangabe folgt dem Schema
Autor, Jahr: Seitenzahl
Zahlen (bei Fußnoten oder Endnoten) aus ein bis drei Ziffern als Linktext betrachte ich als eine Barriere. Die klickbare Fläche ist sehr klein. - Typischerweise werden Zitatblöcke leicht eingerückt, mit geringer Zeilenhöhe und geringer Schriftgröße gesetzt. Das Beispiel ist ebenso gestaltet.
Lösung
Eingebettetes Zitat – mit Quellenverweis
Aufgabe
- Standard-Merkmale der Beispiele
- Die Quellenangabe folgt dem Schema
Autor, Jahr: SeitenzahlZahlen (bei Fußnoten oder Endnoten) aus ein bis drei Ziffern als Linktext betrachte ich als eine Barriere. Die klickbare Fläche ist sehr klein.
Lösung
Zitat aus Webseite – mit Quellenverweis
Aufgabe
- Standard-Merkmale der Beispiele
- Die Quellenangabe folgt dem Schema
Autor, Jahr
Zahlen (bei Fußnoten oder Endnoten) aus ein bis drei Ziffern als Linktext betrachte ich als eine Barriere. Die klickbare Fläche ist sehr klein.
Falls das Erscheinungsjahr des zitierten Textes bekannt ist, wird diese Zahl im AusdruckAutor, Jahrbenutzt. Ansonsten wird als Jahreszahl diejenige vom Erstellen des Bildschirmfotos gewählt. - Das Attribut
citewird nicht eingesetzt. Siehe dazu auch. - Es wird bewußt auf das siteinterne Literaturverzeichnis und nicht
auf die externe Webseite mit dem Original verwiesen. Warum?
Der Zitierende hat keinen Einfluss auf die Verfügbarkeit der Webseite mit dem Original. Die Webseite kann vom Netz genommen werden, der URL oder der Inhalt kann sich verändern.
Da Belegbarkeit von Quellen in wissenschaftlichen Arbeiten eine große Bedeutung zukommt, wird als Kompromiss ein Bildschirmfoto des zitierten Textes – als Ausschnitt aus der aus der Seite mit der Quelle – zusammen mit dem Datum vorgehalten.
Lösung
Literaturverzeichnis nach DIN 1505
Informationen zu anderen bibliographischen Stilen:
Überblick
Aufgabe
- Standard-Merkmale der Beispiele
- Verwendung des Systems
Autor Jahr.
Zahlen (bei Fußnoten oder Endnoten) aus ein bis drei Ziffern als Linktext betrachte ich als eine Barriere. Die klickbare Fläche ist sehr klein. - Warum überhaupt ein zentrales Literaturverzeichnis, statt Fußnoten
am Ende jedes Dokumentes?
- Die zentrale Bereitstellung der bibliographischen Daten auf einer einzigen Seite ermöglicht eine leichtere Pflege als beim System 'Fußnote', wo die Daten auf jeder Seite bereitgestellt werden – falls die Quelle mehrfach zitiert wird, sogar mehrfach. Eine unschöne Redundanz.
- In einem Buch leuchtet der Vorteil von Fußnoten ein: das Zurückblättern ans Ende des Buches bereitet mehr Mühe, als das Wechseln des Auges an den unteren Blattrand. Auf einer Webseite dagegen gelingt das Navigieren zu den bibliografischen Daten mühelos.
- Orientierung an der DIN, siehe:
Das Literaturverzeichnis in wissenschaftlichen Arbeiten (PDF) – Erstellung bibliographischer Belege nach DIN 1505 Teil 2 von Klaus F. Lorenzen - Die Auszeichnung und die Art des Eintrags mit einer Webseite als
Quelle folgt keiner Norm. Sie ist ein Vorschlag. Ich bitte um Kritik
dazu.Hier wurden folgende Teile aufgeführt:
Autor, Vorname: Titel der Webseite. URL – Domaininhaber: Name des Domaininhabers, Stadt – Erstellt am – Zuletzt geändert am: … – Bildschirmfoto vom …
Lösung
Hilfsmittel
XHTML validieren: komplette lokale Verzeichnisse in einem Rutsch
Der Validator des W3C weist diverse technische Mängel auf. Christoph Schneegans stelllt kostenlos für die Prüfung der Validität von XHTML-Dokumenten ein hochwertiges Werkzeug bereit: http://schneegans.de/sv/
In dessen Formular lassen sich sowohl einzelne URLs als auch Code (aus der Zwischenablage) direkt eingeben.
Allerdings gibt es keine Möglichkeit ein komplettes lokales Verzeichnis zur Prüfung an den Online-Validator zu übergeben.
Christophs Validator steht jedoch auch für den lokalen Gebrauch (offline) zur Verfügung (Windows). Er muss nicht installiert werden und erwartet Eingaben auf der Kommandozeile.
Vorbereitung für die Nutzung:
- Anwendung herunterladen, zum bequemen Arbeiten in einem Unterordner des Standard-Programm-Verzeichnisses
speichern, z.B. nach
c:\Programme\SchemaValidator\und dann dort entpacken. - Eingabeaufforderung starten:
Startmenü > Programme > Zubehör > Eingabeaufforderung
Validierung einer einzelnen Datei, z.B. d:\borumat.de\index.html:
schemavalidator /file:"d:\borumat.de\index.html"
Pfad (hervorgehoben) entprechend anpassenEnter
Validierung aller HTML-Dateien eines Verzeichnisses, auch wenn sie in Unterverzeichnissen liegen,
z.B. d:\borumat.de\:
for /R "d:\borumat.de\" %f in (*.html) do schemavalidator /file:"%f"
Pfad (hervorgehoben) entprechend anpassen.
Falls weitere Dateitypen geprüft werden sollen, z.B.*.phpwird ein entsprechender Filter innerhalb der runden Klammern - per Leerzeichen getrennt - angehängt:(*.html *.php)Enter
Linkverfügbarkeit prüfen mit Xenu
Für Nutzer ist es eine besonders schwerwiegende Enttäuschung, wenn Links ins Leere laufen oder zur Anzeige von Fehlerseiten führen.
Tilman Hausherr offeriert kostenlos ein leicht zu bedienendes und sehr schnelles Werkzeug zur Überprüfung der Verfügbarkeit von Links: Xenu
Schnellstart-Anleitung:
- Installieren Sie Xenu
- Öffnen Sie Ihre Internetverbindung
- Starten Sie Xenu
Options > Preferences > Schieberegler auf 100 Threads schiebenDatei > Check URL- Nun gibt es zwei interessante Möglichkeiten:
- Prüfen aller Links einer ganzen Site
- Geben Sie die Startseite der Site im oberen Feld ein, z.B.
http://deine-domain.de - Wählen Sie
Button: More Options > Feld: Level > 999 > OKDies bewirkt, dass nicht nur die Links auf der Startseite, sondern auch die Links aller Unterseiten geprüft werden
Button: OK
- Geben Sie die Startseite der Site im oberen Feld ein, z.B.
- Prüfen aller Links einer einzelnen Seite
- Geben Sie den URL einer einzelnen Seite im oberen Feld ein, z.B.
http://deine-domain.de/page.html - Wählen Sie
Button: More Options > Feld: Level > 1 > OKDies bewirkt, dass nur die Links auf der Seite
page.htmlgeprüft werden Button: OK
- Geben Sie den URL einer einzelnen Seite im oberen Feld ein, z.B.
- Prüfen aller Links einer ganzen Site
Xenu speichert diese Einstellung automatisch. Wenn Sie das nächste
Mal die Startseite oder die Einzelseite in dem Auswahlfeld bei Check
URL auswählen, ist der Level voreingestellt, der bei der letzten
Prüfung verwendet wurde.
Ebenso werden die Listen mit Verweisen gespeichert (genauer: einem
zu checkenden URL zugeordet), die Sie in Datei > Check URL > Feld: Do
not check any URLs beginning with this von der Überprüfung ausschließen
können.
Bekannte Fehler:
- Verweise mit Fragmentbezeichnern,
href="/deine-domain.de/page.html#zielanker" <h1 id="zielanker">. . .
deren Zielanker einidist, kann Xenu nicht interpretieren. Es bewertet diese Verweise als fehlerhaft. - Bei Dokumenten, die die Kodierung
UTF-8verwenden, kann Xenu die Linktexte nicht korrekt wiedergeben. Umlaute etc. werden falsch dargestellt - Verweise zu diversen Domains (u. a. wikipedia.org, mozilla.org, werden fälschlicherweise als kaputt bewertet. Die Ursache liegt jedoch nicht bei Xenu. Näheres in der FAQ zu Xenu (Punkt 20).
Favicon aus Bildvorlage erzeugen - mit Online-Werkzeug
Beim Anbieter FavIcon from Pics kann aus einem beliebigen Bild in beliebiger Größe schnell und schmerzlos ein Favicon erzeugt werden. Der Dienst ist kostenlos.
Bildschirmfoto erstellen und hochladen mit einem Tastendruck
Sie erstellen öfter Bildschirmfotos?
Sie laden diese dann auf Ihren Webserver hoch und möchten danach die
URL z.B. in einen Diskussionsbeitrag oder eine Mail einfügen?
Die Anzahl der Arbeitschritte ist Ihnen zu groß und das Ganze benötigt
zu viel Zeit?
Mit Hilfe der kostenlosen Anwendung Hardcopy von Siegfried Weckmann genügt ein einziger Tastendruck um folgende Aufgaben auszuführen.
- Erstellen eines Bildschirmfotos des Fensters im Vordergrund
- Speichern des Bildschirmfotos auf der lokalen Festplatte in einem bestimmten Format und in einem bestimmten Verzeichnis
- Hochladen des Bildschirmfotos in ein bestimmtes Verzeichnis auf dem Webserver
- Kopieren der URL in die Zwischenablage
Ich danke dem Autor der Anwendung, der diese Funktionalität auf meine Anregung hin ergänzt hat.
Umsetzung:
- Download von Hardcopy in der vollständigen Version
- Speichern Sie das folgende Skript per
Rechtsklick > Speichern unter:
FilenameToClipboard.bas (Der Autor des Skriptes ist Wilfried Weckmann)
Wer sich den Inhalt des Skriptes ansehen möchte: das Skript ist eine normale Textdatei - Installieren Sie Hardcopy (ist selbsterklärend)
Einstellungen > Optionen > Reiterkarte: FTPFüllen Sie dort alle Felder aus
Einstellungen > Funktionen > Druck > (x)Fenster > Weiter
Tragen Sie im FeldDateinameden von Ihnen gewünschten Pfad ein. Das:#im Dateinamen ist eine Variable. Hardcopy erzeugt laufende Nummern. Beispiel für einen Dateinamen:hc-0005.png.
Wählen Sie im FeldFormatdas von Dir gewünschte Format.Weiter > [x]BasicSript(Ende)- Wählen Sie das Skript
FilenameToClipboard.basaus - Öffnen Sie
FilenameToClipboard.basin einem Texteditor und ersetzen Siehttp://meine-domain.de/bildschirmfotos/durch den Anfang Ihrer URL - Testen Sie, ob alles funktioniert. Betätigen Sie auf Ihrer Tastatur
die Taste Druck.
Ein kleines Fenster wird kurz eingeblendet, wo das Hochladen gemeldet wird. Fügen Sie jetzt im Adressfeld Ihres Browsers den Inhalt der Zwischenablage ein.
Die vollständige URL müsste erscheinen.
Hardcopy bietet eine Vielzahl weiterer interessanter Optionen.
Blindtextgenerator – 'Lorem ipsum …'
Entwürfe werden plastischer, wenn sie blinden Text erhalten. Der Blindtextgenerator auf http://lipsum.com/ erleichtert das Erzeugen solcher Texte. Die gewünschte Größe kann in Worten, Zeichen, Absätzen oder Kilobytes angegeben werden.
Wer den Browser Firefox nutzt, kann ein sog. Schlüsselwort-Such-Lesezeichen anlegen um das Erzeugen von Blindtexten noch bequemer zu gestalten.
| Bitte lesen | Schlüsselwort-Such-Lesezeichen |
|---|---|
Rechtsklick > Lesezeichen für diesen Link hinzufügen |
LI: Blindtext Generator |
| Vorschlag für Schlüsselwort | li |
| Javascriptaktivierung nötig | Nein |
| Gesucht wird auf | http://lipsum.com |
| Kommentar | li 12 gibt eine Seite mit 12 Absätzen mit Blindtext
aus. |
XHTML-Code in Wiki-Dialekt konvertieren
http://toolserver.org/~diberri/cgi-bin/html2wiki/
Mögliche Dialekte für die Ausgabe: DokuWiki, MediaWiki, Kwiki, MoinMoin, PbWiki, PhpWiki, PmWiki, SnipSnap, UseMod, WakkaWiki, WikkaWiki
MediaWiki-Dialekt in XHTML konvertieren
Weitere mögliche Ausgabeformate sind: XML, DocBook XML, OpenOffice XML, OpenOffice ODT
Word-Dokument in HTML-Dokument umwandeln
Sie möchten ein mit Formatvorlagen strukturiertes Word-Dokument in ein HTML-Dokument mit umwandeln? Die Struktur soll dabei sinnvoll übertragen werden, ohne überflüssigen Ballast?
- Installation von OpenOffice.org
- Installation des Plugins Writer2XHTML
- Öffnen des Word-Dokumentes in OOo
Datei > Exportieren > Speichern als: XHTML- Konfiguration mit Hilfe des Dialoges
- Falls die Möglichkeiten der Konfiguration nicht weit genug reichen:
Zusätzliche Konfiguration des Plugins mit Hilfe der Konfigurationsdatei
writer2xhtml.xmlin einem Texteditor. Pfad zu dieser Datei auf Windows XP:C:\Dokumente und Einstellungen\[Nutzername]\Anwendungsdaten\OpenOffice.org\3\user\writer2xhtml.xmlAuf anderen Plattformen den entsprechenden Pfad für Anwendungsdaten suchen.
Es gibt ein vorbereitete Konfigurationsdatei cleanxhtml.xml mit besonders strikten, puristischen Einstellungen. Wer diese verwenden möchte, lädt sich diese Datei herunter, kopiert ihren Inhalt und überschreibt den Inhalt vonwriter2xhtml.xml
Die Konfigurationsdateiwriter2xhtml.xmlist gut dokumentiert (PDF).
HTML-Tidy auf ganze Verzeichnisse anwenden
Empfehlenswerter Artikel zum Thema
.htaccess
Zugangsschutz für ein Verzeichnis einrichten
- Legen Sie eine TXT-Datei mit dem Namen
.htaccessim zu schützenden Verzeichnis an - Kopieren Sie folgenden Code in die Datei. Dabei sind Zeilen, die
mit
#beginnen, reine Kommentare. Fügen Sie Ihre Daten in den Code ein.
Den sog.Document Rooterfähren Sie von Ihrem Provider# Verzeichnis schützen AuthType Basic # Beliebigen Namen angeben. Dieser wird im Dialogfeld angezeigt. AuthName "Dein Name für den Bereich" # Zu schützendes Verzeichnis angeben # AuthUserFile [Document Root][zu schützendes Verzeichnis]/.htpasswd AuthUserFile /www/dein-domain.de/htdocs/dein-verzeichnis/.htpasswd # Benutzernamen angeben # require user [Benutzername] require user ernie
- Legen Sie eine TXT-Datei mit dem Namen
.htpasswdim zu schützenden Verzeichnis an - Erzeugen Sie ein sogenanntes "Crypt", z.B. mit Hilfe eines Passwortgenerators http://ihre-webhosting-domain.de/php/md5enc.php
- Geben Sie dort Ihr gewünschtes Passwort, z.B.
lustig, ein und Sie erhalten eine Zeichenkette (Crypt), die z.B. so aussieht:
$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0 - Fügen Sie eine einzige Zeile in
.htpasswdein:
ernie:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0
Also: Benutzername, gefolgt von einem Doppelpunkt und dem Crypt. - Laden Sie beide Dateien
.htaccessund.htpasswdim sog. ASCII-Modus in das entsprechende Verzeichnis hoch. Meistens geschieht dies durch die FTP-Anwendung automatisch. - Wenn Sie mehrere Nutzer erlauben möchten, fügen Sie einfach weitere
Zeilen, wie z.B.
require user bertan das Ende der
.htaccessein.
Wennbertdasselbe Passwort wiekermiterhalten soll, fügen Sie
bert:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0
in.htpasswdein:
ernie:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0
bert:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0
Also: den zweiten Benutzernamen, gefolgt von einem Doppelpunkt und dem gleichen Crypt - Wenn jeder Nutzer ein eigenenes Passwort (bert z.B. das Passwort
ernst) erhalten soll, erzeugen Sie für jeden Nutzer ein eigenes Crypt und fügen Sie es wie zuvor beschrieben in.htpasswdein:
ernie:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0
bert:$1$WxuqExGq$/YdlXg9UA85tVr.ydy.XV1Beide Crypts sind hier verschieden.
Kurz-URLs ohne Dateiendungen
Fügen Sie eine Zeile mit Options +MultiViews ein.
Nicht alle Provider unterstützen dieses Merkmal.
Ein Verweis wie z.B. http://deine-domain.tld/page wird
dann automatisch auf das erste passende Ziel gelenkt, welches mit dieser
Angabe beginnt.
Wenn also http://deine-domain.tld/page.html existiert,
wird dieses Ziel verwendet.
Falls http://deine-domain.tld/page.php stattdessen existiert,
wird es zum Ziel.
In der Adressleiste des Browsers bleibt der Kurz-URL sichtbar.
Normalisierung von zurückgegebenen Links (Kanonizität)
Manchmal wird mit nicht-kanonischen Links auf Ihre Seiten verwiesen.
Mit einigen Anweisungen können sämtliche Varianten normalisiert zurückgegeben
werden. 301 Moved Permanently wird als Statuscode ausgegeben.
| Anfrage | Rückgabe |
|---|---|
| Normale Dateien | |
http://deine-domain.de/foo.php |
http://deine-domain.de/foo |
http://deine-domain.de/bar/foo.php |
http://deine-domain.de/bar/foo |
http://deine-domain.de/bar/foo.html |
http://deine-domain.de/bar/foo |
http://deine-domain.de/bar/foo.php?a=zot |
http://deine-domain.de/bar/foo?a=zot |
| Directory Index | |
http://deine-domain.de/index.php |
http://deine-domain.de/ |
http://deine-domain.de/bar/index.php |
http://deine-domain.de/bar/ |
http://deine-domain.de/bar/index.html |
http://deine-domain.de/bar/ |
http://deine-domain.de/bar/index.php?a=zot |
http://deine-domain.de/bar/?a=zot |
| "www." | |
http://www.deine-domain.de/foo.php |
http://deine-domain.de/foo |
Fügen Sie dafür folgende Anweisungen in .htaccess ein
und ersetzen Sie im ersten Anweisungsblock die Zeichenfolgen deine-domain und de durch
ihre eigene Domain und Topleveldomain:
# Weiterleitung 301 von http://www.deine-domain.de/* auf http://deine-domain.de/*
RewriteCond %{HTTP_HOST} ^www.deine-domain\.de$ [NC]
RewriteRule ^(.*) http://deine-domain.de/$1 [NC,R=301]
# Weiterleitung 301 */index.php auf */
RewriteCond %{THE_REQUEST} index\.(php|htm|html) [NC]
RewriteRule (.*)index\.(php|htm|html) /$1 [NC,R=301]
# Weiterleitung 301 */foo.php auf */foo
RewriteCond %{THE_REQUEST} (.*)\.(php|htm|html) [NC]
RewriteRule (.*).(php|htm|html) /$1 [NC,R=301]
Danke an Daniel Müller für die Hilfe bei der Erstellung der Anweisungen.
Zur Gewährleistung von kanonischen Links beim Ausliefern existiert ein PHP-Skript. Vielleicht ist dies ebenfalls interessant für Sie?
Checklisten – Spezifikationen – Einführungen
Spezifikationen
- W3C – Spezifikation für HTML 4
- W3C – Spezifikation für XHTML 1
- W3C – Spezifikation für CSS 2
- W3C – Spezifikation für CSS 2.1 (englischsprachig)
- W3C – CSS 3 Selectors (englischsprachig) – Vorstufe für eine Spezifikation für CSS 3, welche der aktuellen Spezifikation zu CSS 2 folgen wird
Unterstützung der Standards durch Browser
Verfügbar sind Daten zu den Browsern: IE 4, 5, 5.5, 6, 7; Firefox 1.0, 1.5, 2.0; Opera 8.5, 9; Konqueror 3.5; Safari 2.0
Einführungen
- Einführung in
HTML und CSS – von Michael Jendryschik
Prägant, gut verständlich, sehr empfehlenswert - SELFHTML – umfangreiche Einführung in HTML und CSS, auch als Nachschlagewerk
- CSS4you – Einführung in HTML und CSS, auch als Nachschlagewerk
Guter Standard – Designprinzipien des W3C
What is a good standard? An essay on W3C's design principles from Bert Bos. Übersetzung des Teils Readability ins Deutsche von Michael Jendryschik.
CSS-Bücher: Besprechungen
Empfehlenswerter Artikel zum Thema von Klaus Langenberg
Es werden englischsprachige und deutschsprachige Bücher besprochen
Checklisten zur Webseitengestaltung
- Checkliste von den Teilnehmern der Newsgroup zum Webauthoring – de.comm.infosystems.www.authoring.misc
- Kriterien zum BIENE-Award
Danksagungen
Ich danke den Teilnehmern des Usenet-Diskussionforums de.comm.infosystems.www.authoring.misc und des Webforums http://xhtmlforum.de für ihre Hinweise und Anregungen.