如何在中间垂直对齐文本

How to vertically align text in the middle

在我的 wordpress 帖子中,我有一个 div 是一半图像一半文本。在文本所在的一侧,我想在中间垂直对齐文本。我试过 vertical-align:middle 但它没有用。有没有人有任何解决方案?提前致谢。

css

.half-width-img{
    width:50%;
    height:auto;
    float:left;
}
.half-width-text{
    width:50%;
    height:auto;
    float:left;
    box-sizing: border-box;
padding:0 100px 0 100px;
    text-align: justify;
    display: table-cell;
    vertical-align: middle;
}
.half-image-half-text {
    display: inline-block;
}
<div class="half-image-half-text">
    <img class="half-width-img" src="IMAGE URL" />
    <p class="half-width-text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc,</p>
</div>

我不太明白你的问题,但我认为你正在寻找 line-height。你可以试试line-height: 100%;

您是指 div 中的居中文本吗?然后使用 text-align:center

.half-width-img{
    width:50%;
    height:auto;
    float:left;
}
.half-width-text{
    width:50%;
    height:auto;
    float:left;
    box-sizing: border-box;
padding:0 100px 0 100px;
    text-align: center;
    display: table-cell;
    vertical-align: middle;
}
.half-image-half-text {
    display: inline-block;
}
 Run code snipp
<div class="half-image-half-text">
<img class="half-width-img" src="http://s27.postimg.org/3q7ppnkyr/microsoft.jpg" /><p class="half-width-text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc,</p></div>

不使用浮动,而是显示:)

全页模式下的测试片段

  • display:inline-block; 和 html 注释删除 white-space :

.half-width-img {
  width: 50%;
  display: inline-block;
  vertical-align: middle;
}
.half-width-text {
  width: 50%;
  height: auto;
  display: inline-block;
  box-sizing: border-box;
  padding: 0 100px 0 100px;
  text-align: justify;
  vertical-align: middle;
}
.half-image-half-text {
}
<div class="half-image-half-text">
  <img class="half-width-img" src="http://dummyimage.com/100x100" /><!--
  --><p class="half-width-text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium
    quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.
    Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet.
    Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
    Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla
    mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc,</p>
</div>

  • display:table; 和每个内容 2 个容器,因此内容可以 vertical-align 到中间。最高的将设置至极将对齐中心

.half-width-img ,
.half-width-text {
  display: table-cell;
  width:50%;
  box-sizing: border-box;
  vertical-align: middle;
  }
.half-width-text {
  padding: 0 100px 0 100px;
  text-align: justify;
}
.half-width-img img{
  width:100%;
  }
.half-image-half-text {
  display:table;
  width:100%;
  table-layout:fixed;
}
<div class="half-image-half-text">
  <div  class="half-width-img"><img src="http://dummyimage.com/100x100" /></div>
  <p class="half-width-text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium
    quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.
    Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet.
    Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
    Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla
    mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc,</p>
</div>

  • display:flex; flex:1;将两者均匀喷洒,margin:auto将在视觉上管理vertical-align

.half-width-img {
  width: 50%;
  flex: 1;
  margin: auto;
}
.half-width-text {
  flex: 1;
  margin: auto;
  display: inline-block;
  box-sizing: border-box;
  padding: 0 100px 0 100px;
  text-align: justify;
}
.half-image-half-text {display:flex;}
<div class="half-image-half-text">
  <img class="half-width-img" src="http://dummyimage.com/100x100" />
  <p class="half-width-text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium
    quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.
    Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet.
    Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
    Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla
    mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc,</p>
</div>

对于段落,使用基于父级相对位置的绝对位置。然后翻译位置。

.half-width-img{
    width:50%;
    height:auto;
    float:left;
}
.half-width-text{
    width: 50%;
    box-sizing: border-box;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%);
    color: white;
    padding:0px;
    margin: 0px;
    text-align: center;
}
.half-image-half-text {
    display: inline-block;
    position: relative;
    background: red;
}
<div class="half-image-half-text">
  <img class="half-width-img" src="http://placehold.it/350x150"/>
  <p class="half-width-text">text</p>
</div>

尝试使用 Flexbox。

 .half-image-half-text {
  display : flex;
  align-items : center;
}
.half-width-img, .half-width-text {
  width: 50%;
}
.half-width-text {
  padding: 0 100px;
}
<div class="half-image-half-text">
  <img class="half-width-img" src="http://placehold.it/300x400">
  <p class="half-width-text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim.
  </p>
</div>