使用CSS将图像与文本垂直对齐

时间:2015-10-13 10:17:41

标签: html css

我想将缩略图垂直对齐在我的div中 - 与文本一起。

请参阅此小提琴中的示例:http://jsfiddle.net/jL5bpmp1/12/

方框2& 3工作得很好但是1太高了。

如何解决此问题?

* {
    margin:0
}

.box {
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    border-radius: 20px;
    background-color:#0f89cf;
    height:55px;
    width:100%;
    padding:5px 0 0 0;
    margin-bottom:30px
}

.box img, .box div {
    /* float:left; */
    display:inline-block;
    vertical-align:middle;
    margin-left:10px;
}

.box h1 {
    color:#fff;
    font-size:18px;
    margin: 0;
}

.box h1 span {
    display:block;
    font-size:23px;
}
<div class="is-mobile">

<div class="box">
    <img src="http://placehold.it/30x30">
    <div>
        <h1>Chat to us online now</h1> 
    </div>
</div>

<div class="box">
    <img src="http://placehold.it/30x30">
    <div>
        <h1>Call the Helpline
        <span>101 2333 9302</span></h1>
    </div>
</div>

<div class="box">
    <img src="http://placehold.it/30x30">
    <div>
        <h1>Make a General Enquiry
        <span>101 2333 9303</span></h1>
    </div>
</div>
    
</div>

2 个答案:

答案 0 :(得分:1)

您可以使用表格单元格显示。

.box {
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    border-radius: 20px;
    background-color:#0f89cf;
    height:55px;
    width:100%;
    padding:5px 0 0 0;
    margin-bottom:30px;
    display: table;
}

.box div {
    display:table-cell;
    vertical-align:middle;
    margin-left:10px;
}

img包裹在div

JSFiddle:http://jsfiddle.net/jL5bpmp1/13/

答案 1 :(得分:0)

使用position ing。因此,您可以将图像垂直放置在顶部,并设置50%偏移量,也可以使margin-top为高度的一半。这总是有效的。

.box {
  position: relative;
}
.box img {
  position: absolute;
  margin-left: 10px;
  top: 50%;
  margin-top: -15px;
}
.box div {
  margin-left: 45px;
}

完整代码段

* {
  margin: 0
}
.box {
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  border-radius: 20px;
  background-color: #0f89cf;
  height: 55px;
  width: 100%;
  padding: 5px 0 0 0;
  margin-bottom: 30px;
  position: relative;
}
.box img {
  position: absolute;
  margin-left: 10px;
  top: 50%;
  margin-top: -15px;
}
.box div {
  margin-left: 45px;
}
.box h1 {
  color: #fff;
  font-size: 18px;
  margin: 0;
}
.box h1 span {
  display: block;
  font-size: 23px;
}
<div class="is-mobile">

  <div class="box">
    <img src="http://placehold.it/30x30">
    <div>
      <h1>Chat to us online now</h1> 
    </div>
  </div>

  <div class="box">
    <img src="http://placehold.it/30x30">
    <div>
      <h1>Call the Helpline
        <span>101 2333 9302</span></h1>
    </div>
  </div>

  <div class="box">
    <img src="http://placehold.it/30x30">
    <div>
      <h1>Make a General Enquiry
        <span>101 2333 9303</span></h1>
    </div>
  </div>

</div>