picknikker: Alle Elemente ausblenden, enthaltene Elemente aber anzeigen

Hallo zusammen,

ich würde gern wissen ob und wie man folgende Aufgabe lösen kann:

Ich möchte alle Elemente einer Sie ausblenden, bis auf ein paar wenige, die angezeigt werden sollen. Ich habe es versucht mit

  
* {display: none;}  
div.beispiel {display: block!important;}  

Das scheint aber nicht zu funktionieren. Jedes einzelne Element mit display: none; zu belegen geht natürlich, aber elegant ist das nicht. Gibt es eine bessere Lösung? Mit visibility ist es auch nicht so recht schön, da die Elemente trotzdem ihren Platz auf der Site beeanspruchen.

Danke im Voraus

  1. Gibt es eine [...] Lösung?

    Vorausgesetzt sämtliche div-Elemente die du einblenden willst haben die Klasse "Beispiel" und es sind eine Einzigen beiden Deklarationsblöcke, funktioniert das einwandfrei

    Sowohl der Element- als auch der Klassen-Selektor hat eine höhere Spezifität als der * Selektor - und !important ist sowieso gewichtiger als kein important

    Alternativ zum "alle ausblenden und ein paar wieder einblenden" kannst du natürlich nur diejenigen ausblenden, die auszublenden sind - oder z.B: mit dem not()-Selektor arbeiten.

    Fazit: du machst etwas falsch - aber ohne einen entsprechenden Anwendungsfall ist eine Antwort nicht möglich.

    1. Hi,

      Vorausgesetzt sämtliche div-Elemente die du einblenden willst haben die Klasse "Beispiel" und es sind eine Einzigen beiden Deklarationsblöcke, funktioniert das einwandfrei

      Nein.

      body bekommt display: none;
      Da ist es dann egal ob darin irgendwelche Elemente sind die display:block haben.

      ~dave

      1. @@dave:

        nuqneH

        body bekommt display: none;

        Nicht nur der. Sag ich’s doch: „Alle, bis hoch zum Wurzelelement.“

        Qapla'

        --
        Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
      2. body bekommt display: none;
        Da ist es dann egal ob darin irgendwelche Elemente sind die display:block haben.

        Ich ging zumindest davon aus, dass mit "funktioniert nicht" ein leerer Anzeigebereich gemeint ist und noch ein paar andere Regeln existieren :p

    2. Alternativ zum "alle ausblenden und ein paar wieder einblenden" kannst du natürlich nur diejenigen ausblenden, die auszublenden sind - oder z.B: mit dem not()-Selektor arbeiten.

      Das mit dem not()-Selektor klingt interessant. Wie wendet man das an?

      Fazit: du machst etwas falsch - aber ohne einen entsprechenden Anwendungsfall ist eine Antwort nicht möglich.

      http://team-rpx.de/sebworldebay.php?produkt=999999

      Es geht darum, nur den Bereich mit den Bildern anzeigen zu lassen. (auf diesen wird von eBay-Angeboten aus verlinkt. Man darf von eBay-Angeboten nicht auf die Shop-Seite verweisen, aber zu einer Unterweise mit weiterführenden Informationen, daher diese Lösung.)

      Ich hole also mit

      <?php  
      $sebworld = file_get_contents('http://shop.strato.de/epages/63450760.preview/de_DE/?ObjectPath=/Shops/63450760/Products/' . urlencode($_GET["produkt"]));  
      ?>
      

      Den Inhalt der entsprechenden Produktseite und muss aber alles, ausser dem BEreich mit den Bildern ausblenden.

  2. @@picknikker:

    nuqneH

    • {display: none;}

    div.beispiel {display: block!important;}

    
    >   
    > Das scheint aber nicht zu funktionieren.  
      
    Du malst einen Strich auf ein Blatt Papier. Du lässt das Blatt Papier verschwinden. Was siehst du noch von deinem Strich? Eben.  
      
    Du musst auch alle Vorfahrenelemente von div.beispiel sichtbar machen – und evtl. deren Geschwister unsichtbar. Alle, bis hoch zum Wurzelelement.  
      
    Qapla'
    
    -- 
    Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
    
  3. Hallo picknikker,

    du kommst mir vor, wie jemand, der einen weißen Manta geschenkt bekommen hat, obwohl er immer von einem schwarzen Golf geträumt hat. Und jetzt versuchst du alles, was nach Manta aussieht, unsichtbar zu machen und statt dessen Golfteile nach zurüsten. ...

    Willst du uns nicht mal verraten, was "wirklich" dein Problem ist?
    Warum redest du nicht mit dem Shop-Anbieter?

    Gruß, Jürgen

    PS Hier die Links, um den Zusammenhang zu sehen:

    https://forum.selfhtml.org/?t=210556&m=1435410
    https://forum.selfhtml.org/?t=210575&m=1435654