eZyloT: Text ohne <p> ansprechen

Hallo Comm,

Ich habe folgenden HTML-Quelltext..

  
<html>  
    <head>  
    </head>  
  
    <body>  
        <div>  
            <p>Sichtbar<\p>  
        </div>  
        Unsichtbar  
    </body>  
</html>  

(Ist jetzt nur für das Beispiel erstellt)

..und ich möchte mit CSS den Text der (absichtlich) ohne den <p>-Tag steht unsichtbar machen  und den Text im DIV sichtbar lassen.
Wiegesagt will ich es ohne Veränderung des HTML schaffen.

Ansätze wie

  
body *  
{  
    display:none;  
}  
body div  
{  
    display:block;  
}  

habe ich bereits vergeblich versucht.

Bitte versorgt mich mit Lösungsvorschlägen.

Liebe Grüße,
Florian

  1. Hallo,

    <html>

    <head>
        </head>

    <body>
            <div>
                <p>Sichtbar<\p>
            </div>
            Unsichtbar
        </body>
    </html>

    
    > ..und ich möchte mit CSS den Text der (absichtlich) ohne den <p>-Tag steht unsichtbar machen  und den Text im DIV sichtbar lassen.  
    > Wiegesagt will ich es ohne Veränderung des HTML schaffen.  
      
    das ist nicht möglich. CSS kann nur Elemente selektieren und dadurch auf deren Inhalt wirken, du müsstest in diesem Fall also das body-Element selektieren und unsichtbar machen - aber dann kann nicht gleichzeitig ein Kindelement davon wieder sichtbar sein. Du kannst nicht eine Mauer verschwinden lassen, während das Graffitti darauf sichtbar bleiben soll.  
      
    
    > Bitte versorgt mich mit Lösungsvorschlägen.  
      
    Es gibt keinen, ohne das Markup zu ändern.  
      
    Ciao,  
     Martin  
    
    -- 
    Frage an Radio Eriwan: Kann man eigentlich ein guter Kommunist und gleichzeitig ein guter Christ sein?  
    Radio Eriwan antwortet: Im Prinzip ja - aber warum sollte man sich das Leben doppelt schwer machen?  
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    
    1. Om nah hoo pez nyeetz, Der Martin!

      das ist nicht möglich. CSS kann nur Elemente selektieren und dadurch auf deren Inhalt wirken, du müsstest in diesem Fall also das body-Element selektieren und unsichtbar machen - aber dann kann nicht gleichzeitig ein Kindelement davon wieder sichtbar sein. Du kannst nicht eine Mauer verschwinden lassen, während das Graffitti darauf sichtbar bleiben soll.

      verschwinden lassen nicht, aber unsichtbar machen ;-)

      Vielleicht reicht ja das Setzen der visibilty-Eigenschaft. Möglicherweise in Verbindung mit height.

      Matthias

      --
      1/z ist kein Blatt Papier.

      1. Moin,

        Du kannst nicht eine Mauer verschwinden lassen, während das Graffitti darauf sichtbar bleiben soll.
        verschwinden lassen nicht, aber unsichtbar machen ;-)
        Vielleicht reicht ja das Setzen der visibilty-Eigenschaft. Möglicherweise in Verbindung mit height.

        ich bin gespannt - aber nach meiner Kenntnis ist es nicht möglich, den direkten Elementinhalt (inline-Inhalt) auszublenden, während Kindelemente unbeeinflusst bleiben sollen. Man kann vielleicht Krücken bauen, etwa die Schriftfarbe gleich der Hintergrundfarbe setzen oder die Schriftgröße auf 0 setzen, und das für die Kindelemente wieder "korrigieren". Aber mit eventuell lästigen Nebenwirkungen. Zum Beispiel dass der so unsichtbar gemachte Text immer noch normal markiert werden kann.

        So long,
         Martin

        PS: Mein Beispiel war nicht ganz passend - der OP möchte ja die Mauer *mit* dem Graffiti (Textinhalt) entfernen, aber die Plakate (Kindelemente) hängenlassen. Ohne die berühmten Siemens-Lufthaken ...

        --
        Der geistige Horizont ist der Abstand zwischen Brett und Hirn.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Om nah hoo pez nyeetz, Der Martin!

          Du kannst folgendes im Firebug ausprobieren:

          .nachricht-section {visibility: hidden;}  
          .nachricht-section * {visibility: visible;}
          

          Matthias

          --
          1/z ist kein Blatt Papier.

          1. Moin,

            .nachricht-section {visibility: hidden;}

            .nachricht-section * {visibility: visible;}

              
            [Das funktioniert](http://misterunknown.de/test/unsichtbar.html), zumindest im aktuellen Chrome, Firefox und im IE9 (alles andere ungetestet).  
              
            Grüße Marco
            
            -- 
            Ich spreche Spaghetticode - fließend.
            
            1. Hallo,

              .nachricht-section {visibility: hidden;}

              .nachricht-section * {visibility: visible;}

              
              > [Das funktioniert](http://misterunknown.de/test/unsichtbar.html), zumindest im aktuellen Chrome, Firefox und im IE9 (alles andere ungetestet).  
                
              Opera auch, obwohl es nach meinem Verständnis nicht sein dürfte. Für mich ist es ein Widerspruch, wenn ein Element (samt seines Inhalts) unsichtbar sein soll, seine Kindelemente aber wieder sichtbar.  
                
              Ciao,  
               Martin  
              
              -- 
              [Es existiert kein Weg](http://community.de.selfhtml.org/zitatesammlung/zitat40), "für" etwas zu optimieren, sondern nur gegen alles andere.  
                (Cheatah)  
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              
              1. Opera auch, obwohl es nach meinem Verständnis nicht sein dürfte. Für mich ist es ein Widerspruch, wenn ein Element (samt seines Inhalts) unsichtbar sein soll, seine Kindelemente aber wieder sichtbar.

                Er klebt seine Plakate halt auf Fensterscheiben...

                Gruß
                Kalk

              2. Moin,

                Opera auch, obwohl es nach meinem Verständnis nicht sein dürfte. Für mich ist es ein Widerspruch, wenn ein Element (samt seines Inhalts) unsichtbar sein soll, seine Kindelemente aber wieder sichtbar.

                Naja, ich bin mir unsicher, wie ich dazu stehen soll. Prinzipiell hast du recht, aber die Kindelemente erben eben nur die Eigenschaften des Elternelements. Wenn man nun direkt in diesen Vererbungsprozess einwirkt, indem die Eigenschaft überschrieben wird, warum sollte es dann nicht gehen. Es ist sicherlich nicht zu empfehlen.
                Aber warum nicht, wenn man genau weiß, was man tut...

                Grüße Marco

                --
                Ich spreche Spaghetticode - fließend.
              3. Opera auch, obwohl es nach meinem Verständnis nicht sein dürfte. Für mich ist es ein Widerspruch, wenn ein Element (samt seines Inhalts) unsichtbar sein soll, seine Kindelemente aber wieder sichtbar.

                Über die Logik lässt sich streiten, ich teile da Tabellenkalks Auffassung. Praktisch ist es allemal und standardkonform auch.

            2. Om nah hoo pez nyeetz, misterunknown!

              Zu Martins Ehrenrettung sei gesagt, für display: none; ist seine Argumentation korrekt.

              Es ist aber keinesfalls gesagt, ob dieses Ausblenden ausreichend ist, weil der Platz ja trotzdem okkupiert wird. Deshalb zusätzlich height: 0. Und ob das so klappt wie es soll, ist sehr von der tatsächlichen Seite abhängig.

              Matthias

              --
              1/z ist kein Blatt Papier.

              1. Hallo,

                Zu Martins Ehrenrettung sei gesagt, für display: none; ist seine Argumentation korrekt.

                für den Fall wäre ich mir auch sicher gewesen, dass es so sein muss; bei visibility:hidden kann ich nicht mit Bestimmtheit sagen, ob das Verhalten der Browser hier korrekt ist.

                Es ist aber keinesfalls gesagt, ob dieses Ausblenden ausreichend ist, weil der Platz ja trotzdem okkupiert wird. Deshalb zusätzlich height: 0.

                Und overflow:visible, just in case. ;-)

                Ciao,
                 Martin

                --
                F: Kennt jemand einen Automobilfilm?
                A: Der mit dem Golf tankt.
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(