Bagaimana cara menyelaraskan div ke bagian atas induknya tetapi tetap mempertahankan perilaku inline-block-nya?

171

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

T: Bagaimana Anda bisa membuat box1 dan box3 sejajar dengan bagian atas div induk 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;
}

Membantu banyak dihargai ...

Pengakuan: Pertanyaan ini diambil dari jawaban yang sebelumnya diberikan oleh https://stackoverflow.com/users/20578/paul-d-waite : Mendapatkan elemen CSS untuk secara otomatis mengubah ukuran ke lebar konten, dan pada saat yang sama dipusatkan

tur130
sumber

Jawaban:

378

Coba vertical-alignproperti CSS.

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

Terapkan juga untuk itu #box3.

badak
sumber
3
Jika Anda menginginkan solusi universal, Anda harus menerapkannya vertical-align: top;ke #boxContainer divpemilih. Itu berlaku gaya untuk semua divelemen di dalam boxContainer.
MarthyM
30

Seperti yang orang lain katakan, vertical-align: topadalah temanmu.

Sebagai bonus di sini adalah biola bercabang dua dengan peningkatan tambahan yang membuatnya bekerja di Internet Explorer 6 dan Internet Explorer 7 juga;)

Contoh: di sini

clairesuzy
sumber
6

Anda dapat menambahkan float: left; untuk masing-masing kotak (box1, box2, box3).

http://jsfiddle.net/Wa4ma/

Alex Emilov
sumber
Seperti ini lebih baik daripada vertical-align +1
Jurgen
Mengapa di dunia ini bekerja? Saya menyukainya, tetapi saya juga ingin memahaminya.
Kevin Bullaughey
-1

Atau Anda bisa menambahkan beberapa konten ke div dan menggunakan inline-table

Robert Went
sumber
mengapa menambahkan tabel saat Anda dapat menggunakan penyelarasan vertikal?
tcoulson
1
@ tcoulson Saya tidak mengatakan menggunakan tabel, saya katakan Anda dapat menggunakan tampilan: inline-table, yang, 3 tahun yang lalu memiliki dukungan browser yang lebih baik dan membuatnya mudah untuk meluruskan vertikal.
Robert Went