バナー
Lism のクラスを組み合わせて、画像1枚をまるごとリンクにしたバナーと、画像の上に文字を重ねたバナーを作る例です。
バナー(広告や案内のための、横長の画像リンク)は、Lism のクラスを組み合わせるだけで作れます。新しい CSS は要りません。ここでは、画像だけのバナーと、画像の上に文字を重ねたバナーの2つを紹介します。
使うクラス#
| クラス | このバナーでの役目 |
|---|---|
l--frame |
画像を枠いっぱいに収める |
is--boxLink |
箱ごとクリックできるリンクにする |
has--transition |
マウスを乗せたときの変化をなめらかにする |
-hov:-o |
マウスを乗せると少し透ける(-o は opacity(不透明度)の略) |
-bdrs:20 |
角を丸くする(-bdrs は border-radius の略) |
is--layer |
画像を後ろに敷いて、上に文字を重ねる |
画像だけのバナー#
<a> に上のクラスを付けて、中に画像を1枚入れます。マウスを乗せると、少し透けて見えます。
表示例
html
<a class="l--frame is--boxLink has--transition -hov:-o -bdrs:20" href="#">
<img src="/img/sample-landscape.svg" alt="" width="800" height="450" />
</a>
画像の上に文字を重ねたバナー#
画像に is--layer を付けると、画像が箱の後ろいっぱいに広がります。その上に、半透明の黒い背景を付けた l--flex を重ねて、見出しと矢印のアイコンを左右に分けて置きます。
表示例
html
<a class="l--frame is--boxLink has--transition -hov:-o -bdrs:20" href="#">
<img class="is--layer" src="/img/sample-landscape.svg" alt="" width="960" height="640" />
<div class="l--flex -jc:between -ai:center -pos:relative -g:20 -p:30 -c -bgc -min-h" style="--c: #fff; --bgc: rgb(0 0 0 / 50%); --min-h: 12rem">
<div class="l--stack -g:10">
<p class="-fz:xl -fw:bold">バナー</p>
<p class="-fz:s -hl:s">ここに短い説明の文を入れます。</p>
</div>
<svg class="a--icon -fz:3xl" viewBox="0 0 256 256" width="1em" height="1em" aria-hidden="true">
<path d="M180.24,132.24l-80,80a6,6,0,0,1-8.48-8.48L167.51,128,91.76,52.24a6,6,0,0,1,8.48-8.48l80,80A6,6,0,0,1,180.24,132.24Z"></path>
</svg>
</div>
</a>
ポイントは次のとおりです。
- 文字の箱に
-pos:relative(position: relative)を付けて、後ろの画像より手前に出しています -jc:between(justify-content: space-between)で、文章を左、矢印を右に分けています- 文字の色・背景・最低の高さは、
-c・-bgc・-min-hのクラスを付けて、値をstyleの CSS 変数(--c・--bgc・--min-h)で渡しています - 最低の高さは、ここでは
12remにしています。公式の例では--min-h: 30cqwと書いています。cqwは、まわりの入れ物(is--containerなどの箱)の幅を 100 としたときの割合の単位で、入れ物の幅に合わせたいときに使えます
React・Astro で書く場合#
コンポーネントでは <BoxLink> に layout="frame" を渡すと、上と同じ形になります。
jsx
<BoxLink layout="frame" href="#banner-link" hov="-o" hasTransition bdrs="20">
<img src="/img/sample-landscape.svg" alt="" width="800" height="450" />
</BoxLink>
文字を重ねる形では、画像に <Media isLayer … />、文字の箱に <Flex jc="between" ai="center" pos="relative" …> を使います。
関連するページ#
公式ドキュメント
2026年10月5日時点の内容(lism-css 1.0.1・@lism-css/ui 0.40.1)をもとに、やさしい日本語でまとめています。