2017-09-27 9 views
0

私はCSS3子コンビネータ(>)を使ってdivの子をmax-width: 100%;に設定しようとしています。 box-sizing:border-box;と組み合わせて、divの任意のコンテンツがdivを決して超えないように設定しようとしています。CSS3子コンビネータに*

* { 
    box-sizing: inherit; 
} 
html { 
    box-sizing: border-box; 
} 
div > * { 
    max-width: 100%; 
} 

は今、私はdivの内側にイメージを持っている:

<div style="width: 70%;"> 
    <img src="foo" width="750" height="200" /> 
</div> 

750個のピクセルはdiv要素の70%の幅よりも広くなっている場合は、画像はdiv要素の勃発します。 CSSを次のように変更した場合:

div > img { 
    max-width: 100%; 
} 

... divに収まるように画像が縮小されます。私はここで何が欠けていますか?この状況でワイルドカード*が動作しないという既知の問題はありますか?画像について

(名前空間を使用していない限り)あなたはautoheightする必要があります

答えて

0

子供セレクタのサポート(>)はIE 7にベースを遡り、ユニバーサルセレクタ(*は)戻ってIE 7にも同様にさかのぼりそれが伸びないようにする。

* { 
 
    box-sizing: inherit; 
 
} 
 
html { 
 
    box-sizing: border-box; 
 
} 
 
div > * { 
 
    max-width: 100%; 
 
    height: auto; 
 
}
<div style="width: 70%;"> 
 
    <img src="http://placehold.it/750x200" width="750" height="200" /> 
 
</div>

+0

私の謝罪 - コードのタイプミス。 OPで修正。 –

+0

OK。私の例では、あなたが望むように 'div> *'を使っていますか? https://jsfiddle.net/mnck9qh7/ – Jonathan

+1

あなたのコードが動作し、私自身のコードをもっと詳しく調べました(OPは単純化されたバージョンでした)。いくつかのスタイリングは、他の場所から忍び寄って物事を乱していました。 –

関連する問題