在实现垂直居中时遇到一些麻烦。似乎在 Chrome 和 Safari 中正常工作,但在 Firefox 中它的行为很奇怪(我在 Mac 上调试)。
当浏览器调整大小时,悬停元素的大小不会调整到适合其父级的大小,而当浏览器调整到原始宽度时,悬停元素最终会变得太小。
关于如何解决这个问题的任何想法?
在实现垂直居中时遇到一些麻烦。似乎在 Chrome 和 Safari 中正常工作,但在 Firefox 中它的行为很奇怪(我在 Mac 上调试)。
当浏览器调整大小时,悬停元素的大小不会调整到适合其父级的大小,而当浏览器调整到原始宽度时,悬停元素最终会变得太小。
关于如何解决这个问题的任何想法?
最后,我能够通过这些更改解决这个问题。
希望它将来可能对某人派上用场(答案底部的完整解决方案链接)。
原始标记
<article class="work-preview">
<img src="http://lorempixel.com/output/nightlife-q-c-600-414-6.jpg">
<div class="covering background"></div>
<div class="covering foreground">
<h2>A Text</h2>
</div>
</article>
新标记
<article class="work-preview">
<img src="http://lorempixel.com/output/nightlife-q-c-600-414-6.jpg">
<div class="coveringcontainer">
<div class="covering foreground">
<h2>A Text</h2>
</div>
</div>
</article>
原始 CSS
.covering {
position: absolute;
top: 0; left: 0;
opacity: 0;
filter:alpha(opacity=0);
}
body .work-preview:hover .covering {
opacity: 1;
filter:alpha(opacity=100);
cursor: pointer;
}
新的 CSS
.coveringcontainer {
position: absolute;
display: none;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: red;
}
.work-preview:hover .coveringcontainer {
display: block;
cursor: pointer;
}
.covering {
position: absolute;
display: table;
width: 100%;
height: 100%;
}
这是完整的解决方案!
尝试使用inline-block;
而不是inline-table
on
body .work-preview
Firefox 不考虑vertical-align:middle;
,因为它只在表格单元格上考虑。如果您想了解更多信息,我建议您阅读理解垂直对齐。