我正在创建一个注释流布局,该布局的背景中有一个位置为绝对的栏。注释项位于栏的顶部。效果很好,但我也希望人们能够在评论中提及其他用户。
键入@时将打开的下拉菜单位于连续注释的后面。下拉菜单还使用position:absolute,而注释具有position:relative。现在看来,这些多层不能很好地协同工作。

<div class="timeline">
  <div class="comment">
    <input placeholder="mention someone with @username">
    <div class="mention-dropdown">
      <div class="mention">username</div>
      <div class="mention">username</div>
      <div class="mention">username</div>
      <div class="mention">username</div>
      <div class="mention">username</div>
    </div>
  </div>
  <div class="comment">
    some comment text
  </div>
  <div class="comment">
    some comment text
  </div>
  <div class="comment">
    some comment text
  </div>
  <div class="comment">
    some comment text
  </div>
  <div class="comment">
    some comment text
  </div>
  <div class="comment">
    some comment text
  </div>
  <div class="background">
    <div class="bar"></div>
  </div>
  <div class="start">
    start
  </div>
</div>


我的CSS看起来像这样:

.timeline {
  .comment {
    input {
      width: 100%;
    }
    z-index: 10;
    width: 300px;
    border: 1px solid gray;
    border-radius: 5px;
    background-color: rgb(102, 255, 255);
    padding: 10px;
    margin: auto;
    margin-bottom: 15px;
    position: relative;
    .mention-dropdown {
      width: 100%;
      position: absolute;
      background-color: gray;
      left: 0;
      z-index: 20;
    }
  }
  .background {
    height: 100%;
    width: 100%;
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0;
    .bar {
      top: 0;
      width: 0px;
      height: 100%;
      border: blue solid 2px;
      position: absolute;
      left: calc(50% - 3px);
    }
  }
  .start {
    left: calc(50% - 3px);
    position: absolute;
    bottom: 0;
    background-color: white;
  }
}


我用代码笔重新创建了问题:
https://codepen.io/timolemow/pen/eEKVLN

任何帮助,不胜感激!
谢谢。

最佳答案

您必须删除所有div.comment上的相对位置,并且仅在第一个位置上添加。

.timeline .comment-wrapper {
  position:relative;
}


https://codepen.io/anon/pen/rzKvpq

09-20 19:49