响应式文本在图像上居中对齐
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 像素。您需要查看盒子模型。 当然。在任何类型的编程中,都有很多方法可以达到预期的结果。以上是关于响应式文本在图像上居中对齐的主要内容,如果未能解决你的问题,请参考以下文章