nobswolf: bestimmte Formatierung global ausschalten

Kann man mit CSS eine bestimmte Formatierung abschalten, so dass sie nicht benutzt wird, auch wenn untergeordnete Elemente sie explizit anfordern.

Der Hintergrund ist, dass hier eine Seite mit einer Internationalisierung (i18n) in verschiedenste Sprachen übersetzt wird. Und bei den meisten ist es sinnvoll, bestimmte Textteile fett hervorzuheben. Nun sind aber Sprachen dazu gekommen, bei denen das nicht sinnvoll ist (chinesisch).

Richtig bequem wäre also nun eine Lösung wenn ich ganz oben, z.B. in <body> einmal definieren könnte, dass der Font immer das font-weight 'normal' haben sollte, ganz egal was untergeordnete Elemente anfordern.

Geht das?

Danke für jede Idee.

  1. Hi,

    Kann man mit CSS eine bestimmte Formatierung abschalten, so dass sie nicht benutzt wird, auch wenn untergeordnete Elemente sie explizit anfordern.

    Ein "Anfordern" gibt es nicht.
    Es gibt höchstens bestimmte Regeln, deren Selektoren auf ein Element zutreffen oder nicht.

    Der Hintergrund ist, dass hier eine Seite mit einer Internationalisierung (i18n) in verschiedenste Sprachen übersetzt wird. Und bei den meisten ist es sinnvoll, bestimmte Textteile fett hervorzuheben. Nun sind aber Sprachen dazu gekommen, bei denen das nicht sinnvoll ist (chinesisch).

    Dann machst du die Formatierung am besten von der Sprachangabe eines Vorfahrenelementes abhängig. Stichworte: Attribut-, Nachfahrenselektor.

    Richtig bequem wäre also nun eine Lösung wenn ich ganz oben, z.B. in <body> einmal definieren könnte, dass der Font immer das font-weight 'normal' haben sollte, ganz egal was untergeordnete Elemente anfordern.

    Geht das?

    Um die Spezifität der Selektoren musst du dir entsprechend Gedanken machen.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Hallo,

    Richtig bequem wäre also nun eine Lösung wenn ich ganz oben, z.B. in <body> einmal definieren könnte, dass der Font immer das font-weight 'normal' haben sollte, ganz egal was untergeordnete Elemente anfordern.

    Welche CSS-Regeln letztlich angewendet werden, wenn verschiedene Regeln sich überschreiben, regelt die Kaskade:
    http://de.selfhtml.org/css/formate/kaskade.htm
    http://www.thestyleworks.de/basics/cascade.shtml

    Du kannst in einer Regel mit !important etwaige andere Regeln ohne !important überschreiben, jedoch nicht style-Attribute, die ebenfalls mit !important arbeiten.

    Mathias

  3. @@nobswolf:

    nuqneH

    Der Hintergrund ist, dass hier eine Seite mit einer Internationalisierung (i18n) in verschiedenste Sprachen übersetzt wird.

    Das wäre Lokalisierung (l10n).

    Internationalisierung ist, das System so _vorzusehen_, dass Lokalisierung einfach möglich wird.

    Und wo jetzt nachgerüstet werden muss.

    Richtig bequem wäre also nun eine Lösung wenn ich ganz oben, z.B. in <body> einmal definieren könnte, dass der Font immer das font-weight 'normal' haben sollte, ganz egal was untergeordnete Elemente anfordern.

    Geht das?

    So nicht.

    Du musst schon alle Elemente selektieren, die 'font-weight: normal' haben sollen. Entweder einzeln wie in [qa-css-lang] (Übersetzung in Arbeit) gezeigt oder per Universalselektor mit :lang-Pseudoklasse und '!important'.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
  4. Danke für die Hinweise.

    Meine Lösung hat nun als letztes CSS, welches eingebunden wird eine "globaloverride.css" mit folgendem Inhalt:

    :lang(zh){  
    	font-weight: normal !important;  
    }
    

    Funktioniert wie es soll und spart mir viel Arbeit, danke nochmal.