Как я могу выполнить этот дизайн с помощью flexbox?

#html #css #flexbox

#HTML #css #flexbox

Вопрос:

Я пытаюсь выполнить этот дизайн с помощью flexbox:

Предполагается, что это будет одностраничный веб-сайт.

   .container {
      display: flex;
    }

    .big {
      flex: 2;
      height: 70vh;
      background: gray;
    }

    .small {
      flex: 1;
      height: 70vh;
      background: gray;
    }  
 <div class="container">
      <div class="small">
      </div>
      <div class="smallest">
      </div>
      <div class="big">
      </div>
 </div>

    

Я понятия не имею, как реализовать «самый маленький» div, чтобы он составлял 25% от большого, не говоря уже о том, чтобы сделать «маленький» 75% от большого.

Также меня действительно смущает высота, мне нужно, чтобы они всегда имели одинаковую высоту.

Ответ №1:

С помощью flexbox вы можете обернуть small и smallest в отдельный div и использовать столбец flexbox left в в разделе.

Я понятия не имею, как реализовать «самый маленький» div, чтобы он составлял 25% от большого

Соотношение 25% к 75% означает соотношение 1: 3 — а на языке flexbox это flex: 1 для малого элемента и flex: 3 для большого элемента.

Также меня действительно смущает высота, мне нужно, чтобы они всегда имели одинаковую высоту.

Вы можете установить высоту контейнера на container элемент — ваш flexbox заполнится до этой высоты.

Смотрите демонстрацию ниже:

 .container {
  display: flex;
  height: 70vh;
}

.big {
  flex: 3;
  background: gray;
  margin-left: 5px;
}

.left {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.left .small {
  background: gray;
  flex: 3;
}

.left .smallest {
  margin-top: 5px;
  background: gray;
  flex: 1;
}  
 <div class="container">
  <div class="left">
    <div class="small">
    </div>
    <div class="smallest">
    </div>
  </div>
  <div class="big">
  </div>
</div>  

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

1. Большое, большое спасибо! Невероятно, как быстро вы решили это для меня!