JSFiddle - React, Tailwind, and code Playground

by Ulrich Bangert

HTML

<div class="card">
  <img src="https://webentwicklung.ulrichbangert.de/images/bild1.jpg">
  <p>
  Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
  </p>
  <p>
   Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
  </p>
  <a class="button">Zum Bildband</a>
</div>

CSS

figure {
  margin: 0;
}

div.card img {
  width: 50%;
  float: left;
  padding-right: 0.5em;
}

div.card a.button {
    float: right;
    text-align: right;
    font-size: 1.5rem;
    color: #008fd1;
    text-decoration: none;
    border: solid 2px #008fd1;
    border-radius: 5px;
    padding: 5px;
}

JavaScript

const btn = document.querySelector('div.card a.button'),
  im = document.querySelector('div.card img');
function alignBtn() {
  btn.style.marginTop = '0';
  const rectBtn = btn.getBoundingClientRect(),
    rectIm = im.getBoundingClientRect();
  const delta = rectIm.bottom - rectBtn.bottom;
  if (delta > 0) {
    btn.style.marginTop = delta + 'px';
  }
}
window.addEventListener('load', alignBtn);
window.addEventListener('resize', alignBtn);