2016-01-03 2 views
2

по какой-то причине, моя оболочка div не будет равна той же высоте, что и my maincontent div. Я отправлю код, и мне бы хотелось, чтобы кто-то помог мне понять, почему. Кроме того, я могу использовать JQuery в случае необходимостиНевозможно установить DIV, равный другому DIV HTML/Javascript

Javascript:

var wrap=document.getElementById('wrapper'); 
var left=document.getElementById('maincontent').style.height; 

wrap.style.height=left; 



HTML:

<div id="wrapper"> 

    <!-- TemplateBeginEditable name="Main Content" --> 

    <div id="maincontent"> 

    </div> 

    <!-- TemplateEndEditable --><!-- TemplateBeginEditable name="Background image" --> 

    <div id="image" style="background-image: ;"> 

    </div> 
+0

Вы должны уточнить свой вопрос и включить пример сценария jsfiddle/codepen для других, чтобы он быстрее работал. Вопрос сам по себе - вы говорите, что хотите, чтобы div maincontent заполнил оболочку div те же точные размеры? У вас есть второй div внутри обертки, поэтому, если вы не плаваете в этом месте или не вмешиваетесь в позиционирование, ваш основной контент div не сможет распространять всю высоту с чем-то в пути. – Joel

ответ

1

Я не знаю, правильно ли я догадался, но. , ,

Одна из возможных причин того, что вы описали, - наличие инструкции float в DDIV.

See this jsFiddle example

В примере, оболочка DIV неправильный рост - он игнорирует присутствие MainContent DIV и MainContent DIV, кажется, под ним.

Это вызвано инструкцией float:left в maincontent DIV. A float удалит этот DIV из потока HTML, а родительскому DIV будет отсутствовать эта высота. Фактически, основное содержимое DIV переполняет упаковку DIV.

РЕШЕНИЕ:

Поместите overflow:hidden или overflow:auto на родительском DIV (то есть, на обертке DIV).

See this jsFiddle demo of the solution


Примечание:

position:absolute и position:fixed также удалить DIVs из потока. Однако они не могут быть «исправлены», используя overflow:________. Возможно, потребуется вручную установить высоту содержащего DIV или использовать javascript или другое волшебство.

+0

Да, это было прекрасно. Я знал что-то о том, что мой HTML делал это, почему моя обертка ничего не сделала. большое спасибо –

1

1- Если вы тусклый, чтобы получить тонированное высоту элемента используйте один из clientHeight или offsetHeight или scrollHeight вместо style.height

2- убедитесь, что обертка закрывающий тег </div>

3- при определении высоты элемента не забудьте «точек» после того, как значение высоты.

4- Если у вас есть изображения без высоты, установленной для них в вашем div, вам нужно дождаться загрузки изображений до запуска функции высоты. вы можете использовать $(window).load или некоторые другие методы ...

+0

Некоторые хорошие мысли, там, Али. +1 – gibberish

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