画面サイズの半分程度の大きさで画像を表示したいけど、高解像度端末で拡大表示になる(ぼける)のは避けたい。そんな時に便利なのが、cssのmax-width属性です。 max-widthは、「最大の表示幅」をcss単位で指定できます。たとえば max-width: 400px; width:50%; height: auto;
とすると「横幅は画面の半分、ただし400ピクセル(css単位)を超えそうなら400ピクセルとする。高さは、横幅に合わせて自動設定」という指定になります。widthがmax-widthを超えないよう調整されるわけです。 iPhone向けWebサイトでは、viewport指定を入れて横320ピクセルで作成することが多いので、この指定を入れると横160ピクセル相当の大きさで表示されることになります。一方、フルHD端末では横1080ピクセルになるので半分は540ピクセルですが、max-widthに400ピクセルが指定されているため横幅は400ピクセルとして表示されるわけです。 スマートフォンのWebブラウザでは、vireport指定や端末画面解像度など様々な要素でcssピクセル数が大きく変わってきます。レイアウト上、ピクセル数ではなく相対的な「割合」でサイズ設定を行いたくなる場面も多いことでしょう。ただ、画像など無制限に拡大したくない要素もあるはず。そんな時は、widthに加えてmax-widthを指定してみましょう。 なお、max-widthに指定する値はcss単位ですので、device-pixel-ratioの影響を受ける点に注意が必要です。viewportをデフォルト設定したiPhone4などではdevice-pixel-ratioが2となるため、max-widthに160pxを指定すると物理的な解像度は最大320ピクセルになります。 max-widthの設定例 max-width: 400px; width: 50%;
|