Как сделать так, чтобы средний вложенный div прокручивался, а верхний и нижний вложенные div сохраняли фиксированное положение?

#html #css #angular

Вопрос:

У меня есть родительский контейнер, содержащий 3 внутренних дива. Я хочу, чтобы только средний внутренний div прокручивался горизонтально. Вот мой код:

 <div class="outer-container">
    <div class="top-inner-container">
        xoxoxoxoxoxo    
    </div>
    <div class="middle-inner-container">
        only this must scroll ===> yeah yeah yeah        
    </div>
    <div class="bottom-inner-container">
        oxoxoxoxoxox
    </div>
</div>
 
 .outer-container {
    height: 470px;
    position: relative;
}
.top-inner-container {
    position: absolute;
    width: 100%;
    top: 0px;
    left: 0px;
    height: 70px;
}
.middle-inner-container {
    white-space: nowrap;
    width: 1480px;
    background-color: grey;
    overflow-x: scroll;
    position: absolute;
    top: 60px;
    left: 0px;
    height: 340px; 
    display: flex; 
}
.bottom-inner-container {
    position: absolute;
    // background-color: #fff;
    width: 100%;
    top: 404px;
    left: 0px;
}
 

Я перепробовал много вариантов, и это лучшее, что я получаю, но здесь все 3 свитка divs.
Есть идеи, как это исправить?

Обновление: Чтобы повторить. Вместо того, чтобы просто прокручивать средний раздел по горизонтали, прокручиваются все 3 раздела. Полоса прокрутки отображается на родительском элементе, а не только на div с классом средний-внутренний-контейнер. Желаемый результат-это когда горизонтально прокручивается только div со средним внутренним контейнером класса.

важный
Пока игнорируйте вертикальную прокрутку. Я просто понимаю, что с большим количеством контента вертикальная прокрутка работает. Меня не волнует вертикальная прокрутка, просто горизонтальная прокрутка. Верх и низ не должны прокручиваться горизонтально, только средний div должен прокручиваться горизонтально. «xoxoxoxoxo» всегда должно быть видно на экране при горизонтальной прокрутке. Спасибо.

Вот скрипка

Ответ №1:

Вы можете настроить горизонтальную прокрутку среднего контейнера, добавив white-space: nowrap; его в .middle-inner-container класс.

css выглядит так:

 .outer-container {
    height: 470px;
    position: relative;
    width: 100%;
    .top-inner-container {
        width: 100%;
        height: 70px;
    }
    .middle-inner-container {
        white-space: nowrap;
        background-color: grey;
        overflow-x: scroll;
        height: 340px;
        .block {
            display: inline-block;
            vertical-align: top;
        }
    }
    .bottom-inner-container {
        // background-color: #fff;
        width: 100%;
        top: 404px;
        left: 0px;
    }
}
 

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

Комментарии:

1. пробел: nowrap не влияет

2. Насколько я понимаю, вы хотите, чтобы средняя горизонтальная прокрутка div работала, добавив больше текста, он просто завернут в контейнер, а x-прокрутка не работает. Не могли бы вы прояснить проблему более благодарно

3. Я уточнил в своем обновлении. Посмотрите на мой обновленный вопрос. Спасибо.

4. Я собираюсь добавить контент в среднюю секцию, который займет много горизонтального пространства. Этот средний контейнер должен быть единственным контейнером scrobble (горизонтальным), а верхняя и нижняя части всегда должны быть видны на экране. Это то, что я пробовал с фиксированной позицией, но верхним, средним и нижним свитками.

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