Wahlweise ein- oder zweispaltig
Ver2felt
- design/layout
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
[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
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ß
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
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
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