Как сделать 2 деления одинаковой высоты, одно изображение (без JavaScript)? - PullRequest
0 голосов
/ 26 февраля 2019

Я хочу сделать 2 отзывчивых деления рядом, сохраняя их одинаковой высоты.Один из них - изображение, а другой - текст.Как бы убедиться, что высота изображения равна, без использования JavaScript.размеры моего изображения 1000 × 1799.

body {
  font-family: arial;
}

.container {
  width: 80%;
  margin: auto;
  overflow: hidden;
}

#text {
  width: 50%;
  text-align: left;
}

#image img {
  width: 50%;
}

.box {
  display: flex;
  flex-direction: row;
}
<div class="container">
  <div class="box">
    <div id="text">
      <p>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
        in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
      </p>
    </div>
    <div id="image">
      <img src="lfc.png">
    </div>
  </div>
</div>

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

заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Вы можете использовать flexbox:

.row {
  display: flex; /* equal height of the children */
}

.col {
  flex: 1; /* additionally, equal width */

  padding: 1em;
  border: solid;
}


<div class="row">
   <div class="col">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
   <div class="col"><img src="lfc.png"></div>
</div>
0 голосов
/ 26 февраля 2019

Ваши две колонки на самом деле уже имеют одинаковую высоту;Вы просто не позволили своему изображению расширяться, чтобы заполнить height контейнера.Чтобы это сделать, просто установите width: 100% и height: 100% на #image img.Имейте в виду, что при этом вы будете искажать пропорции изображения.Если вы хотите сохранить соотношение, вместо этого вам нужно будет указать width: auto, хотя при этом не будет места для фрагментов изображения, когда нет места для его отображения.

Обратите внимание, что вытакже необходимо width из 50% для #image, чтобы как текстовый контейнер, так и контейнер изображений занимал половину width.

Также обратите внимание, что из-за характера текста, занимающегоразное количество линий при разной ширине, высота изображения всегда будет разной.Тем не менее, контейнер всегда будет одинаковой высоты.Я добавил фон к контейнеру, чтобы продемонстрировать это.

Это можно увидеть в следующем.

body {
  font-family: arial;
}

.container {
  width: 80%;
  margin: auto;
  overflow: hidden;
}

#text {
  width: 50%;
  text-align: left;
  background: cyan;
}

#image {
  width: 50%;
}

#image img {
  width: 100%;
  height: 100%;
}

.box {
  display: flex;
  flex-direction: row;
}
<body>
  <div class="container">
    <div class="box">
      <div id="text">
        <p>
          Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
          in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </p>
      </div>
      <div id="image">
        <img src="http://placehold.it/100">
      </div>
    </div>
  </div>
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...