≪ Today I learned.
RSS購読
    公開日
    タグ
    CSS
    著者
    ダーシノ

    background-clipでテクスチャ画像を使ったテキストやボーダーを表現する

    Safari 18.2background-clip: border-areaがサポートされた。

    サポート状況は以下のとおり。

    background-clipを使うことで、background-imageなどで指定した背景を切り抜き、表示することができる。

    デザイン性重視のウェブサイトでも、画像をつくって<img src="..." alt="テキストの説明">みたいなことをせずに、そのまま表示できる。ただし、背景画像を透過させるためにcolor: transparentをしているため、background-imageの読み込みに失敗すると何も見えなくなってしまうため、フォールバックのテストが必要だ。

    <section class="clip">
      Hello world.
    <section>
    .clip {
      /* 色が残っていると背景画像が見えないため */
      color: transparent;
      border-color: transparent;
    
      background-image:
        url(/* ボーダーのテクスチャ */),
        url(/* テキストのテクスチャ */);
      background-clip:
        border-area,
        text;
    }

    デモ

    ※一部ブラウザでは正常に表示できません

    Hello world.

    デモ画像

    border-clipを使ったサンプル画像