MENU

cssでグラデーションをつける

目次

はじめに

HTML・CSSについて学習時、ボタンデザインのサンプル集などを見る機会が増えるようになって感じるようになったこと。

cssで文字やボタンのデザインにグラデーションにすることなんてあります?


少なくともわたしがこれまで閲覧してきたWebページには文字やボタンにグラデーションがかかっていた記憶がない…グラデーションをかけた実装サンプルは必要?とずっと思っていました(実装サンプル集を出している皆さま、ごめんない…。)

しかし、ある日のこと。その考えが一変!

娘から貯めたお小遣いで推しグッズを購入したい!とメモを渡され、指定されたページを確認して衝撃を受けました。
衝撃を受けたサイトがこちら ( ・∀・)つ

STPR ONLINE STORE

ヘッダーロゴとボタンデザインでグラデーションがかかっている(;゚Д゚)
むしろこのグラデーションがかかっていることでブランドの効果がよりよく現れている‼️と感心してしまいました。

ということで、これを機にcssで文字にグラデーションをかける方法とグラデーションをかけたボタンデザインを改めて学ぶことにしました。

文字にグラデーションをかける

【html】

<p class="text">松の実生えの臼になるまで</p>

【css】

.text {
    font-size: 60px;
    font-weight: bold;
    background-image: linear-gradient(45deg, #e95364 0%, #f7b877 33%, #b7272d 66%);
    -webkit-background-clip: text;
    color: transparent;
    display: inline-block;
}
background-image: liner-gradient()

背景にグラデーションを適用する

-webkit-background-clip: text

背景を文字の形に切り取る

color: transparent;

文字色を透明にする

ブロック要素で文字にグラデーションをつけたい場合は、display: inline-block
背景のグラデーションが親要素(画面)いっぱいに広がってしまい、文字がグラデーションのほんの一部分にしか重ならず、文字全体にグラデーションが反映されないため

グラデーション背景のボタン

hover 前
hover 後

【html】

<div class="test-button">
    <a href="#" class="test-button-sample">ボタンを押してください</a>
</div>

【css】

.test-button-sample {
    display: inline-block;
    padding: 24px 32px;
    text-decoration: none;
    border-radius: 8px;
    font-weight: bold;
    color: #fefefe;
    background-image: linear-gradient(60deg, #72ae2c 15%, #22572b 100%);
    transition: .4s;
}

.test-button-sample:hover {
    background-image: linear-gradient(60deg, #02983b 20%, #99cc81 100%);
}

最後に

今回の件でわかったのはcssによってグラデーションをつける、ということは

  • 「htmlにて表示されるものに直接グラデーションをかける」、ということはできない
  • (htmlで表示されるものの)背景にグラデーションをかけて調整することで表現できる

ということらしい。(ちなみにストプリオンラインショップのグラデーション文字はイメージでした)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

40代女性。2023年よりWeb制作の学習を開始。
会社員(エンジニアの端くれ。色々あって現在休職中)、妻、母などの顔を使い分けて生活中。
好きなもの・好きなこと:
餃子・コーヒー・猫(でも猫アレルギー)・音楽鑑賞・ゆるいアニメ

目次