Wie kann ein Div an der Spitze seines übergeordneten Elements ausgerichtet werden, wobei das Inline-Block-Verhalten beibehalten wird?

171

Siehe: http://jsfiddle.net/b2BpB/1/

F: Wie können Sie Box1 und Box3 an der Oberseite des übergeordneten Div ausrichten boxContainer?

#boxContainerContainer {
  background: #fdd;
  text-align: center;
}

#boxContainer {
  display: inline-block;
  border: thick dotted #060;
  margin: 0px auto 10px auto;
  text-align: left;
}

#box1 {
  width: 50px;
  height: 50px;
  background: #999;
  display: inline-block;
}

#box2 {
  width: 50px;
  height: 100px;
  background: #999;
  display: inline-block;
}

#box3 {
  width: 50px;
  height: 50px;
  background: #999;
  display: inline-block;
}

Hilfe sehr geschätzt ...

Bestätigung: Diese Frage wurde aus einer Antwort abgeleitet, die zuvor von https://stackoverflow.com/users/20578/paul-d-waite gegeben wurde : Ein CSS-Element wird automatisch auf die Inhaltsbreite angepasst und gleichzeitig zentriert

tur130
quelle

Antworten:

378

Probieren Sie die vertical-alignCSS-Eigenschaft aus.

#box1 {
    width: 50px;
    height: 50px;
    background: #999;
    display: inline-block;
    vertical-align: top; /* here */
}

Wende es auch an #box3.

Nashorn
quelle
3
Wenn Sie eine universelle Lösung wünschen, sollten Sie den Selektor vertical-align: top;to anwenden #boxContainer div. Es wendet den Stil auf alle divElemente innerhalb des boxContainer.
MarthyM
30

Wie andere gesagt haben, vertical-align: topist dein Freund.

Als Bonus gibt es hier eine gegabelte Geige mit zusätzlichen Verbesserungen, die es auch in Internet Explorer 6 und Internet Explorer 7 funktionieren lassen;)

Beispiel: hier

clairesuzy
quelle
6

Sie können float hinzufügen: left; für jede der Boxen (Box1, Box2, Box3).

http://jsfiddle.net/Wa4ma/

Alex Emilov
quelle
Wie dieser besser als vertikal ausrichten +1
Jürgen
Warum in aller Welt funktioniert das? Ich mag es, aber ich würde es auch gerne verstehen.
Kevin Bullaughey
-1

Oder Sie können einfach etwas Inhalt zum div hinzufügen und die Inline-Tabelle verwenden

Robert ging
quelle
Warum eine Tabelle hinzufügen, wenn Sie vertikal ausrichten können?
Tcoulson
1
@tcoulson Ich habe nicht gesagt, dass Sie eine Tabelle verwenden sollen. Ich habe gesagt, dass Sie display: inline-table verwenden können. Diese Tabelle hatte vor 3 Jahren eine bessere Browserunterstützung und machte es einfach, sie vertikal auszurichten.
Robert ging