2017-03-27 9 views
0

何らかの理由でIE 11にheight:100%という別の要素内の絶対配置要素がありません。私はそれに固定された高さを与えるだけで動作するようです。絶対位置の高さ100%はIE 11では機能しませんが、Microsoft Edgeでは機能しません。

HTML

<div class="parent-table"> 
    <div class="parent-cell"> 
     <div class="child"> 
     </div> 
    </div> 
    </div> 

CSS

html, 
body { 
    height: 100% 
} 
.parent-table { 
    display: table; 
    table-layout: fixed; 
    position: relative; 
    height: 400px; 
    width: 100%; 
} 

.parent-cell { 
    height: 300px; 
    background: blue; 
    position: relative; 
    width: 100%; 
    display: table-cell; 
} 

.child { 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    height: 100%; 
    background: red; 
    width: 100% 
} 

Reproduction Online JSFiddle

  • (期待どおりに動作し)IEエッジが赤いボックスが表示されます(親の親は固定1を持っているにもかかわらず)
  • IE 11は青色のボックスを表示します(完全にm絶対配置された要素を発行する)
+0

私はあなたがマイクロソフトエッジを意味すると仮定 - - 「IEエッジ修正後Click to see

> IE11と基本的に同じものを指します。 Microsoft Edge *はIE *ではありません。 – BoltClock

+0

うん、Microsoft Edge – Alvaro

答えて

2

このバグは永遠にたくさんの人を悩ませています。インターネットエクスプローラは、以下のようにそれの内部(今inner-childクラスを使用して)絶対配置要素を使用する前に、細胞内で(今childクラスを使用して)中間要素を必要とする:

<div class="child"> 
    <div class="inner-child"> 
    </div> 
</div> 

次のように中間要素がスタイルされるべきです。

.child { 
    display:inline-block; 
    width:100%; 
    height:100%; 
    position:relative; 
} 

ここでは、IE11上で動作するソリューションのフィドルですが、以前のバージョンでも動作します。絶対位置での子要素に-100%:

https://jsfiddle.net/efvLdmtt/7/

+0

だから、 'inline-block'要素は親として必要ですか? 'display:table-cell'で固定された高さを使用していても? – Alvaro

+0

残念ながらyes – scooterlord

0

は、親要素と下に隠されたオーバーフローを適用します。

私の場合、それは:擬似要素でした。

IE上の問題 - > Click to see

.contact-box-parent { 
    display: table-cell; 
    overflow: hidden; 
    &:before { 
     content: ''; 
     background: @white; 
     position: absolute; 
     top: 0; 
     bottom: -100%; 
     left: 15px; 
     right: 15px; 
     z-index: 0; 
    } 
    } 
+0

スクリーンショットを追加するのではなく、ポストにテキストとしてコードを含めてください。 – EFrank

+0

確かに.. :) –

+0

背景を拡張してオーバーフローコンテンツを隠しただけです...これは枠線などでは使用できません。 – mzvarik

関連する問題