回答編集履歴

1

コードと解説の追記

2024/05/05 09:20

投稿

hatena19
hatena19

スコア34017

test CHANGED
@@ -10,3 +10,33 @@
10
10
  [aspect-ratio - CSS: カスケーディングスタイルシート | MDN](https://developer.mozilla.org/ja/docs/Web/CSS/aspect-ratio)
11
11
 
12
12
  [CSSのaspect-ratioプロパティで手軽にアスペクト比を設定する | Free Style](https://blanche-toile.com/web/css-aspect-ratio)
13
+
14
+ 追記
15
+ ---
16
+ アスペクト比を固定する方法は、aspect-ratioが実装される前は、
17
+ padding で余白をとり、その余白部分に内容を絶対配置(position:absolute)でレイアウトするという方法をとっていました。
18
+ しかし、この方法は内容を絶対配置するためにいろいろ複雑になります。
19
+
20
+ aspect-ratioを使えばpaddingと絶対配置を使う必要はなくシンプルにアスペクト比を固定できます。
21
+
22
+ とりあえず質問のHTMLコードの親要素(`p-content-introduce`)のアスペクト比を固定する場合のCSSコード例です。
23
+
24
+ ```css
25
+ .p-content-introduce {
26
+ width: 100%;
27
+ margin: 0 auto;
28
+ aspect-ratio: 100 / 49;
29
+ background: url();
30
+ background-repeat: no-repeat;
31
+ background-position: center center;
32
+ background-size: cover;
33
+ }
34
+ @media screen and (max-width: 768px) {
35
+ .p-content-introduce {
36
+ aspect-ratio: 100 / 121;
37
+ }
38
+ }
39
+ ```
40
+
41
+ [CodePenサンプル](https://codepen.io/hatena19/pen/zYXgKKo)
42
+