2013-07-04 4 views
1

Пожалуйста, найти свой фрагмент кода, как показано ниже:Как установить вложенную высоту DIV так же, как контейнер?

<table cellpadding="0" cellspacing="0" style="background-color:Aqua"> 
    <tr> 
     <td> 
      <div style="background-color:Yellow">Navigation</div> 
     </td> 
     <td> 
      Content<br />Content<br />Content<br />Content<br /> 
     </td> 
    </tr> 
</table> 

Как я могу сделать высоту <div> же, как рост содержания в <td>? Я попытался установить высоту = 100% или AUTO в <div> и <td>, но это не исправить проблему.

Я знаю, что это может быть исправление, чтобы получить высоту содержимого с помощью JQuery/JavaScript и установить на <div>, например:

$(".divClass").height($(".contentClass").height()); 

но мое содержание будет коллапс и раздолье на действия пользователя, так Я ищу лучшего решения. решение должно быть кросс-браузер, совместимый для IE 6, IE 10.

+0

возможно дубликат [Сделать DIV заполнить оставшееся пространство экрана] (http://stackoverflow.com/questions/90178/make-a-div-fill-the-remaining- screen-space) – raam86

+0

Вы хотите, чтобы ваш финальный стол выглядел примерно так: http://jsfiddle.net/VmrBB/? –

+0

также решение jquery, которое у вас есть, хорошо. когда пользователь выполняет действие, которое изменяет макет, вы можете снова вызвать один и тот же код (возможно, через функцию?). –

ответ

1

Вы можете сделать это непосредственно с HTML/CSS

<table cellpadding="0" cellspacing="0" style="background-color:Aqua"> 
    <tr> 
     <td> 
      <span style="height:100%; display:inline-block; width: 100%; background-color:Yellow"> 
       Navigation 
      </span> 
     </td> 
     <td> 
      Content<br />Content<br />Content<br />Content<br /> 
     </td> 
    </tr> 
</table> 
+0

Демо-версия - http://jsfiddle.net/aq3JA/ – Craig

+0

+1 хорошее решение! –

+0

Интересно, это решение для IE? Я пробовал и не работает как ожидалось – sams5817

1

Попробуйте использовать height:inherit; :) работал для меня :)

JsFiddle.

HTML:

<div class="foo"> 
    <div class="foo2"> 
     Foo2 
    </div> 
</div> 

CSS:

.foo { 
    height: 100px; /*try changing this */ 
    background-color: yellow; /*it wont show*/ 
} 

.foo2 { 
    height: inherit; 
    background-color: green; /*it will show*/ 
} 
+0

контекст находится внутри таблицы, хотя это неторопливое решение, оно не будет работать в этом случае: http://jsfiddle.net/gdR7e/ –

+0

Я имею в виду решение вложенного div в td, а не вложенный div в div – sams5817

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