响应式文本在图像上居中对齐

Posted

技术标签:

【中文标题】响应式文本在图像上居中对齐【英文标题】:Responsive Text Aligned Center on Image 【发布时间】:2016-12-13 13:58:39 【问题描述】:

我为我的博客文章创建了这个布局,每篇文章都会自动发布到那里。我对我的设置非常满意,但我一辈子都无法让文本在图像上(垂直)居中(它已经水平居中)。只是想知道其他人会如何处理这个问题。

我已经将 html 和 CSS here 完全放在了 codepen 中。如果您有兴趣调整代码,如果您基于 codepen 中当前的 css 类,我将不胜感激。 :)

提前感谢您的帮助和建议!

HTML:

<div id="blog-posts">

<div class="blog-post">

<a href="http://www.ericshio.com/2016/08/07/test-2/">

<img   src="http://www.ericshio.com/wp-content/uploads/2016/08/IMG_0303.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image"  srcset="http://www.ericshio.com/wp-content/uploads/2016/08/IMG_0303.png 5472w, http://www.ericshio.com/wp-content/uploads/2016/08/IMG_0303-300x200.png 300w, http://www.ericshio.com/wp-content/uploads/2016/08/IMG_0303-768x512.png 768w, http://www.ericshio.com/wp-content/uploads/2016/08/IMG_0303-1024x683.png 1024w" sizes="(max-width: 5472px) 100vw, 5472px" scale="0">            

<h3>Test 2</h3>

</a>

</div>

<div class="blog-post">

<a href="http://www.ericshio.com/2016/08/07/hey-johnson/">

<img   src="http://www.ericshio.com/wp-content/uploads/2016/08/macbook.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image"  srcset="http://www.ericshio.com/wp-content/uploads/2016/08/macbook.png 5472w, http://www.ericshio.com/wp-content/uploads/2016/08/macbook-300x200.png 300w, http://www.ericshio.com/wp-content/uploads/2016/08/macbook-768x512.png 768w, http://www.ericshio.com/wp-content/uploads/2016/08/macbook-1024x683.png 1024w" sizes="(max-width: 5472px) 100vw, 5472px">            

<h3>Hey Johnson</h3>

</a>

</div>

</div>

CSS:

#blog-posts 
     text-align: center;
     display: inline-block;
     max-width: 100%;


.blog-post 
    width: 40%;
    height: auto;
    display: inline-block;
    position: relative;
    margin: 0.2em;
    overflow: hidden;


.blog-post h3 
    font: 1em Cabin Sketch;
    color: white;
    width: 100%;
    height: 100%;
    line-height: 100%;
    text-transform: uppercase;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0;
    padding: 0;
    font-size: 2em;
    background-color: rgba(0,0,0,0.4);
    opacity: 0;
    -webkit-transition: opacity 0.6s;
    -moz-transition: opacity 0.6s;
    transition: opacity 0.6s;
    vertical-align: middle !important;


.attachment-post-thumbnail 
   position: relative;
    width: 100%;
    display: inline-block;
    height: auto;


.blog-post:hover h3,
.blog-post h3:hover,
.blog-post .attachment-post-thumbnail:hover 
    opacity: 1;


.blog-post:hover .attachment-post-thumbnail 
   -webkit-filter: blur(1px);
    opacity: 1;

【问题讨论】:

你的意思是让文字居中(垂直)对齐? 是的,我的错误应该更清楚。我将编辑问题。 :P .blog-post h3 top: 50% 这确实有效,但深色背景也会向下移动 50% 【参考方案1】:

我将padding-top 设置为 30%。查看代码笔:

http://codepen.io/anon/pen/mEQVZy

【讨论】:

Padding 根据盒子模型改变定位。你应该熟悉这张图:w3.org/TR/CSS2/images/boxdim.png 我是一个非常初学者的开发者。我正在尝试为网站创建自己的主题,哈哈,我不是开发人员,只是摄影师:P 但是为什么是 30%?而不是让我们说 50%? 您忘记了文本本身也占用空间。 50% 是整个父框的一半。如果父框是 100 像素,则将其向下推 50 像素。您需要查看盒子模型。 当然。在任何类型的编程中,都有很多方法可以达到预期的结果。

以上是关于响应式文本在图像上居中对齐的主要内容,如果未能解决你的问题,请参考以下文章

如何使响应式 SVG 图像居中? [复制]

在响应式正方形中垂直对齐文本块

Bootstrap 3 中的响应式 HR 对齐

如何在具有(流体高度)的响应框中垂直居中文本[重复]

垂直对齐内容与浮动元素 + 响应式布局

如何正确显示和居中对齐我的响应式 youtube 视频?