先日の記事 で画像をGrid表示する話をしましたが、CSSでできるという話を聞いたので置き換えました。
{{ $size := "200x" }}
{{ $mobileSize := "100x100"}}
<div class="img-view">
{{ range $idx, $elem := .Params }}
{{ $res := resources.GetMatch $elem }}
{{ $image := $res.Resize $size }}
{{ $imageWebP := $res.Resize (printf "%s %s webp q70" $size) }}
{{ $mobileImage := $res.Fit $mobileSize}}
{{ $mobileImageWebP := $res.Fit (printf "%s %s webp q70" $mobileSize) }}
{{ $imageURL := $image.RelPermalink }}
{{ $imageWebPURL := $imageWebP.RelPermalink }}
{{ $mobileImageURL := $mobileImage.RelPermalink }}
{{ $mobileImageWebPURL := $mobileImageWebP.RelPermalink }}
<a href="{{ $res.RelPermalink }}" target="_blank">
<div class="thumb-img">
<picture class="pc">
<source srcset="{{ $imageWebPURL }}" type="image/webp" >
<img src="{{ $imageURL }}" alt="{{ $elem }}" width="{{ $image.Width }}" height="{{ $image.Height }}"/>
</picture>
<picture class="sp">
<source srcset="{{ $mobileImageWebPURL }}" type="image/webp">
<img src="{{ $mobileImageURL }}" alt="{{ $elem }}" width="{{ $mobileImage.Width }}" height="{{ $mobileImage.Height }}"/>
</picture>
<p class="pc">クリックで拡大</p>
</div>
</a>
{{ end }}
</div>
.img-view{
display: grid;
grid-auto-rows: auto;
grid-template-columns: repeat(3, auto);
grid-row-gap: 0;
grid-column-gap: 10px;
justify-content: start;
align-content: start;
...
}
ループ処理が消えてだいぶシンプルになりました。
実装されたものはここで確認できます。