Bartel: Class-Angabe für verschiedene Seiten

Hallo,
alle Seiten meiner Webpräsenz enthalten die Angabe
<div class="irgendwas">

Die Klasse irgendwas enthält u.a. die Angabe "margin-left:2em;"
Jetzt soll für eine Seite aber gelten "margin-left:0em;"

In dem HTML (was für alle Seiten gleich ist und mit include geholt wird) möchte ich nichts ändern.

Kann man im CSS angeben, dass #irgenwas unterschiedlich ist je nachdem wo es aufgerufen wird?

  1. Die Klasse irgendwas enthält u.a. die Angabe "margin-left:2em;"
    Jetzt soll für eine Seite aber gelten "margin-left:0em;"

    Für _eine_? Dann würde ich sagen:
    <div class="irgendwas" style='margin-left:0em'>

    Oder margin-left ist öfter unterschiedlich, aber Standardwert sollte 2em sein: dann würde ich mit class _und_ id arbeiten. Gebe der Id dann den speziellen Wert.

    Kann man im CSS angeben, dass #irgenwas unterschiedlich ist je nachdem wo es aufgerufen wird?

    Höchstens, wenn Du je nach Aufruf andere CSS-Dateien einbindest.

    Liebe Grüße,
    LSpreee

  2. Moin!
    Hatte irgendwann mal eine ähnliche Frage:
    http://forum.de.selfhtml.org/archiv/2011/3/t203689/#m1377826
    Die Antworten waren sehr hilfreich,
    lg

  3. Hallo,
    mir wäre geholfen, wenn es nachfolgendes gäbe:

      
    Element1 Element2 { CSS-Eigenschaft:Wert; ...}
    

    aber nicht dass CSS-Eigenschaft wie oben für Element2 gilt, sondern für das Element 1.
    Geht so etwas?

    1. Element1 Element2 { CSS-Eigenschaft:Wert; ...}

      aber nicht dass CSS-Eigenschaft wie oben für Element2 gilt, sondern für das Element 1.

      Möchtest Du Dich bitte deutlich ausdrücken?

      1. Element1 Element2 { CSS-Eigenschaft:Wert; ...}

        aber nicht dass CSS-Eigenschaft wie oben für Element2 gilt, sondern für das Element 1.

        Möchtest Du Dich bitte deutlich ausdrücken?

        Hat er doch. Also ich verstehe sein anliegen.

        Die Selektion geht von oben nach unten und nicht andersrum. Das heißt du kannst über Elternelemente Kinder definieren aber nicht umgekehrt.

        table td  <-- das würde gehen

        td table <-- das würde nicht gehen, jeden Falls kannst du nicht die Table ansprechen in der td liegt.

        Generell zu deinem Begehren möchte ich noch beitragen das du in einer CSS Datei keinen Bezug auf den URL Namen oder sowas nehmen kannst. Es bleibt dir also nicht anderes übrig als eine Identifikation in jeder Seite zu machen. z.B. über eine ID am Body
        <body id='{variable_id}'>
        variable_id ist dann bei jeder Datei anders

        Gruß
        Verschachtelungskönig
        T-Rex

  4. Om nah hoo pez nyeetz, Bartel!

    Kann man im CSS angeben, dass #irgenwas unterschiedlich ist je nachdem wo es aufgerufen wird?

    zeig mal. Auch die Seite, die anders sein soll.

    Matthias

    --
    1/z ist kein Blatt Papier.

    1. Hallo,

      zeig mal. Auch die Seite, die anders sein soll.

      Meine "Webpräsenz" ist im Web noch nicht präsent!
      Es ist also schwierig es zu zeigen zumal sehr viele Komponenten mitspielen.
      Falls nötig - und es keine befriedigende Antwort auf meinen Beitrag von vorhin gibt, werde ich versuchen das Problem einfacher darzustellen.

      Hier schon einmal ein theoretischer Versuch:

      #I1 {margin-left:2em;}

      <div id="I1">
      <p class="std">.....</p>
      .... Linker Abstand 2em für alle bis auf eine Seite:
      <div id="I1">
      <p class="speziell">.....</p>
      .... Linker Abstand sollte 0 sein

      Gruß
      Bartel

      1. Hallo,

        #I1 {margin-left:2em;}

        <div id="I1">
        <p class="std">.....</p>
        .... Linker Abstand 2em für alle bis auf eine Seite:
        <div id="I1">
        <p class="speziell">.....</p>
        .... Linker Abstand sollte 0 sein

        Böser Fehler: Zwei Elemente haben die id="I1"

        Das kann nur in die Hose gehen.
        document.getElementById("I1").style.marginLeft='0'

        Monster

        1. Böser Fehler: Zwei Elemente haben die id="I1"

          Das sind doch zwei unterschiedliche Dateien!

          1. @@Bartel:

            nuqneH

            Das sind doch zwei unterschiedliche Dateien!

            Und woher soll das Styelesheet das wissen?

            Margin:Fahrrad hatte dich bereits auf die Antwortem in seinem Thread hingewiesen. Wie wär’s denn damit?

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
            1. Hallo

              Das sind doch zwei unterschiedliche Dateien!

              Und woher soll das Styelesheet das wissen?

              Das genannte Beispiel (hier noch einmal abgeändert) sollte nur zeigen, was ich erreichen möchte:

              Seite 1-m:~~~css

              <div id="I1">   .... Linker Abstand 2em für alle bis auf eine Seite:
              <p class="std">.....</p>

              Seite n~~~css
                
              <div id="I1">  .... Linker Abstand sollte 0 sein (wenn hinter div  ein p kommt)  
              <p class="speziell">.....</p>  
              
              

              Margin:Fahrrad hatte dich bereits auf die Antwortem in seinem Thread hingewiesen. Wie wär’s denn damit?

              Die spezielle Seite kann/möchte ich nicht identifizierbar machen, denn sie setzt sich zusammen aus includes, in denen die tags <html> ....<body> identisch sind. Wenn ich für die eines Seite z.B. dem Body eine andere Eigenschaft verpasse, kann ich auch gleich dem obigen div eine eigene geben und das Problem ist gelöst.
              Ich muss aber davon ausgehen, dass bist zum div <id="I2"> die Struktur, d.h. die tags identisch sind. Erst nach dem div kommen durch ein include unterschiedliche tags, an denen ich die Art der Seite erkennen könnte,
              nämlich alle Seiten bis auf die eine z.B. an dem <p class="std"> und die eine an <p class="speziell">.
              Gruß
              Bartel

              1. @@Bartel:

                nuqneH

                Die spezielle Seite kann/möchte ich nicht identifizierbar machen, denn sie setzt sich zusammen aus includes, in denen die tags <html> ....<body> identisch sind.

                Das ist keine Begründung für „kann/möchte ich nicht“. Du könntest (automatisch) _jede_ Seite identifizierbar machen, indem du den letzten Teil des Pfads in ihrem URI (Dateiname?) als ID für 'html' oder 'body' verwendest.

                Ich muss aber davon ausgehen, dass bist zum div <id="I2"> die Struktur, d.h. die tags identisch sind. Erst nach dem div kommen durch ein include unterschiedliche tags, an denen ich die Art der Seite erkennen könnte,

                Mit CSS keine Chance.

                Qapla'

                --
                Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                (Mark Twain)
            2. @@Gunnar Bittersmann:

              nuqneH

              Das sind doch zwei unterschiedliche Dateien!

              Und woher soll das Styelesheet das wissen?

              Daher?

              Qapla'

              --
              Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
              (Mark Twain)
  5. alle Seiten meiner Webpräsenz enthalten die Angabe
    <div class="irgendwas">

    Kann man im CSS angeben, dass #irgenwas unterschiedlich ist je nachdem wo es aufgerufen wird?

    Erst schreibst du, irgendwas sei eine Klasse. In CSS werden Klassen so definiert:
    .irgendwas {}

    Zwei Absätze später möchtest do #irgenwas unterschiedlich machen. Das ist aber eine id:
    #irgendwas {}

    Kommt dein Problem aus dieser Verlechswung?

    Ansonsten könntest du dem Elternelement von irgendwas eine Klasse geben:

    .wasandres .irgendwas {margin-left:0em!important}
    ...
    <div class='wasandres'>
    include ( "irgendwas.htm" );
    </div>

    Monster