html - 将跨度定位在其他跨度之上,并在具有可变高度的 div 中水平居中

标签 html css centering

<分区>

我有一个非常简单的 html 结构,但我无法弄清楚我必须做什么才能将 8 放在 0 的顶部而不丢失包装 div 的高度。

如果我在两个跨度上都使用 float 或绝对位置,则 div 高度会降低为 0。如果我在第二个 div 上使用绝对位置和 float 的组合,我将无法正确地将跨度水平居中容器。

我希望你能告诉我我做错了什么,以及如何将第二个跨度移动到第一个跨度之上,同时让第一个跨度确定包装 div 的高度。

#wrapper {
  position: relative;
  width: 100%;
  text-align: center;
}

#first {
}

#first {
}
<div id="wrapper">
   <span id="first">0</span>
   <span id="second">8</span>
</div>

最佳答案

您可以通过组合使用 left: 50% 和负 transform 来居中绝对定位的元素,这将允许您将 8 元素居中在 0 之上:

#wrapper {
  position: relative;
  width: 100%;
  height: auto;
  text-align: center;
}

#first, #second {
  color: white;
  display: block;
}

#first {
  background: blue;
  height: 50px;
  padding: 30px
}

#second {
  background: red;
  height: 10px;
  padding: 10px;
  position: absolute;
  top: 0;
  left:50%;
  transform: translateX(-50%);
}
<div id="wrapper">
   <span id="first">0</span>
   <span id="second">8</span>
</div>

关于html - 将跨度定位在其他跨度之上,并在具有可变高度的 div 中水平居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45154996/

上一篇:javascript - 需要在点击输入元素之前显示daterangepicker(日历),当Html页面加载时

下一篇:html - nth-child(),包括非法 child (格式错误的 HTML)

相关文章:

Javascript 两次转义双引号

html - 是否可以像样式表一样将 'html' 代码存储在另一个页面中?

css - 为什么我的背景转换不起作用?

html - 垂直居中未知高度包装器中的两个 float 元素

html - 背景图像缩放 html5 css3

html - 文本对齐对齐但向右对齐?

html - 横幅圈响应

html - 如何使用 960 网格系统将网格居中

html - Flexbox 在盒子中居中

html - 字段集<legend>的默认CSS值