Entries tagged as css

18 Feb 2009 Stolperfalle quotes

Eine echte Stolperfalle in Webseiten können typografische Anführungszeichen sein. Allein die – typografisch – korrekten Anführungszeichen zu wählen ist schon relativ kompliziert (speziell in einer mehrsprachigen Umgebung wie einem multilingualen Blog), sie dann auch noch für jedes Zitat von Hand einzugeben fällt schon fast unter Folter.

Einfacher geht es über »generated content« und die quotes-Eigenschaft in CSS2, welche dafür sorgt, dass entsprechend ausgezeichnete HTML-Elemente via CSS automagisch in typografische Anführungszeichen »verpackt« werden.

Wo ist dabei nun die Stolperfalle? In den Versionen 6 und 7 unseres alten Kumpels IE ausnahmsweise nicht – dort wird das Ganze offenbar mangels Unterstützung von :before und :after schlicht ignoriert. No harm, no foul. Sieht halt nicht schön aus, fällt aber auch nicht unangenehm auf oder macht Zicken.

Haarig wird es ausgerechnet im appleschen Browsermutterschiff Safari (möglicherweise sogar in allen WebKit-basierten Browsern?): Dort passiert zunächst wie im IE gar nichts. Des Rätsels Lösung: Safari braucht eine Extrawurst, sogar eine umfangreichere, wenn es auch für blockquotes funktionieren soll.

(Dankeschön für den rettenden Link an Eric.)

08 Feb 2009 s9y-Port: Base

Base

Ein weiteres, eher schlichtes Template auf speziellen Wunsch eines einzelnen Herren.

Base basiert auf dem populären 960 Grid System. Besonderes Highlight ist die über die theme options optional einstellbare Logo-Grafik.

Download und weitere Informationen auf meiner Ports-Seite. Fehler und sonstige Beschwerden bitte wie gehabt wahlweise in den Kommentaren oder per Email.

25 Jan 2009 plainList in s9y

Nachdem die notwendigen Anpassungen der Kern-Plugins in Serendipity so ziemlich abgeschlossen sind, geht es nun schrittweise an die sogenannten »additional plugins« – dabei handelt es sich, wie der Name bereits sagt, um zusätzliche Plugins, welche über Spartacus (bzw. das dazugehörige Plugin) nachinstallierbar sind.

Die Schwierigkeit in der Code-Aktualisierung jeglicher Plugins besteht in der Anforderung, die Ausgabe des Plugins möge mit dem veränderten Code idealerweise genau so aussehen wie vorher, damit möglichst wenige Templates aktualisiert werden müssen. Ein klassisches, leider sehr oft vorzufindendes Code-Beispiel in Plugins für s9y ist etwa so etwas:

<a href="...">...</a>
<br />
<a href="...">...</a>
<br />
[...]

Ich weiß nicht, wie man darauf kommt, so etwas zu verwenden – es ist doch ziemlich eindeutig, dass der semantisch korrekte Code für sowas eine ungeordnete Liste wäre:

<ul>
    <li><a href="...">...</a></li>
    <li><a href="...">...</a></li>
    [...]
</ul>

Nun gilt es jedoch, bei ungeordneten Listen (ul) die Bullets (•) und bei geordneten Listen (ol) die Numerierung zu vermeiden, um die »alte« Darstellung in s9y zu erhalten. Dafür haben wir auf Vorschlag von Garvin die neue CSS-Klasse plainList eingeführt. Diese erfordert folgenden Codeschnipsel in der style.css des verwendeten Templates:

.plainList {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}

Wichtig: Unbedingt die korrekte Groß-/Kleinschreibung beachten, plainlist und PlainList beispielsweise würden in CSS nicht erkannt!

