Як вирівняти діва до вершини батьків, але дотримуючись його вбудованої поведінки?


171

Дивіться: http://jsfiddle.net/b2BpB/1/

З: Як ви можете змусити box1 та box3 вирівняти верхню частину батьківського поділу 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;
}

Допомога високо оцінена ...

Підтвердження: це запитання відхилено від відповіді, попередньо наданої https://stackoverflow.com/users/20578/paul-d-waite : отримання елемента CSS для автоматичного зміни розміру до ширини вмісту і в той же час по центру

Відповіді:


378

Спробуйте vertical-alignвластивість CSS.

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

Застосовуйте і його #box3.


3
Якщо ви хочете універсальне рішення, слід застосувати vertical-align: top;до #boxContainer divселектору. Він застосовує стиль до всіх divелементів всередині boxContainer.
MarthyM

30

Як казали інші, vertical-align: topце твій друг.

Як бонус, тут є роздвоєна скрипка з додатковими вдосконаленнями, завдяки яким вона також працює в Internet Explorer 6 та Internet Explorer 7;)

Приклад: тут




-1

Або ви можете просто додати деякий вміст до div та використовувати вбудовану таблицю


навіщо додавати таблицю, коли можна використовувати вертикальне вирівнювання?
tcoulson

1
@tcoulson Я не сказав використовувати таблицю, я сказав, що ви можете використовувати display: вбудовану таблицю, яка 3 роки тому мала кращу підтримку браузера і полегшила вертикальне вирівнювання.
Роберт Пішов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.