Source

Gestreckter Link

Machen Sie jedes HTML-Element oder jede Bootstrap-Komponente anklickbar, indem Sie einen verschachtelten Link über CSS „dehnen“.

Zu einem Link hinzufügen .stretched-link, um den enthaltenden Block über ein Pseudoelement anklickbar zu machen ::after. In den meisten Fällen bedeutet dies, dass ein Element position: relative;, das einen Link mit der .stretched-linkKlasse enthält, anklickbar ist.

Karten haben standardmäßig Bootstrap, sodass Sie in diesem Fall die Klasse ohne weitere HTML-Änderungen position: relativesicher zu einem Link in der Karte hinzufügen können ..stretched-link

Mehrere Links und Tap-Ziele werden bei gestreckten Links nicht empfohlen. Einige positionund z-indexStile können jedoch hilfreich sein, falls dies erforderlich sein sollte.

Card image cap
Karte mit gestrecktem Link

Ein kurzer Beispieltext, der auf dem Kartentitel aufbaut und den Großteil des Inhalts der Karte ausmacht.

Irgendwohin gehen
<div class="card" style="width: 18rem;">
  <img src="..." class="card-img-top" alt="...">
  <div class="card-body">
    <h5 class="card-title">Card with stretched link</h5>
    <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
    <a href="#" class="btn btn-primary stretched-link">Go somewhere</a>
  </div>
</div>

Medienobjekte haben position: relativestandardmäßig keine, daher müssen wir .position-relativehier hinzufügen, um zu verhindern, dass sich der Link über das Medienobjekt hinaus erstreckt.

Generic placeholder image
Medien mit gestrecktem Link

Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin. Cras purus odio, Vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.

Irgendwohin gehen
<div class="media position-relative">
  <img src="..." class="mr-3" alt="...">
  <div class="media-body">
    <h5 class="mt-0">Media with stretched link</h5>
    <p>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</p>
    <a href="#" class="stretched-link">Go somewhere</a>
  </div>
</div>

Spalten sind position: relativestandardmäßig vorhanden, sodass für anklickbare Spalten nur die .stretched-linkKlasse auf einem Link erforderlich ist. Das Strecken eines Links über ein Ganzes .rowerfordert jedoch .position-staticdie Spalte und .position-relativedie Zeile.

Generic placeholder image
Spalten mit gestrecktem Link

Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin. Cras purus odio, Vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.

Irgendwohin gehen
<div class="row no-gutters bg-light position-relative">
  <div class="col-md-6 mb-md-0 p-md-4">
    <img src="..." class="w-100" alt="...">
  </div>
  <div class="col-md-6 position-static p-4 pl-md-0">
    <h5 class="mt-0">Columns with stretched link</h5>
    <p>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</p>
    <a href="#" class="stretched-link">Go somewhere</a>
  </div>
</div>

Identifizieren des enthaltenden Blocks

Wenn der gestreckte Link nicht zu funktionieren scheint, ist wahrscheinlich der enthaltende Block die Ursache. Die folgenden CSS-Eigenschaften machen ein Element zum enthaltenden Block:

  • Ein positionanderer Wert alsstatic
  • A transformoder perspectiveWert anders alsnone
  • Ein will-changeWert von transformoderperspective
  • Ein filteranderer Wert als noneoder ein will-changeWert von filter(funktioniert nur auf Firefox)
Card image cap
Karte mit gestreckten Links

Ein kurzer Beispieltext, der auf dem Kartentitel aufbaut und den Großteil des Inhalts der Karte ausmacht.

Der gestreckte Link funktioniert hier nicht, da position: relativeer dem Link hinzugefügt wird

Dieser gestreckte Link wird nur über das p-Tag verteilt, da eine Transformation darauf angewendet wird.

<div class="card" style="width: 18rem;">
  <img src="..." class="card-img-top" alt="...">
  <div class="card-body">
    <h5 class="card-title">Card with stretched links</h5>
    <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
    <p class="card-text">
      <a href="#" class="stretched-link text-danger" style="position: relative;">Stretched link will not work here, because <code>position: relative</code> is added to the link</a>
    </p>
    <p class="card-text bg-light" style="transform: rotate(0);">
      This <a href="#" class="text-warning stretched-link">stretched link</a> will only be spread over the <code>p</code>-tag, because a transform is applied to it.
    </p>
  </div>
</div>