Linuchs: vorheriges Element

Hallo,

wie wird das vorherige Element angesprochen? Ich habe

div#inhalt p:nth-child(odd) {  
  float: right;  
}  
div#inhalt p.linie:first-letter {  
  color: #f00;  
  font-size: 110%;  
}  

und

<p>xx</p><p class=linie>Aber dich gibt's nur einmal für mich</p>  
<p>xx</p><p>Am Strande der Donau</p>  

Ich möchte vor <p class=linie> ein margin-top haben, das müsste ich ja dem vorangehenden <p> zuordnen. Wie geht das?

Linuchs

  1. Gar nicht. Mittels CSS kannst du im DOM Baum nicht zurück gehen.
    Alternative wäre eine andere HTML Struktur oder JS.

    Gruß
    MRT-Rex

    1. Moin,

      Gar nicht. Mittels CSS kannst du im DOM Baum nicht zurück gehen.

      Schönes Zitat dazu vom WebKit-Entwickler Dave Hyatt:

      "With parent selectors it becomes extremely easy to accidentally cause a document-wide grovel. People can and will misuse this selector. Supporting it is giving people a whole lot of rope to hang themselves with."

      Grüße Marco

      --
      Ich spreche Spaghetticode - fließend.
      1. @@misterunknown:

        nuqneH

        Gar nicht. Mittels CSS kannst du im DOM Baum nicht zurück gehen.

        Noch nicht.

        Schönes Zitat dazu vom WebKit-Entwickler Dave Hyatt:

        "With parent selectors it becomes extremely easy to accidentally cause a document-wide grovel. People can and will misuse this selector. Supporting it is giving people a whole lot of rope to hang themselves with."

        Dennoch ist der Strick in Selectors Level 4 vorgesehen.

        Qapla'

        --
        „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  2. Hi,

    <p>xx</p><p class=linie>Aber dich gibt's nur einmal für mich</p>

    <p>xx</p><p>Am Strande der Donau</p>

    
    >   
    > Ich möchte vor <p class=linie> ein margin-top haben, das müsste ich ja dem vorangehenden <p> zuordnen.  
      
    Wieso? Wenn p.linie ein margin-top haben soll, dann gibst du p.linie ein margin-top …  
      
    MfG ChrisB  
      
    
    -- 
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    
    1. Om nah hoo pez nyeetz, ChrisB!

      Wieso? Wenn p.linie ein margin-top haben soll, dann gibst du p.linie ein margin-top …

      Das wird wahrscheinlich ein float-problem sein.

      Matthias

      --
      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen KA und Kadaver.

    2. Hi,

      <p>xx</p><p class=linie>Aber dich gibt's nur einmal für mich</p>

      <p>xx</p><p>Am Strande der Donau</p>

        
      
      > Wieso? Wenn p.linie ein margin-top haben soll, dann gibst du p.linie ein margin-top …  
        
      Nöö, die zugehörige Seitrenzahl xx hat diesen margin-top dann nicht.  
        
      Linuchs
      
      1. Om nah hoo pez nyeetz, Linuchs!

        Wieso? Wenn p.linie ein margin-top haben soll, dann gibst du p.linie ein margin-top …

        Nöö, die zugehörige Seitrenzahl xx hat diesen margin-top dann nicht.

        Im Normalfall sind p-Elemente Blockelemente. Das heißt, sie stehen untereinander. Abstand zwischen ihnen kannst du erreichen mit margin-top für den unteren oder margin-bottom für den oberen. Bei dir ist aber float im Spiel.

        Also: Zeig mal.

        Matthias

        --
        Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Boot und Bootes.

      2. Hi,

        Hi,

        <p>xx</p><p class=linie>Aber dich gibt's nur einmal für mich</p>

        <p>xx</p><p>Am Strande der Donau</p>

        
        >   
        > > Wieso? Wenn p.linie ein margin-top haben soll, dann gibst du p.linie ein margin-top …  
        >   
        > Nöö, die zugehörige Seitrenzahl xx hat diesen margin-top dann nicht.  
          
        Abgesehen davon, dass du diesen Zusammenhang nicht erwähntest – \*warum\* steht die Seitenzahl in einem P-Element?  
          
        MfG ChrisB  
          
        
        -- 
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        
  3. Om nah hoo pez nyeetz, Linuchs!

    div#inhalt

    div#inhalt sollte überspezifiziert sein, es sei denn du verwendest dieses stylesheet auch für eine Seite, auf der es ein p#inhalt gibt.

    #inhalt sollte reichen

    Du solltest für ein neues Projekt statt <div id="inhalt"> <main role="main"> verwenden.

    main sollte reichen

    Matthias

    --
    Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Beil und Beilage.