いろいろな方法がありますので、とりあえず「レスポンシブデザイン」でWEB検索してみてください。
実際に使う技術としては、メディアクエリが一般的だと思います。
スマホ用のCSSとPC用のCSSをメディアクエリで切り替えることになります。
PC用の2カラムのレイアウトは、Gridを使うのが最新の技術になります。
他にも方法はいろいろあります。
上記のヒントを参考にWEB検索してできるところまで作成してください。
そして行き詰ったら、その時点でのHTML、CSSを提示して、どこがどのようにうまくいかないかを質問してください。
追記
コードとレイアウトの画像が提示されたので、ご希望のレイアウトをgridで実現する場合のコード例
html
1<div class="content">
2 <div class="item1">1</div>
3 <div class="item2">2</div>
4 <div class="item3">3</div>
5</div>
scss
1.content{
2 display:grid;
3 grid-template-rows: auto auto auto;
4 grid-template-columns: 1fr 300px;
5 grid-gap: 10px;
6 .item1{
7 grid-row: 1;
8 grid-column: 1;
9 height:300px;
10 background-color: #ff8e8e;
11 }
12 .item2{
13 grid-row: 1 / 3;
14 grid-column: 2;
15 width: 300px;
16 background-color: #996cff;
17 }
18 .item3{
19 grid-row: 2;
20 grid-column: 1;
21 height:300px;
22 background-color: #8fe470;
23 }
24}
25
26@media (max-width:768px) {
27 .content{
28 .item1{
29 grid-row: 1;
30 grid-column: 1 / 3;
31 }
32 .item2{
33 grid-row: 2;
34 grid-column: 1 / 3;
35 width: 100%;
36 height: 300px;
37 }
38 .item3{
39 grid-row: 3;
40 grid-column: 1 / 3;
41 }
42 }
43}
動作確認用サンプル
下記のような書き方もできます。
grid-template-areas を使います。こちらの方が視覚的にレイアウトが把握しやすいと思います。
scss
1.content{
2 display:grid;
3 grid-template-rows: auto auto auto;
4 grid-template-columns: 1fr 300px;
5 grid-template-areas:
6 "area1 area2"
7 "area3 area2";
8 grid-gap: 10px;
9 .item1{
10 grid-area: area1;
11 height:300px;
12 background-color: #ff8e8e;
13 }
14 .item2{
15 grid-area: area2;
16 width: 300px;
17 background-color: #996cff;
18 }
19 .item3{
20 grid-area: area3;
21 height:300px;
22 background-color: #8fe470;
23 }
24}
25
26@media (max-width:768px) {
27 .content{
28 grid-template-areas:
29 "area1 area1"
30 "area2 area2"
31 "area3 area3";
32
33 .item2{
34 width: 100%;
35 height: 300px;
36 }
37 }
38}
動作確認用サンプル
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/11 10:58
2019/12/11 11:02
2019/12/11 11:18
2019/12/11 11:31
2019/12/11 11:38 編集
2019/12/11 12:03
2019/12/13 00:46