首页 > 在HTML&CSS中,如何最科学地将文字显示在图片正中间?

在HTML&CSS中,如何最科学地将文字显示在图片正中间?

上面这张图是一个APP的界面。我正在学习HTML和CSS。我想请问,如何在HTML中实现上面这样图片的排版。
【我不是伸手党】:
我百度了一下,尝试了两种方法,但是感觉不太好,问题在于百度给我的答案对于各个浏览器并不普遍适用,也有的方法是div层太多,我觉得语义化不太好。
【我希望得到的解答是】

很有经验的前端工程师会选择用什么样的方法实现这样的效果?

在此谢过了!


补充一个demo:https://jsfiddle.net/dwqs/Lv1ea5fz/1/

相对定位和绝对定位都可以实现


单行文字比较简单,多行文字确实是要嵌套div的,外层display:table,内层display:teble-cell,text-align:center;vertical-align:middle,然后图片放背景里面就行了


最爱用flex来实现各种布局效果,代码简单。演示效果:https://jsfiddle.net/k4d3ch91/
felx的最好的教程文章https://css-tricks.com/snippets/css/a-guide-to-flexbox/
HTML代码:

<div class="posts-list">
  <div class="posts-list__post" style="background-color: red;">
    <h3 class="posts-list__post__title">颜控党,请进</h3>
    <div class="posts-list__post__meta">9919</div>
  </div>
  <div class="posts-list__post" style="background-color: blue;">
    <h3 class="posts-list__post__title">我说下雨,你说yo</h3>
    <div class="posts-list__post__meta">4332</div>
  </div>
</div>

css代码:

.posts-list__post {
  width: 100%;
  height: 200px;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.posts-list__post__title {
  margin: 0;
  padding: 0;
  color: #fff;
}
.posts-list__post__meta {
  margin: 0;
  padding: 0;
  color: #fff;
}

找到实现这个效果的网站,直接使用浏览器开发者工具,看看网页代码。


我没有经验,嘿嘿,但是我一般用背景图的方式


    <style type="css/text">
    /*如果支持CSS3的话,不支持的话就用js计算left和top的值*/
    .vcenter {position:absolute;left:50%;top:50%;translateX(-50%);translateY(-50%)}
    </style>
    <div>
        <img src='xx' />
        <div class="vcenter">center</div>
    </div>

如果在移动端,有flex

【热门文章】
【热门文章】