【css】imgやvideoをアスペクト比を保ちつつ画面一杯に表示する
はじめに
機会ないかもしれないけど次やるときのためのメモ。
やりたいのはスマホでこんな感じの画面。画像でも動画でも同じcssで。
横画像
portrait ![]() |
landscape ![]() |
縦画像
portrait ![]() |
landscape ![]() |
実装
htmlはどちらの動画も共通で、cssは横長と縦長とでそれぞれ用意する。
html
<div id="wrapper"> <img src="/path/to/file" /> </div>
320x180(横長)のcss
body { margin:0; } #wrapper { position:relative; width: 100%; height:100%; background-color:black; } #wrapper > img { width: 100%; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; }
400x625(縦長)のcss
body { margin:0; } #wrapper { height: 100%; text-align:center; background-color:black; } #wrapper > * { height: 100%; }
以上です