CSS3プロパティtransform:scaleを使用したいと思います。
div
{
transform: scale(0.5,0.5);
}
Internet Explorer 8以前でこれを模倣する方法はありますか? filter
またはJavaScriptソリューションを使用している場合がありますか?
結果なしでウェブを検索しました。
どうもありがとう、ヴィンセント
IE9は変換をサポートしています:
-ms-transform: scale(0.5,0.5);
IEの他のバージョンには、複雑な構文があります。このようなもの:
filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',
M11=1.5320888862379554, M12=-1.2855752193730787,
M21=1.2855752193730796, M22=1.5320888862379558);
詳細は here をご覧ください。
いいえ、IE8以前は標準のtransform
スタイルをサポートしていません。 IE9はサポートしています。
filter
スタイルを使用して試すことができる解決策がありますが、それらは面倒です。
ただし、質問で説明している単純なケース(基本的には単純なスケールダウン)には、IE独自のzoom
プロパティを使用できます。
非標準なので、zoom
の最も一般的な使用はwithzoom:1
。これは、IEの多くのレイアウトの不具合を修正するために使用されます(特にIE6およびIE7で)。しかし、実際のズームも行うので、zoom:0.5
探している効果を実現します。
zoom
を使用することの良い点は、他の通常のCSSプロパティと同様に、IEで動作することです(filter
代替には、知るために)。
zoom
を使用する場合の唯一の欠点は、IE9以降で無効にする必要があることです。そうしないと、transform
スタイルと干渉し、望ましくない効果が生じます。私は一般的にCSSハックの使用をサポートする人ではありませんが、/9
ハック( ここに記載 )IE8以前のみに影響を与えるため、同じスタイルシートでtransform
とzoom
の両方を指定できます。 :
div {
transform: scale(0.5,0.5);
zoom: 0.5\9;
}
それ以外の場合は、条件付きコメントを使用して、使用するかどうかを決定する必要があります。
単純な比例スケールよりも複雑な処理を行う場合は、明らかにzoom
は適切ではありませんが、質問のような単純な場合には完璧です。
http://msdn.Microsoft.com/en-us/library/ms533014(v = vs.85).aspx
ただし、IEのフィルターは使用が簡単ではなく、他のCSS効果と常に組み合わせられるわけではありません。
しかしIE 9サポートスケール https://developer.mozilla.org/en/CSS/transform
これを試してください: https://github.com/pbakaus/transformie