Marietta: Style "resetten"

Hallo, liebes Forum,

folgendes Problem: ich habe eine Klasse, die an unterschiedlichen Stellen im Dokument genutzt wird. An einer bestimmten Stelle möchte ich den "Default" einstellen. So in etwa:

...
  <div class="myclass">
    <img id="myimage" class="myclass" src="/img/elefant.gif">
  </div>
  ...

Im Stylesheet möchte ich so etwas machen:

.myclass {
    border: 1px solid black;
  }

#myimage .myclass {
    "reset!";
  }

Das ist jetzt stark vereinfacht dargestellt, es nutzt mir also nichts, wenn die Antwort lautet:

#myimage .myclass {
    border:0px;
  }

Gibt es also eine Syntax mittels derer ich die komplette Klassendefinition aussetzen, resetten kann?

Danke und Grüsse,
Marietta (die sich jetzt todmüde ins Bett schmeissen wird, *puh*)

  1. Hi,

    Gibt es also eine Syntax mittels derer ich die komplette Klassendefinition aussetzen, resetten kann?

    Nein. Du kannst eine ID verwenden, die ja eine höhere Spezifität hat und hierüber alle Definitionen der betreffenden Klasse zurücksetzen. Soviel Arbeit sollte das aber nicht machen, oder besitzt diese Klasse Dutzende Eigenschaften?
    Gruß
    Ingo

    freundliche Grüße
    Ingo

    1. Hallo Ingo,

      Nein. Du kannst eine ID verwenden, die ja eine höhere Spezifität hat und hierüber alle Definitionen der betreffenden Klasse zurücksetzen.

      ok, das leuchtet ein.

      Soviel Arbeit sollte das aber nicht machen, oder besitzt diese Klasse Dutzende Eigenschaften?

      Ja, sie besitzt so einige Eigenschaften, zum Beispiel die Eigenschaft "line-height:0;". Ich kenne ja nun nicht mal den Default-Wert von line-height, weiß also gar nicht, auf welchen Wert ich das zurück setzen sollte!

      Ausserdem und fast wichtiger aus meiner Sicht: es verkompliziert die Projektarbeit, wenn ich jedesmal, wenn ich an der allgmeingültigen Klassen-Style-Spezifikation ändere, darauf achten muss, dass ich bei dem Spezialfall den entsprechend hinzugekommenen Wert zurück setze.

      Danke + Grüsse, Marietta

      1. Hi,

        Ja, sie besitzt so einige Eigenschaften, zum Beispiel die Eigenschaft "line-height:0;".

        Willst Du hiermit verhindern, daß die Elemente dieser Klasse keine Höhe bekommen und Inhalte nicht angezeigt werden?

        Ich kenne ja nun nicht mal den Default-Wert von line-height, weiß also gar nicht, auf welchen Wert ich das zurück setzen sollte!

        Im Zweifelsfall probiere es zunächst mal mit 'auto' oder 'none', wenn Du nicht bei jeder Eigenschaft in den Specs nachschauen möchtest.

        Ausserdem und fast wichtiger aus meiner Sicht: es verkompliziert die Projektarbeit, wenn ich jedesmal, wenn ich an der allgmeingültigen Klassen-Style-Spezifikation ändere, darauf achten muss, dass ich bei dem Spezialfall den entsprechend hinzugekommenen Wert zurück setze.

        Du hättest auch die Möglchkeit

        • zwei verschiedene Klassen anzulegen oder
        • die Klasse durchgängig nur in Verbindung mit dem Elternelement zu definieren, sofern dieses nur gleich zu formatierende Klassen enthält; also Deinen Beispielsfall umkehren: nicht eine Ausnahme in Abhängigkeit des Elternelements formatieren, sondern den Regelfall.

        freundliche Grüße
        Ingo

  2. Hi,

    Gibt es also eine Syntax mittels derer ich die komplette Klassendefinition aussetzen,

    Ja - sorge dafür, daß der Selektor die entsprechenden Elemente NICHT auswählt.

    resetten kann?

    Jein.
    Du kannst für die betroffenen Eigenschaften nachgucken, was der "initial value" ist und diesen explizit setzen (falls möglich).

    cu,
    Andreas

    --
    Warum MudGuard?
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hallo Andreas

      Ja - sorge dafür, daß der Selektor die entsprechenden Elemente NICHT auswählt.

      klingt gut, wie meinst Du das denn? Wie kann ich denn sagen, für dieses und jenes Element soll der Selektor nicht gelten?

      Du kannst für die betroffenen Eigenschaften nachgucken, was der "initial value" ist und diesen explizit setzen (falls möglich).

      Hm, das hatte ich befürchtet. Welche Quelle nutzt Du, um Default-Werte heraus zu finden?

      Vielen Dank + Grüsse, Marietta

      1. Hi,

        klingt gut, wie meinst Du das denn? Wie kann ich denn sagen, für dieses und jenes Element soll der Selektor nicht gelten?

        Das hängt vom Einzelfall ab ...

        Hm, das hatte ich befürchtet. Welche Quelle nutzt Du, um Default-Werte heraus zu finden?

        Die einzig definitive. Den CSS-Standard

        cu,
        Andreas

        --
        Warum MudGuard?
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Hallo Andreas

          klingt gut, wie meinst Du das denn? Wie kann ich denn sagen, für dieses und jenes Element soll der Selektor nicht gelten?

          Das hängt vom Einzelfall ab ...

          Ok, ein Einzelfall:

          <div class="myclass">
            <img id="myimage" class="myclass" src="..." />
          </div>

          Wie kann ich hier jetzt festlegen, dass der Selector für das Element mit der id "myimage" nicht gelten sollte?

          Die einzig definitive. Den CSS-Standard

          Danke! Ich habe jetzt auch gerade die SelfHtml-CSS/XHTML-Sidebar entdeckt :-)

          Danke+Grüsse,
          Marietta