• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

CSS - DIV's gelichmässig verteilen

MisterG

Golden Delicious
Registriert
29.06.07
Beiträge
8
Moin,

Ich würde gerne DIV's gleichmässig auf einer Zeile verteilen. Jetzt mit diesem Code (siehe unten) sind alle gleich hintereinander gereiht. Es sollte auch noch funktionieren wenn es 4 DIV's der Klasse "Text" gibt.

Es hat Ähnlichkeiten mit Blocksatz, leider funktioniert es nicht mit text-align: justify;

CSS:
Code:
#Container
{
   float: left;
   width: 600px;
   border: 1px solid black;
}
.Text
{
   float: left;
   border: 1px solid black;
}
HTML:
Code:
<DIV id="Container">
   <DIV class="Text">Text1</DIV>
   <DIV class="Text">Text2</DIV>
   <DIV class="Text">Text3</DIV>
</DIV>
Hat jemand von euch eine Idee, wie man das machen könnte?

Gruss,
MisterG
 
Definiere bei .text auch noch display: inline;
 
Mein Link war nicht das was du suchst. Du willst ja beliebig viele DIV's dran hängen können...
 
Das ist uebrigens genau die Stelle, an der ich bisher immer wieder gedacht habe: "Die CSS-Glaubenskrieger koennen mich am Abend besuchen -- jetzt setzt's 'ne Layout-Tabelle." :D
 
Der OT-Peter hat wieder mal mit seiner Layout-Tabelle zugeschlagen. Ich verwende zwar auch keine (ausser beim blog, aber den habe ich nicht selber codiert :innocent:), aber nur, um dem alten Spleen vom Speicher-Sparen nachzugehen. :D

@MisterG: Ich würde bei der .container-Definition keine feste Breite angeben (du hast da 600px). Mach es viel lieber mit Prozent oder einer Margin-Defintion. :)
 
Der OT-Peter [...]
Und "OT" steht hier fuer "on topic". Ernsthaft: Ich kenn' einfach keinen Weg, mittels divs und CSS auf einer Breite von x Pixeln y Einheiten, deren jeweilige Breite von der Breite ihres Inhalts abhaengt und die den verbliebenen Rest gleichmaessig auffuellen, passgenau anzuordnen.

Mit einer Tabelle hingegen geht das quasi von selbst.
 
Jetzt schnall ich das ganze! :-!

Definiere folgendes als CSS:
Code:
#Container
{
   float: left;
   width: [B]98%;[/B]
   border: 1px solid black;
}
.Text
{
   border: 1px solid black;
   [B]width: 33%;
   display: inline[/B]
}

Klappts? ;)
 
Hoffentlich passt das fuer den Originalfrager. :-)

Was mich betrifft, ist diese Loesung der Tabelle aus zwei Gruenden hoffnungslos unterlegen:

  • Man muss die 33% explizit angeben. Mehr Zellen bedeuten also Umrechnungsaufwand. (Na gut, das liesse sich via PHP loesen, aber es ist halt viel umstaendlicher.)
  • Die Breite der einzelnen Zellen ist eben nicht von ihrem jeweiligen Inhalt abhaengig.
 
Das ging aber schnell!

Dann werde ich es wohl mit einer Tabelle realisieren müssen.

@flöschen: Vielen Dank für den Tipp mit display: inline. Die feste Breite vom Container ist aber so vorgegeben worden, bleibt also so.

Vielen Dank euch dreien für die schnelle Hilfe, oder für die Aussage das es keine Hilfe gibt;-)

Grüsse,
MisterG

Edit: da kam ja noch mehr. Das mit den 33% funktioniert bei mir nicht. Aber wie Peter schon gesagt hat, ist da sowiso die Zahl fix...
Werde es wohl mit einer Tabelle lösen müssen.
 
Also eine Tabelle bedeutet erstens mal viel mehr Quellcode und zweitens auch noch einiges zu rendern. Im übrigen baut sich die Seite auch noch langsamer auf. ;)
nein, ich habe nichts gegen Tabellen, löse es aber wenn möglich anders. ;)
 
So funktioniert es mit den 33%, wenn ich es als inline definiere funktioniert das nicht.

Code:
#Container
{
   float: left;
   width: 98%;
   border: 1px solid black;
}
.Text
{
    float: left;
    border: 1px solid black;
    width: 33%;
}

Werde nun mal schauen wie ich es machen werde. Eigentlich wollte ich ja vom Tabellen-Layout weg...

Euch auf jeden Fall vielen Dank.

Gruss,
MisterG