PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit CSS-Vererbung relativer Fontgrössen


Endorphine
2003-09-08, 21:57:11
Weiss jemand, wie man die Vererbung von CSS-Styles verhindern kann?

Problem - folgende verschachtelte Liste:
<ul>
<li>bla</li>
<li>laberlaber</li>
<li>blubb blubb:
<ul>
<li>bla</li>
<li>ble</li>
<li>blu</li>
</ul>
</li>
<li>rom pom</li>
<li>blabla</li>
</ul>

... wird mit folgendem Stylesheet formatiert:
p, ul, ol, dl, div, h1, h2 {
text-align : justify;
font-family : Arial, Helvetica, sans-serif;
font-size : 85%;
}

Ich möchte auf jeden Fall eine relative Fontgrösse verwenden, um das Dokument plattformunabhängig ordentlich aussehen zu lassen (ihr wisst ja, Windows: 96dpi, Linux: 72dpi, deshalb keine absoluten Fontgrössen).

Problem nun: die Styles kaskadieren, werden also vererbt ;) Das heisst, dass die der Text der zweiten Ebene nur noch mit 85% der Höhe der ersten Ebene dargestellt wird. Und so weiter für die dritte, vierte, fünfte Ebene...

Ein kleiner billiger workaround für die zweite Ebene ist mir eingefallen:
ul ul {
font-size : 100%;
}

Nur ist das nicht wirklich sauber. Und dann müsste man für grössere Seiten auch für jede erdenkliche Verschachtelungsebene/-kombination ein passendes Stylesheet vorschreiben :(

IIRC lässt sich die Vererbung mit inherit; explizit anschalten. Ich möchte genau das Gegenteil - kennt jemand eine Möglichkeit, die Vererbung eines Stylesheets explizit abzuschalten?

Aqualon
2003-09-08, 22:23:18
Die Vererbung kann man soweit ich weiß nicht abschalten und der Workaround, den du gefunden hast ist auch der empfohlene Weg vom W3C "one can create defaults and then list the exceptions"

http://www.w3.org/TR/REC-CSS1#contextual-selectors

Also wirst du wohl in den sauren Apfel beissen und für die Ausnahmen extra Stylesheets definieren müssen.

Aqua

Endorphine
2003-09-08, 22:35:16
Danke Aqua. Ist zwar keine richtige Lösung des Problems, aber insgesamt macht es wohl wirklich mehr Sinn, defaults zu vererben und für die Ausnahmen dann einzeln Stylesheets anzulegen als andersrum.