Hallo,
sagt mal wie zentriere ich - als ganzes - ein oder mehrere Blockelemente, die nebeneinander stehen?
Stellt euch eine Liste von Mitarbeitern ("Untergebene") vor. Die Darstellung ist Bild, daneben Name + Team, als Blockelement. Maximal 3 dieser Blockelemente können nebeneinander stehen. Gibt es weniger pro "Zeile", sollen diese zwei oder dieser eine Mitarbeiter zentriert werden.
float geht nicht, da es kein float:center gibt. Ich hab es jetzt sehr kompliziert mit PHP gelöst:
PHP-Code:
<?php
$u1 = new User();
$inferiors->push($u1);
$u2 = new User();
$inferiors->push($u2);
$count = $inferiors->count();
foreach ($inferiors as $index => $inferior):
$open = ($index % 3 == 0);
$close = ($index % 3 == 2) || ($index + 1 == $count);
$size = $open && ($rest = (min($index + 3, $count) - $index)) ? $rest : $size;
#Gf_Debug::stop($index, $count);
if ($open):
?>
<div style="margin:0 auto;width:<?php echo $size * 33 ?>%;border:1px solid green">
<?php
endif;
?>
<div style="float:left;width:<?php echo 99 / $size ?>%;border:1px solid red">
<?php echo $inferior->toHtmlPreview()?>
</div>
<?php
if ($close):
?>
</div>
<?php
endif;
endforeach;
?>
Das berechnet pro "Zeile" die Anzahl der Einträge ($size), setzt den äußeren Container auf 33 * $size Prozent und die inneren Container anteiligt daran auf die Breite (bei $size = 1 auf 100%, bei 2 = 50%, bei 3 = 33%)
Code:
1: __X__
2: _X_X_
3: X_X_X
4: X_X_X
__X__
5: X_X_X
_X_X_
usw.
Geht das nicht einfacher mit HTML/CSS-only?