LoginSignup
13
4

遷移ボタンを作るコードの仕組みを知る(後編)

Last updated at Posted at 2023-05-20

はじめに

こんにちは。Qiita株式会社で主にQiita Zineの記事制作を担当しています。非エンジニアです。記事やサイトは見るのも作るのも好きで、そこからHTMLやCSSに興味を持って調べるなどして、少し勉強しています。

遷移ボタンを作るコードの仕組みを知る(前編)」を書いていまして、こちらはその続きです。

Chat GPTに教えてもらったコードを一部変更したもの

index.html
<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 と色の指定まで調べました。

上記コードでの見え方は▼
スクリーンショット 2023-05-20 10.01.50.jpg

text-decorationで文字を装飾

text-decorationは何でしょう。言葉通り「テキスト」を「デコレーション(装飾する)」のだと想像はつきますが、一体どのような役割かは分かりません。調べると、アンダーラインを引いたり、その色を変えたり、波形など形を指定したりするプロパティのようです。

text-decorationには-color -line color style などを続けて書くこともあり、それぞれ色、線を引く位置、色、線のスタイル(直線、波形、二重線など)を指定できます。

いくつか試してみました。
text-decoration-style: wavy;:波形にする
スクリーンショット 2023-05-20 10.25.41.jpg

text-decoration-style: dashed;:点線にする
スクリーンショット 2023-05-20 10.26.05.jpg

text-decoration-style: wavy;background-color: #00008b;:波形にして、線の色を #00008bにする

スクリーンショット 2023-05-20 10.30.19.jpg

簡潔にまとめてくださっている記事があったので、貼っておきます。

border-radiusは要素の四角を丸めるショートハンドプロパティ

border-radiusは、要素の4つの角を丸めるプロパティらしいです。今回は 4px と指定されているので、差が分かるようborder-radius: 70px;に変更してみます。丸みが強くなりました。

スクリーンショット 2023-05-20 10.37.27.jpg

四角それぞれの指定も可能

border-top-right-radius:右上
border-top-left-radius:左上
border-bottom-right-radius:右下
border-bottom-left-radius:左下
ちなみに↑のように、四角それぞれの指定もできます。border-radiusは四角すべて一括で指定しています。せっかくなので、四角異なるピクセルで指定してみます。

index.html
      border-top-right-radius: 50px;
      border-top-left-radius: 10px;
      border-bottom-right-radius: 5px;
      border-bottom-left-radius: 30px;

スクリーンショット 2023-05-20 10.45.10.jpg

自由自在にいびつな形を作れます。

transitionで簡単なアニメーションを

transition: background-color 0.3s ease;.transition-button:hover〜をまとめて説明。

transition は簡単に言うと、スタイルの開始から終了までの動きを指定するショートハンドプロパティのようです。今回ですと、カーソルをボタンに合わせると、(後述しますが)0.3秒かけて黒色 #333に変化します。

1.jpeg

解説

今回設定している ease は、最初と最後がゆっくりと変化することを意味しています。0.3sは0.3秒。sはsecond(秒)の頭文字ですね。大袈裟に、例えば10sに変更すると、色が #00ced1 から #333 に変化するまで、非常に長かった(10秒)。

easeの応用として、 ease-in ease-outなどがあり、それぞれ「最初はゆっくりと、徐々に速く」「最初が速く、徐々にゆっくりと」した動きを設定できます。

.transition-button:hover

:hoverは擬似クラス(特定の状態のときのみ実行されるクラス)の一つ。:hoverは、要素にマウスのポインタが置かれたときのみ適用されます。

index.html
    .transition-button:hover {
      background-color: #333;
    }

は、「ボタンにマウスのポインタが乗っている場合(.transition-button:hover)、背景色が#333になりますよ」という意味です。ただ#00ced1から#333に変化するのは違和感あったので、#20b2aaに変更。

2.jpeg

マウスを乗せると...
3.jpeg

よくありそうな、色が濃くなるような設定にしました。画像比較では少々分かりづらいかもしれませんが。

表示するテキストとリンクの設定

最後は<body>の部分。

index.html
<body>
  <!-- ボタンの表示 -->
  <a href="遷移先のURL" class="transition-button">PUSH!</a>
</body>

class="transition-button"は、これまで解説してきたクラス.transition-buttonの設定を適用する指定。class="transition-button"を消すと、ただのテキストになります(下の画像)。
4.jpeg

遷移先のURLには文字通り、遷移させたいURLを、「PUSH!」 にはボタンに表示させたいテキストを記載します。

おわり

今まではネットで紹介されているコードをコピペして使うことが多く、仕組みはよく知らないままでしたが、今回調べてみると少しですが分かりました。

13
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
4