Как я могу перекрыть псевдоэлемент, позиционированный абсолютно с относительным позиционированием элемента - PullRequest
0 голосов
/ 08 апреля 2020

Я работаю с парой липких элементов, и у меня проблема с тенями. Мне нужно отбросить тень на последний элемент липкой группы, чтобы она могла выглядеть следующим образом.

text

<div class="wrapper">
      <div class="header">Header</div>
      <div class="content">Content</div>
      <div class="content">Content</div>
      <div class="content">Content</div>

      <div class="sticky">Sticky</div>
      <div class="content">Content</div>

      <div class="sticky">Sticky</div>
      <div class="content">More Content</div>
      <div class="sticky">Sticky</div>
      <div class="content">Content</div>
      <div class="content">Content</div>
      <div class="content">Content</div>
      <div class="sticky">Sticky</div>
    </div>
.wrapper {
  display: flex;
  height: 150px;
  width: auto;
  background-color: cyan;
  overflow-x: scroll;
  overflow-y: hidden;
  border: 1px solid black;
  white-space: nowrap;
}

.header, .content, .sticky {
  flex: 0 0 auto;
}

.header {
  width: 200px;
  height: 100%;
  background-color: green;
}

.sticky {
  position: sticky;
  left: 0;
  right: 0;
  width: 150px;
  z-index: 5;
  background-color: pink;
  overflow: hidden;
}


.sticky::after,
.sticky::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -4px;
  bottom: -4px;
  width: 14px;
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.sticky::after {
  right: 0;
  box-shadow: 4px 0 5px -4px rgba(0, 0, 0, 0.2);
}

.sticky::before {
  left: 0;
  box-shadow: -4px 0 5px -4px rgba(0, 0, 0, 0.2);
}

.active-right.sticky::before {
  opacity: 1;
}

.active-left.sticky::before {
  opacity: 1;
}


.separator {
  width: 0px;
  height: 100%;
  background-color: #fff;
}

.content {
  width: 150px;
  height: 100%;
}

Я создал примерный пример как мой код выглядит здесь:

https://jsfiddle.net/stanierae/pqras31c/1/

Есть ли какой-нибудь возможный способ сделать это?

...