引导卡不会与其他卡折叠并与卡合并

问题描述 投票:0回答:1

我正在使用引导程序创建卡片网格,但在调整屏幕大小时所有卡片都会合并在一起。这主要发生在我尝试将图标布局为出现在卡片的左上角和底部中间,同时向图像添加 a href 标签时。

<div class="col-sm-6 col-md mt-3">
  <div class="card" style="position: relative;">
      <a href="#" style="position: absolute; top: 0; left: 0; z-index: 2; width: 100%; height: 100%; pointer-events: none;">
          <img src="https://images.igdb.com/igdb/image/upload/t_cover_big/co7lbb.png" alt="" style="pointer-events: auto;">
      </a>
      <div class="icon-placeholder" style="position: absolute; top: 0; left: 0; z-index: 3;">
          <!-- Heart icon on top left -->
          <i id="heart" class="fas fa-heart heart-icon top-left-icon"></i>
          <!-- Other icons on bottom -->
          <div class="bottom-icons" style="position: absolute; bottom: -300px; left:100px;">
              <i class="fas fa-comment comment-icon p-2"></i>
              <i class="fas fa-share share-icon p-2"></i>
              <!-- ... add more icons as needed -->
          </div>
      </div>
  </div>

---- CSS 样式表 ----

  display: flex;
  justify-content: space-evenly;
  margin-top: auto; /* Push the bottom icons to the bottom */
} 


.icon-placeholder {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
}

.card img {
  border-radius: 20px;
  max-height: 320px;
  max-width: 320px;
  object-fit: cover;
  display: block;
}

    .card {
  position: relative;
  border-radius: 20px;
  background-color: #ffffff00;
  max-width: 264px;
  max-height: 352px;
  transition: transform .2s; /* Add transition property for smooth animation */
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
}
css flexbox bootstrap-5
1个回答
0
投票

您尝试定位图标,但代码有错误。图像包装和图标包装的位置不正确,导致卡片重叠。我修好了它。我用引导类替换了您的内联 CSS,并删除了未使用的 CSS。下面是示例代码:

.card img {
  border-radius: 20px;
  max-height: 320px;
  max-width: 100%;
  width: 100%;
  object-fit: cover;
  display: block;
}

.heart-icon {
  position: absolute;
  top: 10px;
  left: 10px;
}

.bottom-icons {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
}
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" rel="stylesheet">
  
  
<div class="container">
    <div class="card my-3">
        <div class="card-body">
            <div class="row g-3">
                <div class="col-6 col-md-4 col-lg-3">
                    <div class="position-relative">
                        <a href="#" class="pe-none">
                            <img src="https://images.igdb.com/igdb/image/upload/t_cover_big/co7lbb.png" alt="" class="pe-auto">
                        </a>
                        <div class="icon-placeholder">
                            <i id="heart" class="fas fa-heart heart-icon top-left-icon text-white"></i>

                            <div class="d-flex justify-content-center text-white bottom-icons">
                                <i class="fas fa-comment comment-icon p-2"></i>
                                <i class="fas fa-share share-icon p-2"></i>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col-6 col-md-4 col-lg-3 mt-3">
                    <div class="position-relative">
                        <a href="#" class="pe-none">
                            <img src="https://images.igdb.com/igdb/image/upload/t_cover_big/co7lbb.png" alt="" class="pe-auto">
                        </a>
                        <div class="icon-placeholder">
                            <i id="heart" class="fas fa-heart heart-icon top-left-icon text-white"></i>

                            <div class="d-flex justify-content-center text-white bottom-icons">
                                <i class="fas fa-comment comment-icon p-2"></i>
                                <i class="fas fa-share share-icon p-2"></i>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col-6 col-md-4 col-lg-3 mt-3">
                    <div class="position-relative">
                        <a href="#" class="pe-none">
                            <img src="https://images.igdb.com/igdb/image/upload/t_cover_big/co7lbb.png" alt="" class="pe-auto">
                        </a>
                        <div class="icon-placeholder">
                            <i id="heart" class="fas fa-heart heart-icon top-left-icon text-white"></i>

                            <div class="d-flex justify-content-center text-white bottom-icons">
                                <i class="fas fa-comment comment-icon p-2"></i>
                                <i class="fas fa-share share-icon p-2"></i>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col-6 col-md-4 col-lg-3 mt-3">
                    <div class="position-relative">
                        <a href="#" class="pe-none">
                            <img src="https://images.igdb.com/igdb/image/upload/t_cover_big/co7lbb.png" alt="" class="pe-auto">
                        </a>
                        <div class="icon-placeholder">
                            <i id="heart" class="fas fa-heart heart-icon top-left-icon text-white"></i>

                            <div class="d-flex justify-content-center text-white bottom-icons">
                                <i class="fas fa-comment comment-icon p-2"></i>
                                <i class="fas fa-share share-icon p-2"></i>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

© www.soinside.com 2019 - 2024. All rights reserved.