Schwerpunkt dieser Seite sind überschaubare, konkrete Aufgaben und Lösungen dazu: in validem XHTML plus CSS. Barrierearmut wird angestrebt.
clear: both für
Elemente nach Floats
pre aus
der Box verhindern
div und spandl.literaturverzeichnis dt strong{ } statt strong{ } damit
es einfacher ist, die Stilvorlagen nachzuvollziehenZwei lesenswerte Artikel zum Thema:
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.
sup transportiert keine Semantik. Daher
gebe ich dem Markupmuster<a id="fnz3" class="fnz" href="#fn3">3</a><sup id="fnz3" class="fnz"><a href="#fn3">3</a></sup>height:
1px wird nicht interpretiert)Verwendung von div
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.
Verwendung von table
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.
Empfehlenswerter Artikel zum Thema von Michael Jendryschik
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.
Empfehlenswerter Artikel zum Thema von Jens Meiert
@page{ size: 14.80cm
21.00cm; margin: 1.5cm; }p, ul, pre etc.
vor
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.
Keine (Farb)Tinte und kein Papier vergeuden.
/*
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;
}
clear: both für
Elemente nach FloatsEinem 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.
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;
}

em oder % zugewiesen
werdenmax-width für den Bereich Inhalt kann
eingesetzt werden, ohne dass auf Browsern, die diese Eigenschaft unterstützen,
Nachteile entstehen.Warum führe ich kein Beispiel mit einem CSS-3-DIV-Layout auf?
div ausgezeichnet
werden, kann daher ein Spalten-Layout nur nachgebildet werdendisplay: table wird von IE nicht unterstütztÜ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.
Fügen Sie resource:///res/html.css in die Adressleiste
ein.
Empfehlenswerter Artikel zum Thema von Björn Hoehrmann
Empfehlenswerter Artikel zum Thema von Klaus Langenberg
Empfehlenswerter Artikel zum Thema von Klaus Langenberg
Empfehlenswerter Artikel zum Thema von Klaus Langenberg
Empfehlenswerter Artikel zum Thema von Jens Meiert
Eine Seite besitzt ein DIV, welches mehrere Kindelemente enthält. Das letzte Kind soll am unteren Rand des DIV ausgerichtet werden.
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>
pre aus
der Box verhindernWenn 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.
pre {
display: table;
}
content, counter-increment und counter-resetFü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.
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 label um den Code knapp zu halten.
Ebenfalls nicht eingesetzt wurde caption, weil es im Tabellen-Modell
mit kollabierenden Rahmen, nicht in exakt der Breite dargestellt werden
kann, wie die Tabelle.th wurde für diejenigen Felder eines Paares verwendet,
welches rechtsbündig ausgerichtet werden soll.border-width oder border-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 über input nicht erreichen. Eine Lösung kenne
ich bisher nicht.fieldset steht im Browserstylesheet auf 100%.
Bisher ist es mir nicht gelungen, fieldset browserübergreifend
auf eine Gerade-genug-Größe zu bringen.value in input.
Abhilfe brächte die Verwendung von button.Wählen Sie die Druckvorschau in Ihrem Browser, um die Effekte im Beispieldokument zu betrachten.
Es gibt diverse Verweistypen inmitten von Fließtext:
auf dieselbe Seite[1] auf eine Anmerkung am Ende derselben Seite[Luhmann 1982] auf einen Literaturbeleg am Ende derselben SeiteFolgende Hauptmerkmale sollen erfüllt werden:
W.Link, Adresse, URL, ...Nebenmerkmale, die nichts mit der spezifischen Aufgabe der Ausgabe von URLs zu tun haben:
Lorem [2] und nicht Lorem²
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.[1] und [W1] steht ein geschütztes Leerzeichen. Das geschützte Leerzeichen vor [W1] steht innerhalb des span damit es zusammen mit dem Element ausgeblendet werden kann.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.
<a href="http://example.tld/page.html#part3">Linktext</a>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Verweis
^^^^^^^^ Quellanker
^^^^^^ Fragmentbezeichner
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Zielanker
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ URI
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Verweisziel
<h2 id="part3">
^^^^^ Zielanker
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.
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/
Empfehlenswerter Artikel zum Thema von Christoph Schneegans
Ihnen fällt eine kürzere Überschrift ein? Bitte melden!;)
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.
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.
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>
Bild skaliert abhängig von der Fensterbreite
div.skalierend {
width: 40%;
}
div.skalierend img{
width: 100%;
}
<div class="skalierend"><img src=". . ." /></div>
width und height für das BildOhne Angabe für Breite der Box im HTML-Code - weder als Inline-Stilregel noch als Attribut
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>
##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>#
div nicht möglichdiv angegeben
- als width und height Für die Bestimmung
des Maßes ist die größte Breite und die größte Höhe von allen vorkommenden
Bildern ausschlaggebenddiv nicht möglichdiv angegeben
- als width, height und line-height.
Für die Bestimmung des Maßes ist die größte Breite und die größte Höhe
von allen vorkommenden Bildern ausschlaggebendth und td angegeben
- als width und height. Für die Bestimmung
des Maßes ist die größte Breite und die größte Höhe von allen vorkommenden
Bildern ausschlaggebendcontent, counter-increment und counter-resetHier 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.
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 |
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.
Ein Listenpunkt enthält mehr als einen Teil. Der erste soll sich von den nachfolgenden unterscheiden.
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>
div oder spanastrongem für jeden Ast des aktiven Punktes
.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>
li class="aktiv"
.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>
astrongAchtung: Bei dieser Lösung müssen die Listenelemente ohne Umbruch im Quelltext stehen. Umbrüche werden in inzeilig dargestellten Elemente als Whitespace interpretiert.
ul.nav li {
display: inline;
border-left: black 2px solid;
padding-left: 1em;
padding-right: 1em;
margin: 0 -2px 0 0;
list-style-type: none;
}
ul.nav {
display: inline;
border-right: black 2px solid;
padding: 0;
margin: 0;
}
<ul class="nav"><li><a href="#a">lorem</a></li><li class="aktiv"><strong>ipsum</strong></li><li><a href="#c">doloret</a></li></ul>
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:
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
Empfehlenswerter Artikel zum Thema von Christoph Päper
Ein halbbreites geschütztes Leerzeichen   wird
kaum unterstützt. Das halbbreite ungeschützte Leerzeichen   wird
zwar breiter unterstützt, bietet aber keinen Trennschutz.
.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.
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.
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.
Autor, Jahr: SeitenzahlAutor, 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.Autor, JahrAutor, Jahr benutzt. Ansonsten wird
als Jahreszahl diejenige vom Erstellen des Bildschirmfotos gewählt.cite wird nicht eingesetzt. Siehe dazu auch.Informationen zu anderen bibliographischen Stilen:
Überblick
Autor Jahr.Autor, Vorname: Titel der Webseite. URL – Domaininhaber:
Name des Domaininhabers, Stadt – Erstellt am – Zuletzt geändert
am: … – Bildschirmfoto vom …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:
c:\Programme\SchemaValidator\ und dann dort entpacken.Startmenü > Programme > Zubehör > EingabeaufforderungValidierung einer einzelnen Datei, z.B. d:\borumat.de\index.html:
schemavalidator /file:"d:\borumat.de\index.html"EnterValidierung 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"*.php wird ein entsprechender Filter
innerhalb der
runden Klammern - per Leerzeichen getrennt - angehängt: (*.html *.php)EnterFü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:
Options > Preferences > Schieberegler auf 100 Threads
schieben Datei > Check URLhttp://deine-domain.deButton: More Options > Feld: Level > 999 > OK
Dies bewirkt, dass nicht nur die Links auf der Startseite,
sondern auch die Links aller Unterseiten geprüft werdenButton: OKhttp://deine-domain.de/page.htmlButton: More Options > Feld: Level > 1 > OK
Dies bewirkt, dass nur die Links auf der Seite page.html geprüft
werdenButton: OKXenu 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:
href="/deine-domain.de/page.html#zielanker" <h1 id="zielanker">. . .deren Zielanker ein
id ist, kann Xenu nicht interpretieren.
Es bewertet diese Verweise als fehlerhaft.UTF-8 verwenden, kann
Xenu die Linktexte nicht korrekt wiedergeben. Umlaute etc. werden falsch
dargestelltBeim Anbieter FavIcon from Pics kann aus einem beliebigen Bild in beliebiger Größe schnell und schmerzlos ein Favicon erzeugt werden. Der Dienst ist kostenlos.
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.
Ich danke dem Autor der Anwendung, der diese Funktionalität auf meine Anregung hin ergänzt hat.
Umsetzung:
Rechtsklick > Speichern
unter:Einstellungen > Optionen > Reiterkarte: FTP
Füllen Sie dort alle Felder ausEinstellungen > Funktionen > Druck > (x)Fenster > Weiter 
Dateiname den von Ihnen gewünschten
Pfad ein. Das :# im Dateinamen ist eine Variable. Hardcopy
erzeugt laufende Nummern. Beispiel für einen Dateinamen: hc-0005.png.Format das von Dir gewünschte Format.Weiter > [x]BasicSript(Ende)FilenameToClipboard.bas ausFilenameToClipboard.bas in einem Texteditor
und ersetzen Sie http://meine-domain.de/bildschirmfotos/ durch
den Anfang Ihrer URLHardcopy bietet eine Vielzahl weiterer interessanter Optionen.
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. |
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
Weitere mögliche Ausgabeformate sind: XML, DocBook XML, OpenOffice XML, OpenOffice ODT
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?
Datei > Exportieren > Speichern als: XHTMLwriter2xhtml.xml in einem Texteditor. Pfad zu dieser Datei auf
Windows XP: C:\Dokumente und Einstellungen\[Nutzername]\Anwendungsdaten\OpenOffice.org\3\user\writer2xhtml.xml Auf
anderen Plattformen den entsprechenden Pfad für Anwendungsdaten suchen.writer2xhtml.xmlwriter2xhtml.xml ist gut dokumentiert
(PDF).Empfehlenswerter Artikel zum Thema
.htaccess im
zu schützenden Verzeichnis an# beginnen, reine Kommentare. Fügen Sie Ihre Daten
in den Code ein.Document Root erfä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
.htpasswd im
zu schützenden Verzeichnis anlustig,
ein und Sie erhalten eine Zeichenkette (Crypt), die z.B. so aussieht:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0.htpasswd ein:ernie:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0.htaccess und .htpasswd im
sog. ASCII-Modus in das entsprechende Verzeichnis hoch. Meistens geschieht
dies durch die FTP-Anwendung automatisch.require user bert
an das Ende der .htaccess ein.bert dasselbe Passwort wie kermit erhalten
soll, fügen Siebert:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0.htpasswd ein:ernie:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0bert:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0ernst)
erhalten soll, erzeugen Sie für jeden Nutzer ein eigenes Crypt und fügen
Sie es wie zuvor beschrieben in .htpasswd ein:ernie:$1$pR06oNAR$OaUQOMkzCn2XKiELTEewf0 bert:$1$WxuqExGq$/YdlXg9UA85tVr.ydy.XV1
Beide Crypts sind hier verschieden.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.
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?
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
What is a good standard? An essay on W3C's design principles from Bert Bos. Übersetzung des Teils Readability ins Deutsche von Michael Jendryschik.
Empfehlenswerter Artikel zum Thema von Klaus Langenberg
Es werden englischsprachige und deutschsprachige Bücher besprochen
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.