You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让两个absolute定位的div并排显示且中间带分隔符?

解决absolute定位下两个div并排带分隔符的问题

你的问题核心在于:

  • 父容器#games是absolute定位,但未设置合适的布局方式,导致内部子元素无法正确排列
  • .game-card和.game-hub-card用了absolute定位,导致父元素.game-list/.game-hub-list高度塌陷,无法撑起空间
  • 分隔符.game-type-seperator没有样式,完全不可见

直接按下面的修改来解决:

修改后的CSS代码

html, body {
  max-width: 100%;
  overflow-x: hidden;
  margin: 0;
  background-color: #333;
  color: white;
}

#games {
  position: absolute;
  /* 用flex实现子元素并排,gap控制间距 */
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 20px;
}

@keyframes rotate {
    100% {
        transform: rotate(1turn);
    }
}

.game-card, .game-hub-card, .game-card::before, .game-hub-card::before, .game-card::after, .game-hub-card::after {
  box-sizing: border-box;
}

.game-list, .game-hub-list {
  /* 给父容器设置relative,让内部absolute的card相对于它定位 */
  position: relative;
  /* 设置最小高度,避免高度塌陷 */
  min-height: 250px;
}

.game-card, .game-hub-card {
    z-index: 0;
    position: absolute;
    width: 300px;
    height: 200px;
    border-radius: 10px;
    overflow: hidden;
    padding: 2rem;
    background-color: #000;
    background-repeat: no-repeat;
    background-position: 0 0;
}

.game-card:hover, .game-hub-card:hover {
    &::before {
        position: absolute;
        content: '';
        z-index: -2;
        left: -50%;
        top: -50%;
        width: 200px;
        height: 200px;
        background-color: #000;
        background-repeat: no-repeat;
        background-position: 0 0;
        background-image: conic-gradient(transparent, purple, transparent 30%);
        animation: rotate 4s linear infinite;
    }
    
    &::after {
        position: absolute;
        content: '';
        z-index: -1;
        left: 6px;
        top: 6px;
        width: calc(100% - 12px);
        height: calc(100% - 12px);
        background: #000;
        border-radius: 5px;
    }
}

.game-list {
  padding-right: 20px;
}

/* 给分隔符添加样式 */
.game-type-seperator {
  width: 1px;
  background-color: #fff;
  align-self: stretch; /* 让分隔符高度和父容器一致 */
}

修改后的HTML代码

<div class="page" id="games">
  <div class="game-list">
    <h3>Games</h3>
    <div class="game-card">
      <img class="game-card-img" src="" alt="Game Icon">
      <h4 class="game-card-title">Coming soon</h4>
      <p class="game-card-description">Lorem Ipsum</p>
    </div>
  </div>
  <div class="game-type-seperator"></div>
  <div class="game-hub-list">
    <h3>Game Hubs</h3>
    <div class="game-hub-card">
      <img class="game-hub-card-img" src="" alt="Game Hub Icon">
      <h4 class="game-hub-card-title">Coming soon</h4>
      <p class="game-hub-card-description">Lorem Ipsum</p>
    </div>
  </div>
</div>

关键修改点说明

  • 给#games添加display: flex,直接实现内部元素并排,gap控制元素间间距,比inline-block更可靠
  • 给.game-list和.game-hub-list设置position: relative,让内部absolute定位的卡片相对于父容器定位,不会乱跑;同时设置min-height避免父元素高度塌陷
  • 给分隔符.game-type-seperator添加宽度、背景色,并用align-self: stretch让它高度和父容器一致,实现垂直分隔效果
  • 移除了.game-list的右侧border,改用独立的分隔符元素,更符合你要的中间带分隔符的需求

内容的提问来源于stack exchange,提问作者vlone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:23:10