我有两个并排的清单。在完整的代码中,可以从MainList中选择列表项之一,该列表项将显示SubList中的相关列表项。我想要的是MainList的右边框与SubList的左边框重叠,以使SubList项看起来像是在MainList中选择显示的结果。



ul {
  list-style: none;
}

.BigContainer {
  border: 2px solid #d50f67;
  border-radius: 5px;
  margin: 10px 0;
  padding: 5px;
  overflow: auto;
}

.MainListContainer {
  width: 50%;
  float: left;
}

.MainListItem {
  border-bottom: 1px solid #ddd;
  border-right: 1px solid white;
  padding: 5px;
  z-index: 2;
}

.MainListItem:last-of-type {
  border: none;
}

.SubListContainer {
  width: 45%;
  float: left;
  border: 1px solid #ddd;
  border-radius: 5px;
}

.SubListItem {
  padding: 5px;
  z-index: 1;
}

<div class="BigContainer">
  <div class="MainListContainer">
    <ul class="MainList">
      <li class="MainListItem">List Option A</li>
      <li class="MainListItem">List Option B</li>
      <li class="MainListItem">List Option C</li>
    </ul>
  </div>
  <div class="SubListContainer">
    <ul class="SubList">
      <li class="SubListItem">Sub-Option 1</li>
      <li class="SubListItem">Sub-Option 2</li>
      <li class="SubListItem">Sub-Option 3</li>
      <li class="SubListItem">Sub-Option 4</li>
      <li class="SubListItem">Sub-Option 5</li>
    </ul>
  </div>
</div>





因此,MainList的右边框将是白色/透明的,以基本上擦除SubList边框的一部分。我知道,目前,做到这一点将消除比所需的更多的SubList边框,但是我将对选择过程进行适当的编码,以确保仅选中的项目应用了相关的边框样式。

最佳答案

selected类添加到所选项目,然后添加

.selected:after{
  content:"";
  position: absolute;
  right:-2px;
  top:0;
  width: 1px;
  height: 100%;
  background-color: white;
}


这将放置在您想要的位置。请注意,MainListItem必须具有position: relative;才能工作。



.selected:after{
  content:"";
  position: absolute;
  right:-2px;
  top:0;
  width: 1px;
  height: 100%;
  background-color: white;
}

ul {
  list-style: none;
}

.BigContainer {
  border: 2px solid #d50f67;
  border-radius: 5px;
  margin: 10px 0;
  padding: 5px;
  overflow: auto;
}

.MainListContainer {
  width: 50%;
  float: left;
}

.MainListItem {
  border-bottom: 1px solid #ddd;
  border-right: 1px solid white;
  padding: 5px;
  z-index: 2;
  position: relative;
}

.MainListItem:last-of-type {
  border: none;
}

.SubListContainer {
  width: 45%;
  float: left;
  border: 1px solid #ddd;
  border-radius: 5px;
}

.SubListItem {
  padding: 5px;
  z-index: 1;
}

<div class="BigContainer">
  <div class="MainListContainer">
    <ul class="MainList">
      <li class="MainListItem">List Option A</li>
      <li class="MainListItem selected">List Option B</li>
      <li class="MainListItem">List Option C</li>
    </ul>
  </div>
  <div class="SubListContainer">
    <ul class="SubList">
      <li class="SubListItem">Sub-Option 1</li>
      <li class="SubListItem">Sub-Option 2</li>
      <li class="SubListItem">Sub-Option 3</li>
      <li class="SubListItem">Sub-Option 4</li>
      <li class="SubListItem">Sub-Option 5</li>
    </ul>
  </div>
</div>

09-27 19:36