Retina ディスプレイを使用しているユーザーには、Web サイトの画像がぼやけて見えます。(たとえば、Retina MacBook Pro の場合)。
Retina ディスプレイを使用している訪問者には高解像度の画像を提供し、それ以外の人には標準サイズの画像を提供し、画像の見た目のサイズを維持するにはどうすればよいですか?
Retina ディスプレイを使用しているユーザーには、Web サイトの画像がぼやけて見えます。(たとえば、Retina MacBook Pro の場合)。
Retina ディスプレイを使用している訪問者には高解像度の画像を提供し、それ以外の人には標準サイズの画像を提供し、画像の見た目のサイズを維持するにはどうすればよいですか?
HTML で、次の<div>
ようなものを作成します。
<div class="ninjas-image"></div>
そして、CSS に以下を追加します。
.ninjas-image {
background-image: url('ninja-devices.png');
width: 410px;
height: 450px;
}
@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
.ninjas-image {
background-image: url('ninja-devices@2x.png');
background-size: 410px 450px;
}
}
ここでの魔法は CSS@media
クエリにあります。デバイスが 1.5 (144 dpi) 以上の「デバイス ピクセル比」を報告したときにサブインする、2 倍のサイズの画像 (ninja-devices@2x.png) があります。このようにすると、元の小さい画像を非 Retina デバイスに配信することで帯域幅を節約できます。もちろん、Retina デバイスでも見栄えがします。
ノート:
この回答は、ベストプラクティスを反映するために 2016 年に更新されました。min-device-pixel-ratio
基準にはなりませんでした。代わりにmin-resolution
、標準に追加されましたが、執筆時点ではデスクトップおよびモバイル Safari はサポートしていません (したがって、-webkit-min-device-pixel-ratio
フォールバック)。最新情報はhttp://caniuse.com/#feat=css-media-resolutionで確認できます。
以下を使用して、比率が 1.5 以上である複数のケースを処理しています。これには、より多くのデバイスとブラウザーが考慮されます。
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min--moz-device-pixel-ratio: 1.5),
only screen and (min-device-pixel-ratio: 1.5) {
サイト全体で Retina を有効にしています: http://www.embraceware.com/