user_78361084
user_78361084

Reputation: 3908

How do I vertically align these css triangles to the text?

div {
  margin: 10px;
}

.arrow-up {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-bottom: 5px solid black;
  vertical-align: top;
}

.arrow-down {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid red;
  vertical-align: bottom;
}
<div>
  <span class="arrow-up"></span> An up arrow
</div>
<div>
  <span class="arrow-down"></span> A down arrow
</div>

https://jsfiddle.net/dL1od5tz/8/

I would like to align them so that the bottom of the arrow is aligned with the bottom of the text. The vertical-align doesn't seem to do anything and setting margins and padding doesn't do the trick either. I am out of ideas. Thanks!

Upvotes: 0

Views: 37

Answers (1)

duhaime
duhaime

Reputation: 27594

How about making them each inline-block?

div {
  margin: 10px;
}

.arrow {
  display: inline-block;
}

.up {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-bottom: 5px solid black;
}

.down {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid red;
  vertical-align: bottom;
}
<div>
  <span class="arrow up"></span>
  <span>An up arrow</span>
</div>
<div>
  <span class="arrow down"></span>
  <span>A down arrow</span>
</div>

Upvotes: 2

Related Questions