我无法在绝对定位的元素中获取h2标头。我已经浏览了可能的错误列表,但似乎仍无法找到答案。检查屏幕后,h2元素由于某种原因的高度为0。
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;
}
}
很抱歉,如果答案很明显 - 我刚刚回到练习编码,而且我非常粗糙。
感谢您的帮助!
答案 0 :(得分:3)
问题在于你的font-size
。您在em
position: absolute
内不能使用<div>
字体,因为em
相对于父元素。
只需交换为固定大小的字体(例如px
)即可解决问题。我创建了一个新的笔来展示这个here。
不幸的是,这意味着您的字体无法响应。如果您需要自适应字体,则必须使用一些媒体查询,或者重新构建HTML,以便<h2>
元素具有position: relative
父级(因此您可以使用em
)
希望这有帮助! :)