はじめに
こんにちは。Qiita株式会社で主にQiita Zineの記事制作を担当しています。非エンジニアです。記事やサイトは見るのも作るのも好きで、そこからHTMLやCSSに興味を持って調べるなどして、少し勉強しています。
「遷移ボタンを作るコードの仕組みを知る(前編)」を書いていまして、こちらはその続きです。
Chat GPTに教えてもらったコードを一部変更したもの
<html>
<head>
<style>
/* スタイルの設定 */
.transition-button {
display: inline-block;
padding: 10px 20px;
background-color: #00ced1;
color: #fff;
text-decoration: none;
border-radius: 4px;
transition: background-color 0.3s ease;
}
.transition-button:hover {
background-color: #333;
}
</style>
</head>
<body>
<!-- ボタンの表示 -->
<a href="遷移先のURL" class="transition-button">PUSH!</a>
</body>
</html>
前回はdisplay
padding
と色の指定まで調べました。
text-decoration
で文字を装飾
text-decoration
は何でしょう。言葉通り「テキスト」を「デコレーション(装飾する)」のだと想像はつきますが、一体どのような役割かは分かりません。調べると、アンダーラインを引いたり、その色を変えたり、波形など形を指定したりするプロパティのようです。
text-decoration
には-color
-line
color
style
などを続けて書くこともあり、それぞれ色、線を引く位置、色、線のスタイル(直線、波形、二重線など)を指定できます。
いくつか試してみました。
■text-decoration-style: wavy;
:波形にする
■text-decoration-style: dashed;
:点線にする
■text-decoration-style: wavy;
とbackground-color: #00008b;
:波形にして、線の色を #00008b
にする
簡潔にまとめてくださっている記事があったので、貼っておきます。
border-radius
は要素の四角を丸めるショートハンドプロパティ
border-radius
は、要素の4つの角を丸めるプロパティらしいです。今回は 4px
と指定されているので、差が分かるようborder-radius: 70px;
に変更してみます。丸みが強くなりました。
四角それぞれの指定も可能
■border-top-right-radius
:右上
■border-top-left-radius
:左上
■border-bottom-right-radius
:右下
■border-bottom-left-radius
:左下
ちなみに↑のように、四角それぞれの指定もできます。border-radius
は四角すべて一括で指定しています。せっかくなので、四角異なるピクセルで指定してみます。
border-top-right-radius: 50px;
border-top-left-radius: 10px;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 30px;
自由自在にいびつな形を作れます。
transition
で簡単なアニメーションを
transition: background-color 0.3s ease;
と.transition-button:hover〜
をまとめて説明。
transition
は簡単に言うと、スタイルの開始から終了までの動きを指定するショートハンドプロパティのようです。今回ですと、カーソルをボタンに合わせると、(後述しますが)0.3秒かけて黒色 #333
に変化します。
解説
今回設定している ease
は、最初と最後がゆっくりと変化することを意味しています。0.3s
は0.3秒。s
はsecond(秒)の頭文字ですね。大袈裟に、例えば10s
に変更すると、色が #00ced1
から #333
に変化するまで、非常に長かった(10秒)。
ease
の応用として、 ease-in
ease-out
などがあり、それぞれ「最初はゆっくりと、徐々に速く」「最初が速く、徐々にゆっくりと」した動きを設定できます。
.transition-button:hover
:hover
は擬似クラス(特定の状態のときのみ実行されるクラス)の一つ。:hover
は、要素にマウスのポインタが置かれたときのみ適用されます。
.transition-button:hover {
background-color: #333;
}
は、「ボタンにマウスのポインタが乗っている場合(.transition-button:hover
)、背景色が#333
になりますよ」という意味です。ただ#00ced1
から#333
に変化するのは違和感あったので、#20b2aa
に変更。
よくありそうな、色が濃くなるような設定にしました。画像比較では少々分かりづらいかもしれませんが。
表示するテキストとリンクの設定
最後は<body>
の部分。
<body>
<!-- ボタンの表示 -->
<a href="遷移先のURL" class="transition-button">PUSH!</a>
</body>
class="transition-button"
は、これまで解説してきたクラス.transition-button
の設定を適用する指定。class="transition-button"
を消すと、ただのテキストになります(下の画像)。
遷移先のURL
には文字通り、遷移させたいURLを、「PUSH!」 にはボタンに表示させたいテキストを記載します。
おわり
今まではネットで紹介されているコードをコピペして使うことが多く、仕組みはよく知らないままでしたが、今回調べてみると少しですが分かりました。