【发布时间】:2014-02-28 23:58:18
【问题描述】:
无论出于何种原因,我真的为此自责...毫无疑问,因为缺乏对垂直居中任何东西的真正“正确”方式的支持。
目标:
是有一组四张图片,每张图片都在自己的响应列中。每张图片都有一个白色叠加层,当悬停时会显示更多图片,以及在图片内水平和垂直居中的 4 张图片中的每张图片的标题。
如果我设置特定的宽度/高度并将图像粘贴在 CSS 而不是 HTML 中,我可以轻松实现这一点。出于 SEO 的原因,我希望图像出现在 HTML 中。
此外,由于响应特性,图像必须缩放到它们所在列的宽度的 100%。因此,由于宽度缩放,高度也会缩放。
所以第一个问题是让我在课堂上调用它的“标题”出现在图像的顶部。使用简单的position: absolute; 以及标题上的top: 0; 和left: 0; 以及容器上的position: relative; 即可轻松完成。
最大的问题和第二个问题是将“Gallery 1”文本垂直居中于图像顶部。我必须使用上面提到的position: absolute; 位,只是为了让文本位于图像的顶部。从那里我无法设法让display: table; 解决方案起作用,也无法让-50% 的保证金解决方案起作用。
这是一个JS Fiddle
我的HTML:
<div class="container">
<img src="http://lorempixel.com/output/city-q-c-640-480-8.jpg" />
<div class="caption">
<a href="#">Gallery 1</a>
</div>
</div>
关于如何实现这一目标的任何想法?我希望至少支持 IE8,并且我已经在使用 selectivizr,所以伪类不会打扰我。
【问题讨论】:
标签: html css responsive-design vertical-alignment