Hi Thomas,
ich bewege mich gerade auf ziemlich dünnem Eis, nämlich im Reich von CSS,
vor allem mit deinen sehr weitreichenden formatierungswünschen. ;-)
Ist das echt schon so exotisch, was ich haben will?
- Beide Klassen sollen umgebrochene Folgeabschnitte (eingeleitet mit <br />) um 2 Zeichen einrücken, weil das 1. Zeichen der 1. Zeile
(A/F) eine Sonderbedeutung hat.
was ist (A/F) ?
(off topic) http://www.lepanto.de/newbies/regeln.htm
Was will ich damit erreichen?
- Ich will die <u> und <br> loswerden,
wirst aber letzlich nicht wirklich können.
Mit meinen aktuellen Einstellungen (monospace, positive Einrückung um zwei
definierte Zeichenbreiten, negative Einrückung der 1. Zeile um zwei Zeichen-
breiten) bin ich die beiden Leerzeichen schon mal losgeworden.
Das ist ja der Grund, warum ich bisher monospace nehmen muß - dafür kann
ich die erforderlichen Einrückungen pixelgenau ausrechnen.
Das <br /> brauche ich natürlich weiterhin, weil ich die Umbruchstelle explizit
angeben muß.
(Würde ich die verschiedenen möglichen Inhalte via XML beschreiben und den HTML-
Code daraus generieren, dann wäre es kein Problem, jeweils die Position des bzw.
der <br /> - es können ggf. auch mehrere werden, wenn alles auf einmal vorliegt
- zu beschreiben.)
Gäbe es eine Möglichkeit, nach diesem 1. Zeichen eine Art
"Tabulator-Position" zu setzen,
nein. was du machen könntest ist:
br:after { content:" "; }
Iiiih - das sieht ja "schmutzig" aus ... ;-)
das fügt dir die zwei zeichen ein, aber es ging bei mir nur mit
NS6.1. (IE5.5. kann es nicht)
Sowohl Netscape 6.2.1 als auch Mozilla 0.9.8 fügen nicht etwa zwei
Leerzeichen ein, sondern exakt das, was im "content" angegeben ist.
Man sieht im Browser also das " "! (Offenbar wird das "&"
als entity codiert eingefügt.)
Und wenn ich zwei normale Leerzeichen einfügen lasse, dann hat das wieder
keinen einrückenden Effekt.
Außerdem sind dann diese Zeichen im Falle von <p class="failed"> natürlich
auch noch unterstrichen. Das will ich aber nicht.
Ich will eine negative Einrückung um die Breite dessen, was in der 1.
Zeile links herausragen kann. Das sind "A " und "F "; wenn ich monospace
verwende, dann weiß ich, wie breit die sind - so kriege ich meine Ein-
rückung ja bereits prima hin.
Meine Frage war nur, ob es in CSS bereits eine Möglichkeit gibt, meinen
"Spaltensatz" ohne monospace und ohne Tabellen hinzukriegen. Falls nicht,
nehme ich das gerne hin ...
Sämtliche anderen modernen Browser (Opera 6, M$IE 6, Amaya 5.3) ignorieren
diese Angabe übrigens.
- Innerhalb der <p class="failed"> kann es vorkommen, daß ich
eine Zusatzangabe brauche. Diese will ich dann in einer
dritten Farbe haben und - das ist wichtig - nicht unterstrichen.
Gibt es eine Möglichkeit, den gewünschten Effekt mit CSS für
die 6er-Browser zu erreichen?
span.retreat, p.failed:first-child { color:#FF0000; text-decoration:none; }
p.failed:first-child würde schon für NS6.1 reichen
Ups - das ist nicht das, was ich meinte.
Netscape 6.2.1 macht mir bei first-child den gesamten <p> so, wie ich nur
das <span> darin haben wollte.
Der erste Teil des Inhalts von <p class="failed"> muß unterstrichen bleiben.
_Nur_ der eingebettete <span class="retreat"> darf nicht unterstrichen sein.
Es gibt vier Fälle für meine <p>-Inhalte
1. "hat funktioniert"
2. "hat nicht funktioniert"
3. "hat nicht funktioniert und löst retreat aus, der funktioniert hat"
4. "hat nicht funktioniert und löst retreat aus, der auch nicht funk-
tioniert hat (dafür aber Seiteneffekte auf andere Objekte bewirkt)"
Und in Fall 3 und 4 brauche ich eben einen _Teil_, den ich unabhängig vom
Rest unterstreichen können muß oder eben auch nicht. Unterstrichen wird
immer genau das, was nicht funktioniert hat.
Dieser Teil gehört aber logisch zur selben Informationseinheit - deshalb
möchte ich denselben Tag nehmen und darin mit <span> eine logische Unter-
Einheit bilden.
Außerdem brauche ich noch eine zweite Art von "Einbettung", die ich eben-
falls nicht unterstreichen darf: Bei "A Bel-Lon ? >ex!" ist das "?" wieder
etwas Anderes, das demnächst sein eigenes <span> bekommen wird (das ist
der "Grund", wieso "A Bel-Lon" nicht funktioniert hat).
Also:
- "A Bel-Lon" muß in Farbe X und unterstrichen sein,
- "?" in Farbe Y und niemals unterstrichen,
- ">ex!" in Farbe Z und im vorliegenden Falle ebenfalls nicht unterstrichen.
Und notieren möchte ich das als
<p class="failed">A Bel-Lon <span class="reason">?</span><br /><span class="retreat">>ex!</span></p>
und dann mit CSS so formatieren, daß es aussieht wie angegeben.
"?" ist nichts qualitativ Neues gegenüber ">ex!", deshalb hatte ich es zur
Vereinfachung erst mal weggelassen. Wenn ich ein <span> hinkriege, dann
kriege ich auch viele verschiedene <span>s hin.
Das ist im Moment mein größtes Problem - denn die Unterstreichung
ist _semantisch_ falsch im Sinne meiner Auswertung, damit kann ich
damit wird mein vorschlag mit "p.failed:first-child" ausser gefächt
gesetzt, es sei denn du führst eine andere klasse für p bei solchen
fällen ein.
Nochmal: In allen Fällen, in denen ich <p class="failed" verwende, muß
alles, was _nicht_ selbst innerhalb von eingebetteten <span>s liegt,
in _jedem_ Fall unterstrichen werden.
_Nur_ die Unterstreichung dessen, was innerhalb von diversen <span>s
liegt, soll von der Klasse des jeweiligen <span> abhängen.
Mit der Farbe klappt das tadellos - mit der Unterstreichung nicht.
- Mozilla macht
meinst du hier NS6.x oder richtig mozilla?
Sowohl als auch. (Ich habe im Moment Netscape 6.2.1 und Mozilla 0.9.8
offen, und ein halbes Dutzend anderer Browser ebenfalls ...)
mehr als was du schon getan hast gibt es dazu nicht zu tun/sagen.
es sei denn im <td> (was dann nicht mehr strict xhtml sein kann)
Okay.
Und warum werde ich für jede einzelne Über-Definition gewarnt?
hat schon Sven erklärt.
Bei den Hintergrundfarben verstehe ich das.
Aber warum werde ich gewarnt, wenn ich eine Schriftgröße z. B. für ein
<td> in einer lokalen CSS-Datei umdefiniere? Was ist daran "schlimm"?
Aber CSS sollte es eigentlich schon sein.
umgekehrt, ein css fähiger browser solle es schon sein.
Okay. An dieser Stelle strebe ich in der Tat XHTML 1.0 strict und CSS
an, _wenn_ es die modernen Browser dann wirklich anzeigen können.
Die Sache mit der eingebetteten Unterstreichung ist aber der Knackpunkt,
der das gesamte Projekt zum Scheitern bringen könnte.
Wenn _kein_ Browser mein Dokument richtig anzeigen kann, dann muß ich
bei <u> bleiben, also in der "Steinzeit".
(Amaya macht als einziger aktueller Browser zwar die Unterstreichung wie
gewünscht, dafür aber einige andere Dinge ziemlich seltsam.)
P.S.: Vielleicht eignet sich meine Problemstellung sogar dafür,
gleich ein XML-Dokument zu verwenden (die Inhalte dürften sich
prima als DTD beschreiben lassen, wenn ich davon auch nur einen
Schimmer einer Ahnung hätte);
es ist egal ob du es jetzt in HTML oder in XML schreibst (gut mit XML
könntest du die regel und struktur besser erfassen) da du dein xml
datei auch darstellen musste und das geht nun mal im web über html,
also bist du wieder am ausgangspunkt.
Nein, ich meinte wirklich gleich XML als Darstellung (via CSS).
So arg weit dürfte ich ja davon gar nicht mehr entfernt sein, wenn ich
mal XHTML 1.0 strict erreicht habe, also sämtliche Formatierungen via CSS
vornehme. Oder?
seit IE5 und NS6 kannst du es direkt mit xml+css versuchen, aber dass
die darstellung dadurch besser wird, dürfen wir alle bezweifeln.
Genau letzteres wollte ich hören, danke.
Dann also warten auf das Christkind, äh - auf Browser 7.0 ...
Viele Grüße
Michael