2011-08-17 48 views
1

我需要對遺留的基於web的cms(它具有基於表格的佈局)進行一些更改。我只能對網站的內容區域進行更改,它位於幾個複雜的嵌套表格內,但我想我們可以假設這裏只有一個表格。div對齊問題在基於表格的佈局

鑑於下面的(簡化)代碼,是否可以在IE6和IE7的最右側顯示ABC?

<table> 
    <tr> 
    <td style="width:200px; border:solid 1px black;"> 
     <!-- can only make changes inside here --> 
     <div style="border:solid 1px red; text-align:right;">ABC</div> 
     <input style="width:300px;" value="DEF"> 
    </td> 
    </tr> 
</table> 

<input>標記表示某些內容可能比表格單元格的預設寬度更長。在IE8或其他現代瀏覽器中,div可以擴展以匹配輸入。但在IE6和IE7中,我似乎無法使用CSS來擴展超過200像素。我試過使用浮點,寬度,相對位置等。再一次,我不能刪除200px寬度的聲明或對錶結構進行任何其他更改。

任何人都知道如何做到這一點?謝謝。

+1

您是否嘗試過使用負右邊距並將其右移?我不確定這是你需要的還是IE6和IE7會用它做的:http://jsfiddle.net/ambiguous/AfW4B/ –

+0

你可以嘗試類似margin-left:170px(或者任何px值是必要的),看看是否會把abc移到右邊 – RSM

+0

謝謝。我想我沒有明確說明內容可以具有動態寬度,因此使用固定的邊距不起作用。 – ananda

回答

0

如果你可以改變細胞內的結構,你可以用在divfloat:left(或right,或者是inline-block)的一切,所以它會擴展到的內容是這樣的:http://jsfiddle.net/kizu/AkVqS/

如果您不能包裝input部分,您可以使用只運行一次的表達式(所以它不會導致任何性能問題):http://jsfiddle.net/AkVqS/2/

+0

使用表達完美,謝謝。 – ananda