Ver2felt: Wahlweise ein- oder zweispaltig

Hi,

ich habe eine Webseite, die mal einspaltig und mal zweispaltig sein kann. Das hängt von den PHP- Parametern ab, mit der sie aufgerufen wird.

+----------+ +--------------------+
| links    | | rechts oder einzig |
|          | |                    |
+----------+ |                    |
             |                    |
             +--------------------+

Die linke Spalte ist meistens kürzer als die rechte und kann entfallen. Dann soll die rechte (also jetzt einzige) Spalte die volle Breite einnehmen.

Mit Tabelle wäre das kein Problem. Wenn nur eine Spalte da ist, hat sie automatisch die volle Breite.

Aber mit <div> bastel ich jetzt schon eine Weile, es will nicht klappen. Entweder ich gebe der rechten Spalte einen linken Rand, den sie natürlich auch dann hat, wenn sie allein ist, oder sie "floated" um die linkie Spalte oder - noch schlimmer - sie beginnt erst unterrhalb der linken Spalte.

Die linke Spalte:
.lft_pr24 {width:15em; float:left}

Die rechte Spalte:
.rgt_pr74 {float:right}

In der Konstellation ist die rechte Spalte solo okay, beginnt aber unterhalb der linken, wenn die vorhanden ist.

Gruß, Ver2felt

  1. [latex]Mae  govannen![/latex]

    ich habe eine Webseite, die mal einspaltig und mal zweispaltig sein kann. Das hängt von den PHP- Parametern ab, mit der sie aufgerufen wird.

    Dann gib dem div der rechten Spalte per PHP eine (andere|weitere) Klasse mit, wenn die linke Spalte entfällt.
    Im CSS kannst du dann für beide Zustände Angaben machen und die jeweils passende wird automatisch angewendet.

    Stur lächeln und winken, Männer!
    Kai

    --
    Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
    in Richtung "Mess up the Web".(suit)
    SelfHTML-Forum-Stylesheet
    1. Dnke für die schnelle Antwort, probiere ich geich mal aus.

      Ich habe den divs mal einen Rand verpasst, und kann jetzt sehen, dass der rechte div gar nicht rechts vom linken liegt, sondern auch am linken Bildschirmrand beginnt.

      Nur sein Inhalt fließt um den linken div. Wie könnte ich den rechten div dazu zwingen, rechts vom linken zu liegen?

      .lft_pr24 {width:15em; float:left; margin-right:1em; border:1px dotted #f00}
      .rgt_pr74 {border:1px dotted #00f}

      Gruß

      1. Mein Freund ist einfach die Tabelle. Zwar nicht über die ganze Seite, aber für die rechte Spalte.

        Statt
        <div>
        ...
        </div>
        um die rechte Spalte habe ich jetzt
        <table><tr><td>
        ...
        </td></tr></table>

        Es funzt. Sorry, wenn ich gegen die edlen Regeln verstoße, aber die Browser wollen's so.

        Nicht mehr Ver2felt

        1. Hi,

          Es funzt. Sorry, wenn ich gegen die edlen Regeln verstoße, aber die Browser wollen's so.

          Du solltest an deiner Unfähigkeit mit CSS umzugehen nicht den Browsern die Schuld geben.

          ~dave

        2. Hallo

          Mein Freund ist einfach die Tabelle. Zwar nicht über die ganze Seite, aber für die rechte Spalte.

          Bekäme der (offensichtlich) rechte Block einen Abstand nach Links – hier wohl 16em – hättest du den Abstand, den du willst.

          .lft_pr24 {width:15em; float:left; margin-right:1em; border:1px dotted #f00}  
          .rgt_pr74 {margin-left:16em; border:1px dotted #00f}
          

          Es funzt. Sorry, wenn ich gegen die edlen Regeln verstoße, aber die Browser wollen's so.

          Die Browser wollen das sowas von nicht.

          Tschö, Auge

          --
          Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
          Terry Pratchett, "Wachen! Wachen!"
          ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
          Veranstaltungsdatenbank Vdb 0.3