css - 如何将另一个div中的div与文本垂直对齐?

标签 css html

我正在尝试将一个 div 在父 div 中垂直居中,其中存在文本。这是我得到的:

enter image description here

它看起来有点滑稽,因为文本似乎正确居中,但黄色框却不是。我就是这样做的:

.btn {
      background-color: #ccc;
      color: #000;
      width: 200px;
      border: solid 1px black;
      text-align: center;
      vertical-align: middle;
      display: table-cell;
}
.square {
      background-color: #ff0;
      width: 20px;
      height: 20px;
      display: inline-block;
}
.inner {
      display: inline-block;
}

<div class="btn">
  <div class="square"></div>
  <div class="inner">Hello</div>
  <div class="square"></div>
</div>

我对“table-cell”+ vertical-align 的使用是否有效?我只关心 html5,我真的只是针对最新版本的移动 safari,所以不必担心旧浏览器等。

这是一个 js fiddle :

http://jsfiddle.net/TrJqF/

谢谢

最佳答案

在正方形类上设置vertical-align:top。额外的空间来自为落在该行下方的后代文本元素(如 j、g、y 等)保留的空间。

jsFiddle example

关于css - 如何将另一个div中的div与文本垂直对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14417979/

相关文章:

html - 分别设置两个表的样式

javascript - 向特定跨度显示错误的问题

具有多个值的 html 类属性(空格分隔)

javascript - 向响应式移动设备添加类

javascript - 进度条使用样式更新进度

javascript - 使用 css 选择器,如何使用它的类获取元素的第 n 个子元素

CSS :selector doesn't work with different tags?

html - 导航栏中药丸的样式

html - 同一类的嵌套 div,在悬停时显示子项

php - HTML (PHP) 链接 CSS 文件