2013-02-24 20 views
5

裏面的div高度100%拿這個:http://jsfiddle.net/zVscL/4/的Firefox,IE9 +問題與TD(工作Chrome範例)

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

打開在Chrome頁面,則Firefox瀏覽器。藍色的div不會繼承

有沒有解釋爲什麼會發生這種情況?任何修復?純HTML/CSS解決方案更可取。

我一直在這個狗屎幾個小時試圖讓CSS的行爲,當我終於做FF這樣做。吃掉我的開發時間。

+1

討論過的類似問題:http://stackoverflow.com/questions/1110915/is-a-div-inside-a-td-a-bad-idea – dragonfly 2013-02-24 10:08:29

+0

謝謝,得讓我的老闆知道tds中的div是有時候壞主意! – meiryo 2013-02-24 10:11:24

回答

9

嘗試trtd的高度設置爲100%:

tr, td { height: 100%; } 

一般來說得到height: 100%正常工作,該元素的父母都高度必須設置爲好。

編輯:

另一種解決方案是與容器div包裹td的內容,並使用絕對定位,以確保.edit-me格設置有效地具有100%的高度。

這裏的HTML是什麼樣子:

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

和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; 
} 

希望這有助於!

+0

無法使用IE瀏覽器... http://jsfiddle.net/zVscL/7/(幸運的是我們只支持IE9 + – meiryo 2013-02-24 10:59:32

+0

讓我知道你是否可以用IE9 +來做到這一點,我可能會不接受這個答案 – meiryo 2013-02-24 11:10:41

+0

對不起,沒有如果你願意,可以自由地接受IE9 +。我唯一的建議是嘗試設置桌子的高度和/或嘗試設置「td」,「tr」,「table」的高度像素,而不是百分數 – Xavi 2013-02-24 11:19:02

相關問題