css3でボタンを作ってみよう

CSS3プロパティgradientとbox-shadowを使ってちょっとかっこいいボタンを作ります。
すでに多くの人がCSS3を使用していますが、参考になればと思います。おまけで、text-shadowも使います。

webkitとmozの違い

CSS3のgradientの指定はwebkitとmozでは違います。
また、グラデーションは線形グラデーションと円形グラデーションを指定できます。
今回は線形グラデーションの指定『linear-gradient』をご紹介します。
ちなみに円形グラデーションは『radial-gradient()』で指定します。円形グラデーションはまたの機会にご紹介します。

CSS

まずボタン本体の設定をします。

position: relative;
margin-bottom: 任意;
margin-top: 任意;
padding: 任意;
width: 任意;
display: block;
color: 任意;
font-weight:任意;/*指定しなくても構いません*/
text-decoration: 任意;/*指定しなくても構いません*/
text-align: 任意;/*指定しなくても構いません*/
text-shadow: 任意;/*サンプルです*/
z-index: 1;/*後述のベースより上に来るように指定*/

これはいわゆるa要素の指定です。
positionをrelativeで指定しているのは、後述しますボタンのベースを内包するためです。

ここでちょっとアクセントをつけるためにtext-shadowを使います。
text-shadowは以下のように指定します。
text-shadow

text-shadow:横方向のずれ 下方向のずれ ぼかし 影の色・透明度;

rgbaは読んで字のごとくrgbとアルファ値を指定します。rgbの説明は割愛します。
アルファ値の指定は1.0〜0で指定します。0に近いほど透明度が高くなります。

次にベースとなる背景色を指定します。
それからグラデーションの指定をします。
gradientを指定するときは『background』『background-image』に指定します。

任意:after{
content: "";
position: absolute;
left: -3px;/*サンプルです*/
top: -3px;/*サンプルです*/
width: 100%;
height: 100%;
padding: 2px;
border:任意;
-webkit-border-radius: 任意;/*角丸の指定*/
-moz-border-radius: 任意;/*角丸の指定*/
background-color:任意;/*この色がボタンの基本色になります*/
background-image: -webkit-gradient(linear,任意);/*グラデーションの指定*/
background-image: -moz-linear-gradient(top,任意);/*グラデーションの指定*/
background-image: linear-gradient(top,任意);/*グラデーションの指定*/
-webkit-box-shadow: 任意;
-moz-box-shadow: 任意;
box-shadow: 任意;
z-index: -1;/*本体より下に来るように指定*/
}

a要素に任意のclassをつけ、after疑似要素でプロパティを指定します。
グラデーションの指定方法は以下のとおりです。
webkit

gradient(グラデーションの指定, 角度, 開始色, (途中色), 終了色)

moz

グラデーションの指定-gradient(角度, 開始色, (途中色), 終了色)

前述したようにwebkitとmozとの指定方法が違うのがわかると思います。
これを手動でやると結構面倒ですw
また、途中色を指定するときは以下のとおり。
webkit

color-stop(位置, rgba(色指定, 透明度)),

moz

位置, rgba(色指定, 透明度)

次ぎにボタンに影をつけます。
box-shadowの指定は以下のとおり。
box-shadow

box-shadow:横方向のずれ 下方向のずれ ぼかし 影の色・透明度;

insetを使うと内側に影をつけられます。

box-shadow:inset 横方向のずれ 下方向のずれ ぼかし 影の色・透明度;

デモ

これはベースの『background-color』を変える事で簡単にボタンの色を変更することができます。が、FireFoxは『gradient』の値を変えないといけません。しかし、スマートフォンサイトでしたら変更できるので、スマートフォンサイトで有効かもしれませんね。
今回はできればSafariかChromeで確認して頂くとわかりやすいと思います。

動作環境は、Firefox4、Safari5とGoogleChrome10です。スマートフォンはiPhone4、Android2.1で確認しています。

ダウンロードはユーザー様の責任で行ってください。
なにか問題が発生した場合でも、当サイトでは責任を負いかねますので、
予めご了承ください。

上記をご承知の方のみ、以下よりダウンロードしてください。

ダウンロードはこちら

css3でボタンを作ってみよう への2件のコメント

  1. kazu より:

    格好いい。
    イラストレーター・photoshopで四苦八苦している私には、
    朗報なのですが。
    角丸は簡単なのですが、gradientに関しては複雑ですね。
    どうしたものかと。
    でも、最先端行ってます。すばらしいです。解説ともに。

  2. hide より:

    kazuさんいつもコメントありがとうございます。
    これのバージョンアップを今更新中です。たいしたことはありませんがw

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">