[CSS]非対応ブラウザにも配慮したCSS3で実装するボタンのチュートリアル
Post on:2010年7月8日
ビギナーにも分かりやすくステップごとに解説された、CSS3でスタイリングしたボタンを実装するチュートリアルを紹介します。
Create a CSS3 Call to Action Button
下記は、各ポイントを意訳したものです。
Basic HTML
まずはHTMLから始めましょう。
標準的なリンク要素に「.btn」というclass名をつけます。
HTML
1 2 3 4 5 |
<textarea name="code" class="html" cols="60" rows="5"> <div id="linear"> <a href="http://www.sixrevisions.com" class="btn">CLICK THIS BUTTON</a> </div> </textarea> |
- note:
- リンク要素の周りのdiv要素は実は必要ありません。
しかしながら、こういった容器となるものは何かの機会に役立つこともあるので良いアイデアです。
Basic CSS
CSSの最初の一歩として、通常時とホバー時の基本的なスタイルを与えます。
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<textarea name="code" class="css" cols="60" rows="5"> a.btn { width: 250px; padding: 10px 25px 10px 25px; font-family: Arial; font-size: 16px; text-decoration: none; color: #ffffff; background-color: #98ba3f; } a.btn:hover { width: 250px; padding: 10px 25px 10px 25px; font-family: Arial; font-size: 16px; text-decoration: none; color: #ffffff; background-color: #245191; } </textarea> |
- note:
- 背景のカラーは後で、CSS3グラデーションに代わります。背景にカラーを指定するのはCSS3非対応ブラウザへの対応を考慮したものです。
CSS2: text-shadow
ボタンのテキストに微妙なシャドウを加えます。
ホバー時にシャドウのカラーを変更していることに注目してください。
CSS
1 2 3 4 5 6 7 8 9 |
<textarea name="code" class="css" cols="60" rows="5"> a.btn { text-shadow: -1px -1px 2px #618926; } a.btn:hover { text-shadow: -1px -1px 2px #465f97; } </textarea> |
CSS2: border
ボタンの四辺に1pxのラインを加えます。
CSS
1 2 3 4 5 6 7 8 9 |
<textarea name="code" class="css" cols="60" rows="5"> a.btn { border: 1px solid #618926; } a.btn:hover { border: 1px solid #0f2557; } </textarea> |
- note:
- ここまではCSS2を使用したものです。CSS3非対応ブラウザでどのように見えるかの最終確認はこの時点で行います。
CSS3: border-radius
ここからはCSS3を使用します。
まずはCSS3で角丸のエフェクトを加えます。記述はブラウザごとに異なるので、Mozillaブラウザには「-moz」、Webkitブラウザには「-webkit」を使用して指定します。
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<textarea name="code" class="css" cols="60" rows="5"> a.btn { border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; } a.btn:hover { border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; } </textarea> |
CSS3 Gradients
最後のステップです。
ボタンをモダンな見栄えにするため、背景にグラデーションのスタイルを与えます。
CSS
1 2 3 4 5 6 7 8 9 10 11 |
<textarea name="code" class="css" cols="60" rows="5"> a.btn { background: -moz-linear-gradient(#98ba40, #a6c250 35%, #618926); background: -webkit-gradient(linear,left top,left bottom,color-stop(0, #98ba40),color-stop(.35, #a6c250),color-stop(1, #618926)); } a.btn:hover { background: -moz-linear-gradient(#245192, #1e3b73 75%, #12295d); background: -webkit-gradient(linear,left top,left bottom,color-stop(0, #245192),color-stop(.75, #1e3b73),color-stop(1, #12295d)); } </textarea> |
最終のCSS
「.btn」に適用したCSSの完全版は、下記のようになります。
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<textarea name="code" class="css" cols="60" rows="5"> a.btn { width: 250px; padding: 10px 25px 10px 25px; font-family: Arial; font-size: 16px; text-decoration: none; color: #ffffff; text-shadow: -1px -1px 2px #618926; background: -moz-linear-gradient(#98ba40, #a6c250 35%, #618926); background: -webkit-gradient(linear,left top,left bottom,color-stop(0, #98ba40),color-stop(.35, #a6c250),color-stop(1, #618926)); border: 1px solid #618926; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; } a.btn:hover { width: 250px; padding: 10px 25px 10px 25px; font-family: Arial; font-size: 16px; text-decoration: none; color: #ffffff; text-shadow: -1px -1px 2px #465f97; background: -moz-linear-gradient(#245192, #1e3b73 75%, #12295d); background: -webkit-gradient(linear,left top,left bottom,color-stop(0, #245192),color-stop(.75, #1e3b73),color-stop(1, #12295d)); border: 1px solid #0f2557; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; } </textarea> |
パッと見では、Photoshopで作成したようなボタンに見えるかもしれませんが、画像を使用せずにスタイルシートで実装したものです。
sponsors