position absolute и скролл родителя

124
20 января 2020, 20:40

Доброго всем времени суток, столкнулся с неожиданной для себя проблемой, хотелось бы понять причины такого поведения.

На сайте есть бутстрап табы,

.nav-tabs {
margin-bottom: 19px;
border: 0;
width: 100%;
position: relative;
overflow-y: auto;
white-space: nowrap;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;}

как можно увидеть табы прокручиваются при большом количестве контента, и в связи с этим я захотел добавить блюр по правому краю

.nav-tabs:before {
content: "";
position: absolute;
width: 10%;
right: 0;
height: 80px;
top: -33px;
z-index: 2;
background: linear-gradient(to right, transparent 1%, transparent 10%,#ffffff 100%);}

но неожиданно данный элемент стал прокручиваться вместе с остальным содержимым табов

подскажите пожалуйста, что я упускаю? с css увы знаком не столь сильно как хотелось бы

Answer 1

Когда вы создаёте контейнер nav-tabs и делаете его релативным вы кладете в него абсолютный before элемент. который начинает отсчитывается от родителя (так как родитель релативный)! Далее происходит сдвиг родителя (прокручивание), но так как before отсчитывается от него, то он сдвигается на такое же расстояние right: 0.

Для решения проблемы можно сделать так:

<div class="tabs">
    <div class="nav-tabs">
        //вывод элементов
    </div>
    //before....
</div>

Т.е делаете еще один контейнер со 100% шириной и релативным и ему присваиваете элемент before, а прокручивание делаете так же блоку nav-tabs

READ ALSO
Скопировать страницу

Скопировать страницу

Прошу прощения сразу, вопрос наверно банальный, но к сожалению не для меняЕсть сайт на ворпресе

182
Влияние контена элемента на flex-grow

Влияние контена элемента на flex-grow

Как сделать, чтобы при такой верстке, контент (во втором примере) не влиял на ширину элементов и при этом сохранялась "резиновость"

189
Bootstrap 4 выровнять кнопку вертикально?

Bootstrap 4 выровнять кнопку вертикально?

Как в Bootrstrap 4 выровнять вертикально по центру кнопку внутриcol?

135
Как заменить содержимое div с помощью jquery

Как заменить содержимое div с помощью jquery

Есть ссылка и divКак реализовать замену содержимого div на содержимое ссылки по клику на ссылку с помощью Jquery?

167