Pinterestや各種ギャラリーサイトでよく見る、サイズがバラバラな写真をタイル状に敷き詰めたMasonry(メイソンリー)レイアウトを、Studioで実装する方法を解説します。
概要
CSSだけで実装するため、Studio Freeプランでも使用可能。
レスポンシブ対応。
CMS(動的リスト)で管理も可能。
1.通常時と同じようにリストを作成
普段と同じようにリストを作成します。画像はimgモードです。<li>のボックスの横幅はautoにしておきます。
2.IDの設定
必要なIDはmasonryとloadmoreの2つだけです。
作成手順
- <ul>に対してID masonry を設定。
- CMSを使った動的リストの場合は「loadmore」のボタンが入った親ボックスに対してID loadmore を設定。

3.CSSを貼る
Embedボックスに以下のコードを貼り付けます。
<style>
/* Masonry 本体 */
#masonry{display:block!important;column-count:5;column-gap:16px;margin:0;padding:0;list-style:none;}
#masonry>*{break-inside:avoid;margin:0 0 16px;}
#masonry img{width:100%;height:auto;display:block;}
/* レスポンシブ */
@media(max-width:1280px){#masonry{column-count:4;}}
@media(max-width:1024px){#masonry{column-count:3;}}
@media(max-width:768px ){#masonry{column-count:2;}}
@media(max-width:359px ){#masonry{column-count:1;}}
/* Load More を下部中央に */
#loadmore{
column-span:all; /* Columns から独立してフル幅 */
-webkit-column-span:all;
display:flex!important; /* 中央寄せ */
justify-content:center;
width:100%;
}
</style>左サイドパネル「追加」の中にあるEmbed「Blank」を追加し、横幅と縦幅は0px、右サイドパネルの埋め込みコードの箇所に上記のコードを入力します。
「column-count:5」や「column-gap:16px」の値を変更すればPCでの列数やアイテムの間隔を変更できます。
レスポンシブでの列数は「レスポンシブ」の箇所にある値を変更してください。
動的リストを使わない場合は/* Load More を下部中央に */の箇所は削除して構いません。
ギャップ無し・写真の下にタイトルを記載した例


懸念点
- 動的リスト使用時、追加読み込みで既存アイテムの位置が動く
Load Moreのボタンで追加のアイテムを読み込みすると、既存のアイテムの位置にも影響が及んでしまうため、使いづらさがあります。
すべての環境で検証できているわけではないため、各自検証をお願いします。
まとめ
動的リストで50件以上表示するときの挙動に課題は残るものの、StudioのFreeプランでもメイソンリーレイアウトを実装することができます。
ポートフォリオや小規模なギャラリーサイトなどで、どうしてもメイソンリーレイアウトが使いたいときにぜひ活用いただければと思います。













