уровень бульмы внутри коробки переполнен

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

Любая помощь будет оценена по достоинству.

Это результат, который я ожидаю:

введите описание изображения здесь

Но при уменьшении ширины ломается:

введите описание изображения здесь

Это код, который я использую:

<div className="columns sub">
          {this.props.options.map(option => (
            <div className="column is-one-third" key={option.id}>
              <div
                name={option.id}
                className={
                  `box ` +
                  (this.props.optionToBeChosen === option.id
                    ? "box-is-active"
                    : "")
                }
                onClick={() => this.props.onClick(option.id)}
              >
                <div className="level is-mobile">
                  <div className="level-item level-left">
                    <div>
                      <p className="box-text-title">{option.title}</p>
                      <p className="box-text-small">{option.description}</p>
                      <p className="box-text-small">{option.description2}</p>
                    </div>
                  </div>

                  <div className="level-item level-right has-text-right">
                    <div>
                      <p className="box-text-demo">{option.cta}</p>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          ))}
        </div>

person jmrueda    schedule 12.05.2019    source источник


Ответы (2)


Уровням Bulma явно сказано не сжиматься

.level-left, .level-right {
    flex-basis: auto;
    flex-grow: 0;
    flex-shrink: 0;
}

Вам придется переопределить это, чтобы уровни не выходили из .box элементов.

Вместо того, чтобы переопределять ВСЕ элементы уровня, я предлагаю вам добавить собственный класс к тем уровням, которые вы хотите уменьшить.

Что-то вроде

<div class="level is-mobile level-is-shrinkable">
   Level items here...
</div>

<style>
    .level-is-shrinkable .level-left,
    .level-is-shrinkable .level-right {
        flex-shrink: 1;
    }
</style>
person just-a-web-designer    schedule 13.05.2019
comment
сейчас буду тестить - person jmrueda; 13.05.2019

В моем случае мне пришлось добавить третье условие стиля для центрированных элементов level-item:

.level-is-shrinkable .level-left,
.level-is-shrinkable .level-item,
.level-is-shrinkable .level-right {
  flex-shrink: 1;
}

Большое спасибо just-a-web-designer за его ответ.

person dsaves    schedule 11.11.2020