「CSS3で画像を領域内に上下中央でフィットさせる方法」の編集履歴(バックアップ)一覧に戻る
CSS3で中の画像をボックス内にフィットさせる方法をまとめていきます。6月19日記事
イメージ
目次
次のデザインで、次のコードがあったとします。
イメージ
HTML部
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="reset.css"> <link rel="stylesheet" type="text/css" href="style.css"> <title>フィット</title> </head> <body> <div id="wrapper"> <div id="left"> </div> <div id="right"> </div> </div> </body> </html>
CSS部
@charset "utf-8"; /* CSS Document */ #wrapper{ margin: 10px auto; padding:50px; width: 700px; height:300px; border:1px solid #000; } #left{ width: 300px; height: 300px; background: #F00; float:left; } #right{ width: 300px; height: 300px; background: #0F0; margin-left:100px; float:left; } これでは画像を入れた場合はみ出してしまいます。
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="reset.css"> <link rel="stylesheet" type="text/css" href="style.css"> <title>フィット</title> </head> <body> <div id="wrapper"> <div id="left"> <p><img src="tatenaga.png" alt="縦長"></p> </div> <div id="right"> <p><img src="yokonaga.png" alt="縦長"></p> </div> </div> </body> </html>
すると以下のようになってしまいます。
img要素の方に幅と高さを書き、object-fit:containを行うとフィットしてくれます。
@charset "utf-8"; /* CSS Document */ #wrapper{ margin: 10px auto; padding:50px; width: 700px; height:300px; border:1px solid #000; } #left{ width: 300px; height: 300px; background: #F00; float:left; } #left img{ width:300px; height: 300px; object-fit: contain; } #right{ width: 300px; height: 300px; background: #0F0; margin-left:100px; float:left; } #right img{ width:300px; height: 300px; object-fit: contain; }