概要
アンカー要素(a
)にスタイルを適用して、ボタンの様な形にする。
HTML/CSS
HTML
HTMLではa
要素をdiv
タグで囲んでクラス定義している。
1 2 3 4 5 |
<body> <div class="button_like_anchor"> <a href="#">ボタンのようなアンカー</a> </div> </body> |
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 |
/* 関係要素のスタイルのリセット */ a, body, div { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* body要素の背景色を設定 */ body { background-color: #e8e8e8; } /* ボタン風でラップしたアンカーのスタイル */ .button_like_anchor a { display: inline-block; box-sizing: border-box; margin: 10px; padding: 8px 12px; border: 1px solid #000; border-radius: 5px; text-decoration: none; color: white; background-color: #a0a0a0; } /* アンカー上に */ .button_like_anchor a:hover { background-color: #acacac; cursor: pointer; |
前段のブロックで関係要素のスタイルをリセットし、body
の背景色をセットしている。
アンカーのスタイル設定については以下のとおり。
.button_like_anchor
クラスの中のa
要素のスタイル
margin
やpadding
の設定のためにdisplay: inline-block
を指定box-sizing
の設定はここでは影響しないが、サイズ指定してボタンを並べるときなどに関係border-radius
で角を丸くしているtext-decoration: none
とcolor
設定でデフォルトのアンカーの装飾を変更
Hover時の変化
- 元の背景を
background-color
で設定 - 疑似クラスhoverでカーソルが領域に入った時のスタイルを設定
- 背景色を少し明るくしている
cursor
でカーソル形状を変更(デフォルトがpointer
のため、ここでは影響しない)
Rails/SCSS
html.erb
Railsではアンカータグをヘルパーで実装している。
1 2 3 |
<div class="button_like_anchor"> <%= link_to('ボタンのようなアンカー', '#') %> </div> |
SCSS
リセットCSSはreset.cssファイルとして切り分けている。
また、疑似クラスhover
の記述をSCSSに合わせて変更している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// body要素の背景色を設定 body { background-color: #e8e8e8; } // ボタン風でラップしたアンカーのスタイル .button_like_anchor a { display: inline-block; box-sizing: border-box; margin: 10px; padding: 8px 12px; border: 1px solid #000; border-radius: 5px; text-decoration: none; color: white; background-color: #a0a0a0; // Hover時のスタイル変化 &:hover { background-color: #acacac; cursor: pointer; } } |