CSS3 badge

画像を使用せずに CSS のテクニックだけで文字の色を半分だけ変える方法を紹介します。

言葉での説明が難しいので、まずはサンプルをご覧になっていただいたほうが早いでしょう。

CSS3 Black & White : https://on-ze.com/demo/css3-black-white/

上記のサンプルではレスポンシヴにも対応。
すべてのデバイスで同じように表示させることに成功しています。

HTML の記述

同じテキストを2回記述するのではなく、カスタムデータ属性を追加しただけの非常にシンプルなコードです。

<p data-inverted="Black and White">Black and White</p>

ここではカスタムデータ属性は『data-inverted』と名付けています。

CSS の記述

続いてキモとなるスタイルシートの記述です。

p:before {
content:attr(data-inverted);
overflow:hidden;
position:absolute;
left:0;
top:0;
width:50%;
color:#000;
}

HTML側で追加したカスタムデータ属性をCSSのcontent:attr(data-inverted);でコピーして、ベースのテキストとは違う色を指定します。

理屈がわかれば簡単ですが、目からウロコの斬新な発想ですよね。

ちなみに、このスタイルシートの設定でwidth:50%;の箇所をheight:50%;に変えると、文字の左右ではなく、上下で違う色を指定することが可能です。

縦バージョンのデモは以下。

CSS3 Black & White Vertical : https://on-ze.com/demo/css3-black-white-vertical

ぜひお試しください。