如何从文本顶部删除 line-height?

How to remove line-height from top of text?

我在 line-height 为 2 的文本旁边使用左浮动图像。

如何将图片的顶部与文本的顶部对齐?

有没有办法去掉 line-height 的顶部并加倍 line-height 的底部?

.left {
  float:left;
}
.text {
  line-height:2;
}
<div>
  <img class="left" src="https://placehold.it/60x60">
  <p class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
</div>

JSFiddle

你是说这个吗?

有图

.left {
  float:left;
  margin-top: 10px;
}
.text {
  line-height:2;
}
div img + .text {
  margin-top: -10px;
}
<div>
  <img class="left" src="https://placehold.it/60x60">
  <p class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
</div>

没有图片

.left {
  float:left;
  margin-top: 10px;
}
.text {
  line-height:2;
}
div img + .text {
  margin-top: -10px;
}
<div>
  <p class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
</div>

看看这个。是你需要的吗?

.left {
  float:left;
  margin-top: .5em;
}
.text {
  line-height:2;
}
<div>
  <img class="left" src="https://placehold.it/60x60">
  <p class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
</div>

是这样的吗?

.left {
  float:left;
  margin-right: 10px;
}

.right {
  float: right;
  margin-left: 10px;
}

.content p {
  line-height: 2;
}

.content img {
  margin-top: 10px;
}
<div class="content">
  <img class="left" src="https://placehold.it/60x60">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
  <p></p>
  <img class="right" src="https://placehold.it/60x60">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
  <p></p>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
</div>

添加此样式:

.text {
  transform: translateY(-0.6em);
}

Fiddle

行高 2 将在线上方放置 1/2 em,在线下方放置 1/2 em。所以你只需要从文本的上边距中减去 1/2 em,然后把它加回图像上。如果将图像放在文本流中,无论块类型如何,它都会起作用:

<p>

.left {
  float:left;
  margin-top:.5em;
}
.text {
  line-height:2;
  margin-top:-.5em;
}
<div>
  <p class="text">
     <img class="left" src="https://placehold.it/60x60">
     Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
</div>

<h1>

.left {
  float:left;
  margin-top:.5em;
}
.text {
  line-height:2;
  margin-top:-.5em;
}
<div>
  <h1 class="text">
     <img class="left" src="https://placehold.it/60x60">
     Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </h1>
</div>