メイソンリーレイアウト Masonry Layout
高さの異なる要素を隙間なく詰めて配置するレンガ積み型レイアウト。
ライブデモ
写真 A
写真 B
写真 C
写真 D
写真 E
写真 F
写真 G
写真 H
写真 I
ソースコード
<div class="demo-masonry" id="demoMasonry">
<div class="demo-masonry-item" style="--h:120px;">写真 A</div>
<div class="demo-masonry-item" style="--h:180px;">写真 B</div>
<div class="demo-masonry-item" style="--h:140px;">写真 C</div>
<div class="demo-masonry-item" style="--h:200px;">写真 D</div>
<div class="demo-masonry-item" style="--h:110px;">写真 E</div>
<div class="demo-masonry-item" style="--h:160px;">写真 F</div>
<div class="demo-masonry-item" style="--h:130px;">写真 G</div>
<div class="demo-masonry-item" style="--h:190px;">写真 H</div>
<div class="demo-masonry-item" style="--h:150px;">写真 I</div>
</div>.demo-masonry {
columns: 3; column-gap: 12px;
}
.demo-masonry-item {
break-inside: avoid; margin-bottom: 12px;
height: var(--h, 120px); border-radius: 10px;
background: linear-gradient(135deg,
color-mix(in srgb, var(--ui-primary) 15%, #fff),
color-mix(in srgb, var(--ui-primary) 30%, #fff));
display: flex; align-items: center; justify-content: center;
font-size: 14px; font-weight: 600; color: var(--ui-primary);
border: 1px solid color-mix(in srgb, var(--ui-primary) 15%, transparent);
transition: transform 0.2s, box-shadow 0.2s;
}
.demo-masonry-item:hover {
transform: scale(1.02);
box-shadow: 0 6px 20px color-mix(in srgb, var(--ui-primary) 20%, transparent);
}AIプロンプト
Basic
メイソンリーレイアウト(Pinterest風)をHTML/CSSで作ってください。高さの異なる要素を隙間なくレンガ積みのように配置します。
Custom
以下の仕様でメイソンリーレイアウトを実装してください。 - CSS columnsを使ったピュアCSS実装 - レスポンシブ(モバイル1列、タブレット2列、PC3列) - プライマリカラー: #2563eb - ホバーで拡大エフェクト - 画像読み込み完了後にレイアウト再計算 - グラデーション背景のプレースホルダー
Advanced
アクセシビリティ対応のメイソンリーレイアウトを実装してください。 - CSS Grid masonry(grid-template-rows: masonry)対応 - フォールバック(JS実装)の用意 - ResizeObserverでリアルタイムなレイアウト調整 - 画像遅延読み込み(loading="lazy") - prefers-reduced-motion対応 - フォーカス順序の論理性を確保 - IntersectionObserverで画面外要素の軽量化 - ライトボックス連携対応