質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2663閲覧

擬似要素を使って、ボタンに背景とアイコン2つを入れたい

brebre

総合スコア29

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/08/09 08:27

aタグと擬似要素を使ったリンクボタンに、
背景色とアイコンを組み合わせたいのですが、
うまくいきません。

作りたいボタンは、
青い長方形の中に白い枠線があり、
文字の前にはアイコン、文字の後ろに矢印(>)を入れたものです。

コードは以下のようになります。

html

1<a class="btn" href="#">ボタン</a>

css

1.btn { 2 display: block; 3 width: 100%; 4 margin: 10px auto; 5 padding: 5px 10px 5px 20px; 6 color: #fff; 7 text-decoration: none; 8 text-align: center; 9 border: 1px solid #fff; 10 position: relative; 11} 12.btn::before { 13 position: absolute; 14 top: -5px; 15 left: -5px; 16 width: calc(100% + 10px); 17 height: calc(100% + 10px); 18 z-index: -1; 19 background: blue; 20 content: '>'; 21 text-align: right; 22 vertical-align: middle; 23} 24.btn::after { 25 position: absolute; 26 top: 0; 27 right: 0; 28 display: block; 29 width: 100%; 30 height: 100%; 31 content: ''; 32 background: url('img/sample/icon.png') no-repeat; 33}

html部分を一切変更しないで、
CSSのみでボタンデザインが実現可能でしょうか?
もし、可能であればサンプルコードをご教示いただけますと幸いです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

CSS

1.btn { 2 display: inline-block; 3 position: relative; 4 margin: 10px auto; 5 padding: 5px 10px 5px 20px; 6 border: 1px solid #fff; 7 outline: 4px solid #00f; 8 width: 100px; 9 text-decoration: none; 10 background: #00f; 11 color: #fff; 12 overflow: hidden; 13} 14 15.btn:before { 16 position: absolute; 17 top: 0; 18 left: 0; 19 content: url('img/sample/icon.png'); 20} 21 22.btn:after { 23 position: absolute; 24 top: 5px; 25 right: -2px; 26 content: '>'; 27}

適当に幅100pxにしてます。
想定している画像があったほうがいいんじゃないですか?

投稿2017/08/09 09:02

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

brebre

2017/08/11 05:31

outlineを使用することでうまくいきました。 本当にありがとうございました。 次回からは参考画像も用意したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問