2017-02-07 7 views
0

私はinline-block親と子要素を持っている場合はIEがそれらの間のゴーストのスペースを示していますゴーストIE 11で、親と子の間のマージン/パディング

enter image description here

私はHTMLで空白を削除することによってこの問題を解決することができますが、私はこのためのCSSのクロスブラウザのソリューションがあるかどうかを知りたい。

.bar { 
 
    height: 30px; 
 
} 
 

 
.section { 
 
    display: inline-block; 
 
    height: 100%; 
 
    background: red; 
 
} 
 

 
.section::before { 
 
    content: ""; 
 
    display: inline-block; 
 
    height: 100%; 
 
    vertical-align: middle; 
 
    margin-left: -.25rem; 
 
} 
 

 
span { 
 
    background: green; 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
}
<div class="bar"> 
 
    <div class="section"> 
 
    <span> 
 
     IE ghost 
 
    </span> 
 
    </div> 
 

 
    <div class="section"> 
 
    <span> 
 
    No ghost 
 
    </span><!-- 
 
--></div> 
 
</div>

+0

??? – TricksfortheWeb

+0

開発者がIEを使用するユーザーの大半をサポートすることを禁じます... – BoltClock

答えて

0

これはinline-blockinline行動が原因で発生します。それらは、周囲の兄弟要素(スペース、テキストなどを含む)が無視されるのとは対照的に解析される他のインライン要素のように扱われます。

あなたが述べたように、1つの解決策は、影響を受けるdiv間の空白を削除することです。これはあなたのHTML書式に混乱を招く可能性があります。 CSS.whiteスペースを使用して

ソリューション:

あなたはあなたがNOWRAPに .white-spaceのCSSプロパティを設定することができますその後、をラップするために含むdiv.barの内容を必要としないであろうことを確信している場合:なぜあなたはIEを使用している

.bar { 
    height: 30px; 
    white-space: nowrap; 
} 
+0

動作していないようです。 IEは 'white-space:nowrap;'の有無にかかわらず同じ結果を示します。 – user764754

関連する問題