html - CSS:使用 line-height 进行垂直居中而不给出固定高度。有办法吗?

标签 html css

<分区>

我经常使用 line-height 来使行内元素中的文本垂直居中。

我做了这个演示:

body,
section {
  width: 100%;
}

section {
  background-color: lightGrey;
}

#wrap {
  margin: 30px auto;
  width: 100%;
  max-width: 800px;
  text-align: center;
  height: 48px;
}

.my-element {
  line-height: 48px;
}
<section>
  <div id="wrap">
    <span class="my-element">My element</span>
  </div>
</section>

工作正常。文本在灰色条内完全垂直居中。

但这种方法的问题是:我必须使用父元素的高度并将其固定在那里。

在使用这种模式时是否有更好、更动态的方法。

这样它就不会在父元素的高度发生变化时损坏。

最佳答案

您可以使用 Flexbox 并设置 align-items: centerjustify-content: center 垂直和水平居中。

section {
  background-color: lightGrey;
}

#wrap {
  margin: 30px auto;
  width: 100%;
  max-width: 800px;
  text-align: center;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
}
<section>
  <div id="wrap">
    <span class="my-element">My element</span>
  </div>
</section>

关于html - CSS:使用 line-height 进行垂直居中而不给出固定高度。有办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43305880/

上一篇:html - 响应式倾斜标签

下一篇:javascript - 如何组合两个 CSS 动画

相关文章:

css - 三 channel 三色灯的RGB范围

html - 在绝对定位中使用 flex 将元素居中对齐

css - 如何根据其中的文本制作四舍五入的 div 长度?

javascript - 使用javascript隐藏特定UL中的href元素

javascript - jQuery 下拉菜单 - 如何隐藏正文点击菜单

javascript - Gridpanel 没有在 Ext js 4.0.7 的视口(viewport)内显示我的代码有什么问题

css - 背景图像 css 在 Rails 应用程序中不起作用

javascript - 隐藏后如何删除li空间?

html - 如何使用鼠标单击旋转 Canvas 中的文本?

css - 为每种颜色悬停颜色跨站点