css - 当容器小于行高时如何垂直对齐文本?

标签 css

我有一个小的 div (26 x 26px),想添加一个字体大小为 30px 的字符。我想在框中垂直对齐此文本。但是,即使在设置了 line-heightvertical-align 属性之后,我也无法将文本提升到容器的中心。

有没有一种简单的方法可以做到这一点,还是我需要求助于嵌套的 div 和转换?

.zoom button {
    width: 26px;
    height: 26px;
    border: 1px solid #bcbcbc;
    padding: 0;
    font-size: 30px;
    /** these don't see to help **/
    line-height: 26px;
    vertical-align: middle;
 }
<div class="zoom">
  <button>-</button>
  <button>+</button>
</div>

最佳答案

问题在于减号。您可以考虑一个伪元素来修复它,您将在其中应用 vertical-align 并调整其 line-height

请注意,line-height:0 将完成按钮元素的工作,因为内容默认居中对齐。我还添加了 vertical-align: top 以避免按钮之间的错位

.zoom button {
  width: 26px;
  height: 26px;
  border: 1px solid #bcbcbc;
  padding: 0;
  font-size: 30px;
  line-height: 0;
  vertical-align: top;
}

.zoom button:first-child::before {
  content: "";
  vertical-align: middle;
  line-height: 20px; /*any value between 17px and 24px will do the job (don't ask me why ...)*/
}
<div class="zoom">
  <button>-</button>
  <button>+</button>
</div>

关于css - 当容器小于行高时如何垂直对齐文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57664757/

相关文章:

html - 媒体查询不工作显示 :none to display:inline

javascript - jQuery 检测固定元素的背景颜色

html - 向 Bootstrap 主题 (CSS) 添加边框不起作用

javascript - 使用带有 jquery 的 html 创建侧边菜单

css - 图像设置为 100% 但底部仍有边距

jquery - .mouseover 正在激活,而 .mouseleave 函数仍在播放

html - 如何固定表格内的范围

javascript - 哪些组件正在添加情感 css 全局样式

html - 无法降低嵌入的 div 元素边距

CSS 不透明度属性?