Nun werden Listen, denen die Klasse plainList zugewiesen wurde (<ul class="plainList>, <ol class="plainList">), ohne Bullets oder Numerierung sowie ohne Einrückung und damit in (Seitenleisten-)Plugins genau so wie vorher dargestellt. (Wobei man natürlich diese Klasse auch z.B. in Blogeinträgen einsetzen kann.)

18 Jan 2009 Test-Trackback für Marco

Und mal wieder braucht jemand (in diesem Fall Marco) aus der s9y-Community ein Trackback zu Testzwecken … bitte schön!

Edit: Und noch eins zu André.

14 Jan 2009 WYSIWYG: Best practice

WYSIWYG-Editoren sind eigentlich ein Albtraum für Netzgestalter und Templateautoren. Natürlich sind solche Editoren für Benutzer – spezielle solche, die des (X)HTML nicht mächtig sind – eine feine Sache. Sieht aus wie Word, produziert aber einen Blogeintrag. Der Haken aus Gestaltersicht ist leider oft der (X)HTML-Code, der dabei herauskommt.

WYSIWYG-Editoren wie etwa Xinha, welcher seit Version 1.4 in Serendipity der Standard-WYSIWYG-Editor ist, erlauben dem Benutzer im Grunde alles, was man in so einen Eintrag einfügen können wollte – und damit beginnt das Dilemma auch schon. Kein Templateautor kann erahnen, was Benutzer möglicherweise in Einträge einfügen könnten, geschweige denn, wie, und das alles in einem Template abdecken. Und schon sind wir wieder bei Sokrates

Müssen nun also alle Blogger (X)HTML lernen? Nein. Mit ein paar einfachen Grundregeln und etwas Disziplin ist es durchaus möglich, mit Xinha (wie auch vergleichbaren Editoren) »vernünftig« Einträge zu erstellen. Ich gehe mal der Reihe nach die Buttons in Xinha durch, überspringe aber diejenigen, welche den generierten Code nicht beeinflussen:

  1. font und size: Finger weg! Die Schriftart und -größe regelt das Template. Abgesehen davon verwenden WYSIWYG-Editoren hier veraltete HTML-Elemente. Xinha setzt die Schriftgröße zudem in der ungünstigen Maßeinheit pt.
  2. Format: Superwichtig! Hier sollte man bevor man irgendetwas tippt stets die korrekte Auszeichnung (Überschrift, Absatz, Adresse, Formatiert) für ein Stück Text wählen. Das sorgt dafür, dass die entsprechenden Textbausteine in halbwegs korrektem (X)HTML ausgezeichnet werden.
  3. Physische Auszeichnungen wie fett, kursiv etc. bis hin zu tiefgestellt kann man gerne verwenden (mit Ausnahme von unterstrichen, was Links vorbehalten sein sollte). Hier benutzt Xinha im Übrigen sogar z.B.<strong> statt <b>. Sehr gut.
  4. Ausrichtung: Linksbündig & Co. – auch das sollte dem Template überlassen werden. Speziell Blocksatz kann zudem durchaus Darstellungsprobleme im Browser auslösen. Lieber nicht verwenden.
  5. Listen sind eine Ausnahme, bei der vorher keine Formatierung gewählt werden sollte. Eine Liste muss nicht in einen Absatz verpackt werden.
  6. Einzug vergrößern/-kleinern ist fast schon gefährlich – damit setzt Xinha blockquotes um. Im Grunde braucht man nur »Einzug vergrößern«, wobei man auch hier vorher keinen Absatz setzt, dann aber innerhalb des eingerückten Bereiches einen Absatz setzt. Aufheben des Einzuges nicht vergessen.
  7. Farben: Finger weg! Auch das regelt das Template. Schriftfarbe sollte ebenfalls Links vorbehalten sein.

Natürlich schadet es nie, den erzeugten Code hinterher zu kontrollieren – vorausgesetzt, man kennt sich ein wenig mit (X)HTML aus. Ganz wichtig ist dabei vor allem, auf unnötige <br />-Elemente zu achten. Aus demselben Grund ist es auch unbedingt wichtig, nur dann einen Zeilenvorschub mittels Enter zu erzeugen, wenn es erwünscht ist, sprich: Wenn auf einen Textbereich ein weiterer folgt. Ansonsten erzeugt Xinha nämlich u.U. so etwas hier: <p><br /><p>. Pfui!

Generell empfiehl es sich, Xinha nicht zusammen mit dem NL2BR-Plugin für s9y zu verwenden, da Xinha ansonsten auch den Code zum Einfügen von Bildern aus der Mediendatenbank mit <br />-Elementen dekoriert, was die Darstellung von Bildern in Einträgen ziemlich entstellt.