2015-03-01 1 views
1

У меня есть div с двумя div внутри (один заголовок и один - это контент). Высота контейнера div должна быть одинаковой, а высота заголовка заголовка содержит текст, который устанавливается в единицах vw, поэтому количество строк текста будет меняться в зависимости от экрана пользователя в дополнение к высоте div. Я хочу, чтобы содержимое div заполнило оставшуюся высоту в контейнере, не расширив его. Как мне это сделать?Второй div внутри статического контейнера div занимает оставшуюся высоту ниже названия динамической высоты

http://jsfiddle.net/3sjrv5rz/

div.container{ 
 
    height:200px; 
 
    width:200px; 
 
} 
 

 
div.title{ 
 
    font-size:4vw; 
 
} 
 

 
div.content{ 
 
    
 
}
<div class="container"> 
 
    <div class="title">This is my title and it may be on multiple lines with different size screens</div> 
 
    <div class="content"> 
 
     This is my content and will contain a Google Visualization graph. 
 
    </div> 
 
</div>

+0

Контейнер DIV не расширяется, однако содержание будет переполнение, если в высоту больше, чем 200 -4vw титула? –

+0

Контейнерный контейнер не расширяется. Он будет восстанавливаться при высоте 200px независимо от того, что. Тем не менее, содержимое div переполняет его, если высота больше, чем право на 200px - 4vw. Вы можете переполнить: скрытый на своем контейнере, чтобы предотвратить переполнение, однако содержимое может быть обрезано. Может быть, использовать некоторый javascript для вычисления высоты заголовка Title после загрузки и правильной настройки высоты контента? –

+0

Мне просто интересно, есть ли что-то с CSS, которое бы разрешило это. Для моих целей обрезанный контент неприемлем, поэтому я придумал решение Javascript. – WXMan

ответ

0

После немного больше мысли, и благодаря Janx от комментариев Венесуэлы, я решил использовать яваскрипт решения. Эта функция работает, чтобы изменить размер содержимого div на любое количество пикселей. Я прикрепляю это к window.onresize, и вещь правильно изменяется!

function resizeTitles(){ 
 
\t //1) Check the size of the titles 
 
\t //2) Check the size of the container div 
 
\t //3) Get remaining pixel height 
 
\t //4) Assign height to the flex div 
 
\t var titleHeight = document.getElementById("wind-title").clientHeight; 
 
\t var containerHeight = document.getElementById("wind-container").clientHeight; 
 
\t var remainingPixels = (containerHeight - titleHeight).toString(); 
 
\t document.getElementById("wind-wrapper").style.height = remainingPixels.concat("px"); 
 
}

0

Вы можете использовать overflow: scroll для этого.

http://jsfiddle.net/x0cLa1Lu/

+0

Извините, я должен был добавить, что одно требование состоит в том, что весь контент div всегда виден. Это было бы отличным решением, если бы полосы прокрутки были приемлемыми! – WXMan

Смежные вопросы