React и Bulma: как сделать вертикальную прокрутку столбца с помощью css?

Используя React и Bulma столбцы, как сделать колонку вертикально прокручиваемой (overflow-y) с помощью css?

В приведенном ниже коде я просто получаю набор фильтров, которые отображаются в первом столбце благодаря компоненту «Фильтры». Затем я хочу отобразить список документов с помощью компонента DocumentListView. Это происходит во второй колонке.

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

import React from 'react'
import Filters from './components/Filters/Filters'
import DocumentListView from './components/DocumentListView/DocumentListView'
import { fetchFilters } from './_actions'
import { connect } from 'react-redux'
import { BrowserRouter } from 'react-router-dom'

import './App.css'


class App extends React.Component {
    componentDidMount() {
        this.props.fetchFilters()
    }

    render() {
        return (
            <BrowserRouter>
                <div className='App'>
                    <div className='columns'>
                        <div className='column is-one-fifth'>
                            <Filters />
                        </div>
                        <div className='column scrollable'>
                            {/* This column should be vertically scrollable */}
                            <DocumentListView />
                        </div>
                        <div className='column'></div>
                    </div>
                </div>
            </BrowserRouter>
        )
    }
}

const mapDispatchToProps = (dispatch) => {
    return {
        fetchFilters: () => dispatch(fetchFilters()),
    }
}

export default connect(null, mapDispatchToProps)(App)

Вот файл App.css, который я использую:

html,
body {
    width: 100% !important;
    height: 100% !important;
    max-height: 100%;
    background-color: lightgray;
    overflow: hidden;
}

.App {
    width: 100%;
    height: 100%;
    padding: 2%;
}

.columns {
    height: 100%;
}

.scrollable {
    height: 100%;
    width: 100%;
    overflow-y: auto;
}

Спасибо за помощь.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
0
1 097
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

добавить максимальную высоту в класс столбцов. так:-

.columns{
max-height: 200px;
}

если вы хотите, чтобы высота вашего центрального div зависела от его родного брата, сделайте следующее: -

.scrollable{
   height: 100%;
   position: relative;
}

.scrollable>div{
   position: absolute;
   height: 100%;
   width: 100%;
   left: 0;
   top: 0;
   overflow-y: auto
}

Я надеюсь, что это сработает

Большое спасибо. Мне пришлось изменить максимальную высоту на 650 пикселей, чтобы вторая колонка использовала почти все пространство по вертикали. Почему я не могу установить максимальную высоту столбцов на 100%?

Overasyco 10.12.2020 17:12

max-height 100% — это содержимое, которое содержит div. Это означает, что максимальная высота равна высоте div

Sonu Nigam 10.12.2020 17:24

Другие вопросы по теме