Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.10.2018, 18:18
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Есть ли кроссбраузерный способ растянуть нижний дочерний блок, если верхний имеет фик
Здравствуйте, подскажите пожалуйста, есть ли в данном примере кроссбраузерный способ растянуть нижний дочерний блок, если верхний имеет фиксированную высоту?
li имеет свойствоа display: flex;. flex-direction: column;
Первый дочерний элемент имеет фиксированную высоту.
Необходимо, что бы второй элемент (item__content) растянулся со своей позиции до конца родителя (item)
https://codepen.io/s24344/pen/yRvxbK
.list {
  display: flex;
  flex-wrap: wrap;
}

.item {
  width: 33.3%;
  display: flex;
  flex-direction: column;

  &__backgroung {
    height: 200px;
    background-color: #61BFAD;
  }
}
<ul class="list">
  <li class="item">
    <div class="item__backgroung"></div>
    <div class="item__content">
      <div class="item__content-article">
        <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 class="item__content-label">
        Lorem ipsum
      </div>
    </div>
  </li>
  <li class="item">
    <div class="item__backgroung"></div>
    <div class="item__content">
      <div class="item__content-article">
        <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>
        <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>
        <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 class="item__content-label">
        Lorem ipsum
      </div>
    </div>
  </li>
</ul>

Последний раз редактировалось s24344, 17.10.2018 в 18:31.
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2018, 18:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

s24344,
не разбивайте пример на куски, делайте целиком.
Ответить с цитированием
  #3 (permalink)  
Старый 19.10.2018, 13:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от s24344
есть ли в данном примере кроссбраузерный способ растянуть нижний дочерний блок
Если только скриптом... Поскольку у родителя нет четкого объявления высоты. Он тянется контентом дитя.

Так себя вести может только таблица. Но для нее у тебя тегов маловато... Только список.
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2018, 16:59
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Вот так?
.list {
  display: flex;
  flex-wrap: wrap;
}

.item {
  display: flex;
  flex-direction: column;
  width: 33.3%;
  
  &__backgroung {
    height: 200px;
    background-color: #61BFAD;
  }

  &:last-child {
    flex-grow: 2;

    .item__backgroung {
      background-color: #167C80;
    }
  }
}


В CSS есть ещё calc - можно от 100% вычитать ширину первого блока (33,3%) - width: calc(100% - 33.3%);

Если первый блок будет фиксированной ширины (не в процентах как сейчас, а в пикселях), то при помощи calc второй блок можно делать адаптивным.

Вот пример - я первому блоку задал ширину 430px, для второго блока ширина (100% - 430px)
.list {
  display: flex;
  flex-wrap: wrap;
}

.item {
  display: flex;
  flex-direction: column;
  width: 430px;
  
  &__backgroung {
    height: 200px;
    background-color: #61BFAD;
  }

  &:last-child {
    width: calc(100% - 430px);
    
    .item__backgroung {
      background-color: #167C80;
    }
  }
}

или как вы хотите?
Ответить с цитированием
  #5 (permalink)  
Старый 20.10.2018, 12:30
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Большое спасибо за помощь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
None блок, если есть другой блок Ingred Элементы интерфейса 4 23.07.2018 14:35
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37