"display: table" и "float:left" без учета полей

У меня есть несколько кнопок в ряд, с содержимым по центру вертикально:

.button {
  width: 18%;
  margin: 0 1%;
  height: 160px;
  padding: 10px;
  display: table;
  float: left;
}

.button-inner {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
}

Но по какой-то причине кнопки не учитывают поля при просмотре в мобильных браузерах (Safari 8 и Chrome 41 в iOS 8.3).

Если я изменю display: table в display: inline-block тогда поля в порядке, но тогда я теряю вертикальное центрирование, достигнутое с помощью display: table-cell на .button-inner,

(Я мог бы вертикально по центру .button-inner с использованием position: absolute, но это требует некоторой настройки медиазапросов, чтобы обеспечить хорошее центрирование.)

Любые идеи, почему эта проблема маржи происходит?

1 ответ

Решение

Надеюсь, это поможет:) Также не забудьте добавить префиксы поставщиков.

.button {
  width: 18%;
  margin: 0 1%;
  height: 160px;
  padding: 10px;
  display: flex;
  align-items: center;
  float: left;
}

.button-inner {
  text-align: center;
}
Другие вопросы по тегам