Closed1

アスペクト比固定 Googlemap/サムネイル

やっぷやっぷ

GoogleMapの埋め込み

HTML共通

<div class="map">
  <iframe src="https://www.google.com/maps/..." width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
</div>

padding-topハック

.map {
	position: relative;
	padding-top: 56.25%; /* 9÷16×100 */
}
.map iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

疑似要素にpadding-top

疑似要素にpadding-topをつけることで自分自身の幅が変わっても自分の幅を基準にアスペクト比を保てる

.map {
	position: relative;
	max-width: 700px;
	margin: auto;
}
.map::before {
	content: "";
	display: block;
	padding-top: 56.25%; /*ここにつける*/
}
.map iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

aspect-ratio

IE非対応

.map {
	max-width: 700px;
	margin: auto;
	aspect-ratio: 16 / 9;
}
.map iframe {
	width: 100%;
	height: 100%;
}

サムネイルカード

CSS共通

.card {
	display: block;
	border: 1px solid #e7e7e7;
	border-radius: 5px;
	color: inherit;
	text-decoration: none;
	transition: color .3s;
}
.card__txt {
	margin: 20px;
}

背景画像サムネイル

HTML

<ul class="cardList">
  <li class="cardList__item">
    <a href="#" class="card _card01">
      <p class="card__txt">この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。</p>
    </a>
  </li>
  <li class="cardList__item">
    <a href="#" class="card _card02">
      <p class="card__txt">この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。</p>
    </a>
  </li>
</ul>

CSS

.card::before {
	content: "";
	display: block;
	padding-top: 56.25%;
	border-radius: 5px 5px 0 0;
	background-position: center center;
	background-size: cover;
	transition: .3s;
}
/*サムネイル画像指定*/
.card._card01::before {
	background-image: url(img/001.jpg);
}
.card._card02::before {
	background-image: url(img/002.jpg);
}

CMSからの動的出力を考慮したHTML

<ul class="cardList">
  <li class="cardList__item">
    <a href="#" class="card" style="background-image: url(img/001.jpg);">
      <p class="card__txt">この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。</p>
    </a>
  </li>
</ul>

img画像サムネイル

HTML

<ul class="cardList">
  <li class="cardList__item">
    <a href="#" class="card">
      <div class="card__thumb"><img src="img/001.jpg" alt="写真:赤いハイビスカス"></div>
      <p class="card__txt">この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。</p>
    </a>
  </li>
  <li class="cardList__item">
    <a href="#" class="card">
      <div class="card__thumb"><img src="img/002.jpg" alt="写真:青い空とヤシの木"></div>
      <p class="card__txt">この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。</p>
    </a>
  </li>
</ul>

CSS

.card__thumb {
	position: relative;
	transition: .3s;
}
.card__thumb::before {
	content: "";
	display: block;
	padding-top: 56.25%;
}
.card__thumb img {
	position: absolute;
	left: 0;
	top: 0;
	max-width: none;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 5px 5px 0 0;
}

IE11対応
object-fit polyfill

このスクラップは2023/03/29にクローズされました