在 DIV 中将文本和图像的组合居中

Center a combination of text and image within a DIV

我尝试将容器中的文本和图像串联(水平和垂直)居中 DIV。这是代码:

<!DOCTYPE html>
<html>
  <head>
    <style>
      #myBox {display:block; width:300px; height:100px;
              text-align:center; font-size:20px; line-height:500%;
              background-color:yellow;}
      #myImg {display:block; width:33.33%; height:100%;}
    </style>
  </head>
  <body>
    <div id="myBox">
      My text
      <img id="myImg" src="red100x100.jpg" />
    </div>
  </body>
</html>

文字确实居中,但图片换行。

正在努力实现:

但我明白了:

编辑:

这类似于,但后者也涉及margin:auto的效果,而本题则没有。

1) display:inline-block; 用于 #myImg.

2) 使用 vertical-align: middle; 将文本垂直居中。

#myImg {
    display:inline-block;
    vertical-align: middle;
    //Other code...
}

#myBox {
  display:block;
  width:300px;
  height:100px;
  text-align:center;
  font-size:20px;
  background-color:yellow;
}

#myImg {
  display:inline-block;
  width:33.33%;
  height:100%;
  vertical-align: middle;
}
<div id="myBox">
  My text
  <img id="myImg" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQEnn9dYYZlciBKfaHCw17-dUgRPX3nq5_6-kV1ua-LIsId5g43uA" />
</div>

由于图像被渲染为一个块,它换行到下一行。您可以将它的显示从块更改为内联,然后将另一个 属性 - vertical-align - 设置为中间。

#myImg {
    display: inline;
    vertical-align: middle;
    width: 33.33%;
    height: 100%;
}

Codepen - https://codepen.io/sassquad/pen/GOqQxe