html - "display: table"和 "float:left"不考虑边距

标签 html css responsive-design mobile-safari chrome-ios

我有一堆排成一行的按钮,内容在里面垂直居中:

.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;
}

但出于某种原因,在移动浏览器(iOS 8.3 上的 Safari 8 和 Chrome 41)上查看时,按钮不考虑边距。

如果我将 display: table 更改为 display: inline-block 那么边距就可以了,但是我失去了通过使用 display 实现的垂直居中: .button-inner 上的表格单元格

(我可以使用 position: absolute 垂直居中 .button-inner,但它需要对媒体查询进行一些调整以确保它很好地居中。)

知道为什么会出现这种 margin 问题吗?

最佳答案

:) 也不要忘记添加供应商前缀。

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

.button-inner {
  text-align: center;
}

关于html - "display: table"和 "float:left"不考虑边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31079126/

相关文章:

html - 如何让我的 <li> 在我的导航中居中

javascript - 选择彼此的依赖(年龄的选择)

javascript - CSS/JS : Is it possible to scale text accurately?(不仅仅是改变字体大小)

html - 我怎样才能让我的网站在 1920 x 1080 和 3840 × 2160 上看起来完全一样

html - css 属性 float left 没有按预期工作

html - 如何将子元素分成多行/多行?

javascript - Jquery slider ;使容器透明,如何隐藏图像溢出?

javascript - 从左侧jquery滑动动画条位置

java - 如何识别 Selenium WebDriver 中没有任何唯一标识符/属性的元素?

css - 需要自动宽度的响应式 div