1. ホーム
  2. ハイパーリンク

[解決済み】縦横比を維持したままレスポンシブにdivサイズを変更する【重複あり

2022-04-07 13:05:45

質問

画像に幅や高さをパーセントで指定すると、縦横比を保ったまま拡大・縮小されますが、他の要素で同じ効果を得たい場合、幅と高さをパーセントで結びつけることは可能でしょうか。

どのように解決するのですか?

JavaScriptは不要で、純粋なCSSを使用して行うことができます。これは、(やや直感に反するが)以下の事実を利用したものである。 padding-top のパーセンテージは、包含ブロックの . 以下はその例です。

.wrapper {
  width: 50%;
  /* whatever width you want */
  display: inline-block;
  position: relative;
}
.wrapper:after {
  padding-top: 56.25%;
  /* 16:9 ratio */
  display: block;
  content: '';
}
.main {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  /* fill parent */
  background-color: deepskyblue;
  /* let's see it! */
  color: white;
}
<div class="wrapper">
  <div class="main">
    This is your div with the specified aspect ratio.
  </div>
</div>