中心绝对div中的隐藏文本元素

时间:2017-05-16 00:22:53

标签: html css css3 position

我无法在绝对定位的元素中获取h2标头。我已经浏览了可能的错误列表,但似乎仍无法找到答案。检查屏幕后,h2元素由于某种原因的高度为0。

Here's a codepen link

HTML:

  <div class="gallery">

      <img class='gallery-image' src='https://dummyimage.com/200x400/000000/ffffff'>
      <img class='gallery-image' src='https://dummyimage.com/200x400/000000/ffffff'>
      <img class='gallery-image' src='https://dummyimage.com/200x400/000000/ffffff'>
      <img class='gallery-image' src='https://dummyimage.com/200x400/000000/ffffff'>
      <a class='call-action' href='#'>
        <h2>Shop Now.</h2>
      </a>
    </div>

CSS:

.gallery {

  position: absolute;
  z-index: 2;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  font-size: 0;

  img {

    display: block;
    width: 25%;
    height: 50%;

    @media only screen and (max-width: 500px) {

      width: 50%;
      height: 100%;

    }

  }

}

$call-action-width: 150px;
$call-action-height: 50px;

.call-action {

  width: $call-action-width;
  height: $call-action-height;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  background-color: white;
  opacity: 0.5;
  border-radius: 5%;

  h2 {

    position: relative;
    color: black;
    font-size: 2em;

  }

}

很抱歉,如果答案很明显 - 我刚刚回到练习编码,而且我非常粗糙。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

问题在于你的font-size。您在em position: absolute内不能使用<div>字体,因为em相对于元素。

只需交换为固定大小的字体(例如px)即可解决问题。我创建了一个新的笔来展示这个here

不幸的是,这意味着您的字体无法响应。如果您需要自适应字体,则必须使用一些媒体查询,或者重新构建HTML,以便<h2>元素具有position: relative父级(因此您可以使用em

希望这有帮助! :)