block14
block14

Reputation: 619

How to remove line-height from top of text?

I am using a left floated image next to text with a line-height of 2.

How can I align the top of the image to the top of the text?

Is there a way to remove the top of the line-height and double the bottom of the line-height?

Markup of issue

.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

Upvotes: 1

Views: 184

Answers (5)

Rick Hitchcock
Rick Hitchcock

Reputation: 35670

Add this style:

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

Fiddle

Upvotes: 1

trex005
trex005

Reputation: 5115

Line height of 2 will put 1/2 an em above the line and 1/2 an em below the line. So you just need to subtract the 1/2 em from the text's top margin, and add it back on the image. If you place the image within the text's flow, it will work regardless of block type :

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

Upvotes: 0

Nanang Mahdaen El-Agung
Nanang Mahdaen El-Agung

Reputation: 1434

Something like this?

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

Upvotes: 0

Asons
Asons

Reputation: 87191

Like this you mean?

With image

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

Without image

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

Upvotes: 0

Vlad  Snisar
Vlad Snisar

Reputation: 71

Look at this. Is it what you need?

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

Upvotes: 0

Related Questions