這是一個IE7的bug:職位:絕對;內動態:相對;元素
我有一張表,我推到另一個<tbody>
。好的,問題是在單元格內有一個位置:relative; div和這個div裏面我有其他幾個position:absolute;
divs。
事情是,他們被渲染,如果父div不位置:相對,這意味着,完全在屏幕的左上角。爲什麼?!?!
在ff中,chrome工作正常,但在IE7中,我得到了這些惱人的東西。我試過把hasLayout放在任何地方,但它不起作用。
以下是我有:
<table>
<thead></thead>
<tbody id="mtbody">
</tbody>
</table>
而且這是我收到並推到 「mtbody」(樣本):
<table id="testando">
<tr>
<td hasLayout="true" class="uhr sl" colspan="7" style="border-bottom: dashed 1px #dddddd; background-color: #eeffee;">
<div style="overflow: hidden;" class="holdU" hasLayout="true" betriebsId="83113" betriebsName="2nd Level">
<div hasLayout="true" class="uhr filled0sl" style="width: 679px; left: 0px;">
</div>
<div hasLayout="true" class="border" style="left: 96">
....
因此類 「holdU」 的位置是:相對的,和「uhr」類是絕對的,他們現在在我的左上角,有點不可見。
我該如何解決這個問題?
UPDATE:
所以基本上這是預期的結果:http://jsfiddle.net/kgT6E/(從DanielB)。但我沒有得到那個。想象一下,這個綠色方塊現在距離邊界100px,但不是包住紅色方塊,而是留在左上角,因爲相對於綠色方塊的位置沒有產生任何效果。
這是我使用的東西裝入到表代碼:
$.get(savedUrl, function(res) {
var div = $("<div>").html(res);
// this is because I get other stuff together, but what I really want is the tbody content.
$("#mtbody").html($(div.find("tbody").get(0)).html());
});
之前,我是裝的一切到TBODY, $( 「#mtbody」)負載(savedUrl)
但IE7沒有識別TR和TD,所以我不得不將它們包裝在一張桌子上。現在我從這個位置得到了這個奇怪的定位:絕對div。
UPDATE2:我試過把所有的單位(23 px),但沒有運氣到目前爲止。我認爲這是因爲我必須首先將它包裝在一個div中,當我這樣做時,位置不會被更新..真的很奇怪和討厭的錯誤來自IE .. =/
你能想出一個簡單的例子來演示jsfiddle.net上的這種行爲嗎? – StriplingWarrior