如何在中间垂直对齐文本

时间:2017-01-07 16:40:48

标签: css wordpress alignment vertical-alignment text-alignment

在我的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>

5 个答案:

答案 0 :(得分:1)

不要使用float,而是显示:)

整页模式下的测试代码段

  • 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>

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你的意思是div中的中心文字吗?然后使用text-align:center

&#13;
&#13;
.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
&#13;
<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>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

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

&#13;
&#13;
.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;
}
&#13;
<div class="half-image-half-text">
  <img class="half-width-img" src="http://placehold.it/350x150"/>
  <p class="half-width-text">text</p>
</div>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

尝试使用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>