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-link
Klasse enthält, anklickbar ist. Bitte beachten Sie, dass CSS aufgrund der Funktionsweise position
nicht.stretched-link
mit den meisten Tabellenelementen gemischt werden kann .
Karten haben standardmäßig Bootstrap, sodass Sie in diesem Fall die Klasse ohne weitere HTML-Änderungen position: relative
sicher zu einem Link in der Karte hinzufügen können ..stretched-link
Mehrere Links und Tap-Ziele werden bei gestreckten Links nicht empfohlen. Einige position
und z-index
Stile können jedoch hilfreich sein, falls dies erforderlich sein sollte.
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>
Die meisten benutzerdefinierten Komponenten haben position: relative
standardmäßig keine, daher müssen wir .position-relative
hier hinzufügen, um zu verhindern, dass sich der Link über das übergeordnete Element hinaus erstreckt.
Benutzerdefinierte Komponente mit gestrecktem Link
Dies ist ein Platzhalterinhalt für die benutzerdefinierte Komponente. Es soll nachahmen, wie einige reale Inhalte aussehen würden, und wir verwenden es hier, um der Komponente ein wenig Körper und Größe zu verleihen.
Irgendwohin gehen<div class="d-flex position-relative">
<img src="..." class="flex-shrink-0 me-3" alt="...">
<div>
<h5 class="mt-0">Custom component with stretched link</h5>
<p>This is some placeholder content for the custom component. It is intended to mimic what some real-world content would look like, and we're using it here to give the component a bit of body and size.</p>
<a href="#" class="stretched-link">Go somewhere</a>
</div>
</div>
Spalten mit gestrecktem Link
Eine weitere Instanz von Platzhalterinhalt für diese andere benutzerdefinierte Komponente. Es soll nachahmen, wie einige reale Inhalte aussehen würden, und wir verwenden es hier, um der Komponente ein wenig Körper und Größe zu verleihen.
Irgendwohin gehen<div class="row g-0 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 p-4 ps-md-0">
<h5 class="mt-0">Columns with stretched link</h5>
<p>Another instance of placeholder content for this other custom component. It is intended to mimic what some real-world content would look like, and we're using it here to give the component a bit of body and size.</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
position
anderer Wert alsstatic
- A
transform
oderperspective
Wert anders alsnone
- Ein
will-change
Wert vontransform
oderperspective
- Ein
filter
anderer Wert alsnone
oder einwill-change
Wert vonfilter
(funktioniert nur auf Firefox)
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: relative
er 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>