为什么我的 Bootstrap stretched link 延伸出好几层?

Why does my Bootstrap stretched link extend out several levels?

我正在尝试为我的嵌套 div 拉伸 link,但它甚至包括父级。我只需要 listItem 是可点击的,但这会使整个卡片 div 可点击。

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">

<div class="container-fluid">
  <div class="row">
    <div class="col-xs-8">
      <div class="col-xl-12 col-md-12 mb-3 mt-2">
        <div class="card custom-bg-2 h-100">
          <div class="card-header bg-secondary">
            <h3 class="fw-bold text-white text-center">Page Title</h3>
          </div>

          <div class="card-body">
            <div class="listItem">
              <img src="https://via.placeholder.com/100" class="rounded" alt="Title">
              <p><span class="badge bg-secondary text-light" style="font-size: large;">Title</span></p>
              <p><span class="badge bg-secondary ms-2">Views</span></p>
              <a href="#" class="stretched-link"></a>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="col-xs-4">
      <div class="row">
        <div class="col-xl-12 col-md-8 mb-3 mt-2">
          <div class="card custom-bg-2 h-100">
            <div class="card-header bg-secondary">
              <h3 class="fw-bold text-white">Category</h3>
            </div>
            <div class="card-body">
              ....
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

根据 the Bootstrap docs (and the fundamental rules of absolute positioning),拉伸链接适用于最近的元素 ,具有 non-static 定位 。您可以将 position-relative class 放在父对象上以实现这一点。

我还在父段落中用 lead class 替换了内联字体大小样式。只是不要使用内联样式,尤其是当您的样式库为此提供 typography classes 时。

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">

<div class="container-fluid">
  <div class="row">
    <div class="col-xs-8">
      <div class="col-xl-12 col-md-12 mb-3 mt-2">
        <div class="card custom-bg-2 h-100">
          <div class="card-header bg-secondary">
            <h3 class="fw-bold text-white text-center">Page Title</h3>
          </div>

          <div class="card-body">
            <div class="listItem position-relative">
              <img src="https://via.placeholder.com/100" class="rounded" alt="Title">
              <p class="lead"><span class="badge bg-secondary text-light">Title</span></p>
              <p><span class="badge bg-secondary ms-2">Views</span></p>
              <a href="#" class="stretched-link"></a>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="col-xs-4">
      <div class="row">
        <div class="col-xl-12 col-md-8 mb-3 mt-2">
          <div class="card custom-bg-2 h-100">
            <div class="card-header bg-secondary">
              <h3 class="fw-bold text-white">Category</h3>
            </div>
            <div class="card-body">
              ....
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>