(Sample)
Masonry.jsというJavaScriptのライブラリを使用することで、Pinterestのようなグリッドレイアウトを実現できます。
アイテムの配置を自動的に最適化し、空白を最小限に抑えます。
ちなみに、masonryとは英語で石積のことです。
HTML
    <div class="grid">
        <div class="grid-item"> <img src="https://picsum.photos/id/247/300/200" alt="画像"></div>
        <div class="grid-item"> <img src="https://picsum.photos/id/258/300/200" alt="画像"></div>
        <div class="grid-item"> <img src="https://picsum.photos/id/249/300/200" alt="画像"></div>
        <div class="grid-item"> <img src="https://picsum.photos/id/250/300/200" alt="画像"></div>
        <div class="grid-item"> <img src="https://picsum.photos/id/251/300/200" alt="画像"></div>
        <div class="grid-item"> <img src="https://picsum.photos/id/254/300/200" alt="画像"></div>
    </div>.gridの中に.grid-itemを用意しておきます。
CSS
.grid-item { width: 300px; height: 200px; margin: 10px; background: #ccc; padding: 10px; }.grid-itemの設定です。
JavaScript
    <script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js"></script>
    <script>
        const grid = document.querySelector('.grid');
        new Masonry(grid, {
            itemSelector: '.grid-item',
            columnWidth: '.grid-item',
            percentPosition: true
        });
    </script><script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js"...>...</script>: Masonry.jsのJavaScriptファイルをCDNからインクルードします。
設定プロパティ
- itemSelector:
- 値: 
'.grid-item' - 説明: グリッド内のアイテムを指定するCSSセレクタです。Masonryはこのセレクタを使って、どの要素をグリッドアイテムとして扱うかを決定します。
 
 - 値: 
 - columnWidth:
- 値: 
'.grid-item' - 説明: グリッドのカラム幅を指定するためのCSSセレクタです。Masonryはこのセレクタの要素を基準にカラム幅を決定します。同じセレクタを指定することで、アイテムの幅をそのままカラム幅として使用します。
 
 - 値: 
 - percentPosition:
- 値: 
true - 説明: グリッドアイテムの位置をパーセンテージベースで計算します。レスポンシブデザインに対応しやすくなります。
 
 - 値: 
 
その他のプロパティ
- gutter:
- 説明: アイテム間のスペース(ガター)を設定します。数値(ピクセル単位)やセレクタを指定できます。
 - 例: 
gutter: 10 
 - fitWidth:
- 説明: コンテナの幅をアイテムの幅に合わせます。これにより、コンテナがアイテムの幅にぴったりフィットします。
 - 値: 
trueまたはfalse - 例: 
fitWidth: true 
 - originLeft:
- 説明: アイテムのレイアウトが左から始まるかどうかを設定します。
falseに設定すると右から始まります。 - 値: 
trueまたはfalse - 例: 
originLeft: false 
 - 説明: アイテムのレイアウトが左から始まるかどうかを設定します。
 - originTop:
- 説明: アイテムのレイアウトが上から始まるかどうかを設定します。
falseに設定すると下から始まります。 - 値: 
trueまたはfalse - 例: 
originTop: false 
 - 説明: アイテムのレイアウトが上から始まるかどうかを設定します。
 - transitionDuration:
- 説明: レイアウト変更時のアニメーションの持続時間を設定します。CSSの時間指定形式(例: 
0.4s)で指定します。 - 例: 
transitionDuration: '0.4s' 
 - 説明: レイアウト変更時のアニメーションの持続時間を設定します。CSSの時間指定形式(例: 
 - stagger:
- 説明: アイテムのアニメーションを時間差で開始するためのディレイを設定します。
 - 例: 
stagger: 30(30ミリ秒) 
 
その他のプロパティ
以上、Swiperの解説でした。