画像の入ったボックスをPCでは3つ並んで4つ目で折り返し、タブレットでは2つ、SPでは1つにしたいです。
現在もそのようにはなっていますが、それらを囲んでいるfloatが中央にきてくれないです。
最初はfloatを用い作成してましたが、そのやり方でも中央に来ないので、Flexboxを見よう見まねでやってみたまでですが、他の方の質問を見ていると下記のようにしてうまく行くようでしたが、display: flex;を入れるとアイテム1が左側にアウトして消えてしまいます。
.float {
display: flex;
flex-direction: row;
justify-content: center;
}
※中央揃えにしたいですが、アイテム4はアイテム1の真下、アイテム5はアイテム2の真下に来るような、float内は左寄りのものにしたいです。
※image内ですが実際は300×200の画像を入れてます。
よろしくお願いいたします。
HTML
1<!doctype html> 2<html> 3<head> 4<meta charset="utf-8"> 5 <title>無題ドキュメント</title> 6<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0"> 7<link href="style.css" rel="stylesheet" type="text/css"> 8</head> 9 10<body> 11 <div class="content clearfix"> 12 <h1>レスポンシブ</h1> 13 <div class="float"> 14 <div class="item"> 15 <h3>アイテム1</h3> 16 <img class="image" width="300px" height="200px" style="background:#F2C3C4" alt="画像"> 17 <p>テキストテキストテキストテキストテキストテキストテキストテキストテキスト</p> 18 </div> 19 <div class="item"> 20 <h3>アイテム2</h3> 21 <img class="image" width="300px" height="200px" style="background:#F2C3C4" alt="画像"> 22 <p>テキストテキストテキストテキストテキストテキストテキストテキストテキスト</p> 23 </div> 24 <div class="item"> 25 <h3>アイテム3</h3> 26 <img class="image" width="300px" height="200px" style="background:#F2C3C4" alt="画像"> 27 <p>テキストテキストテキストテキストテキストテキストテキストテキストテキスト</p> 28 </div> 29 <div class="item"> 30 <h3>アイテム4</h3> 31 <img class="image" width="300px" height="200px" style="background:#F2C3C4" alt="画像"> 32 <p>テキストテキストテキストテキストテキストテキストテキストテキストテキスト</p> 33 </div> 34 <div class="item"> 35 <h3>アイテム5</h3> 36 <img class="image" width="300px" height="200px" style="background:#F2C3C4" alt="画像"> 37 <p>テキストテキストテキストテキストテキストテキストテキストテキストテキスト</p> 38 </div> 39 </div> 40 </div> 41 </body> 42</html> 43
CSS
1@charset "utf-8"; 2/* CSS Document */ 3body { 4 width: 980px; 5} 6.float { 7 flex-direction: row; 8 justify-content: center; 9} 10.float > div { 11 width: 300px; 12 background: #ddd; 13 margin: 10px; 14 padding: 1em; 15} 16.image { 17 width: 100%; 18} 19.clearfix::after { 20 content: ''; 21 display: block; 22 clear: both; 23} 24@media screen and (min-width: 660px){ 25.float > div { 26 float: left; 27} 28p { 29 overflow: hidden; 30 text-overflow: ellipsis; 31 white-space: nowrap; 32} 33} 34@media screen and (min-width: 990px){ 35 .float > div { 36 width: 28%; 37 } 38p { 39 overflow: hidden; 40 text-overflow: ellipsis; 41 white-space: nowrap; 42} 43}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/25 14:23