2013-02-24 10 views
5

Weź to: http://jsfiddle.net/zVscL/4/Firefox, IE9 + problem z div wysokość 100% wewnątrz td (przykład pracuje nad Chrome)

.edit-me { 
height:100%; /*does not behave the same as Chrome*/ 
width:10px; 
border:1px solid blue; 
background:red; 
float:left; 
overflow: auto; 
} 

otworzyć stronę w Chrome, następnie Firefox. Niebieski div nie dziedziczy

Czy istnieje wyjaśnienie, dlaczego tak się dzieje? Jakieś poprawki? Preferowane są czyste rozwiązania HTML/CSS.

Byłem w tym gównie od wielu godzin, próbując sprawić, by CSS zachowywał się i kiedy w końcu zrobiłem to FF. Spożywanie mojego czasu rozwoju.

+1

Podobny problem omówiono: http://stackoverflow.com/questions/1110915/is-a-div-inside-a-td-a-bad-idea – dragonfly

+0

Dzięki, muszę dać mój szef wie, że div w TDS są zły pomysł! – meiryo

Odpowiedz

9

spróbuj ustawić wysokość tr i td do 100%:

tr, td { height: 100%; } 

Generalnie dostać height: 100% pracować prawidłowo, wszystkie szczyty rodziców element musi być ustawiony jako dobrze.

Edycja:

Alternatywnym rozwiązaniem jest owinięcie zawartości td z pojemnikiem div i wykorzystanie pozycjonowania absolutnego do zapewnienia .edit-me Div skutecznie posiada 100% wzrost.

Oto co HTML wyglądałby następująco:

<table border="1"> 
    <tr> 
     <td> 
      <div class="container"> 
       <div class="edit-me"></div> 
       Foo 
       <br/> 
       Bar 
      </div> 
     </td> 
     <td>hello</td> 
    </tr> 
</table> 

i CSS:

.container { 
    position: relative; 
    padding-left: 10px; 
} 

.edit-me { 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    left: 0; 

    width:10px; 
    border:1px solid blue; 
    background:red; 
    overflow: auto; 
} 

Nadzieja to pomaga!

+0

Nie działa na IE ... http://jsfiddle.net/zVscL/7/ (na szczęście tylko obsługujemy IE9 + – meiryo

+0

Daj mi znać, jeśli możesz to zrobić przy pomocy IE9 +. Może mi się nie podoba odpowiedź: – meiryo

+0

Niestety nie mam łatwy dostęp do IE9 + w tej chwili, nie krępuj się, jeśli chcesz.Moje jedyne zalecenie to spróbuj ustawić wysokość stołu i/lub spróbuj ustawić wysokości 'td',' tr', 'table' piksele zamiast procentów – Xavi