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

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

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

HTMLで用いる<button>タグです。

HTML

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

CSS

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

Q&A

解決済

1回答

1248閲覧

CSSボタンを指定した位置に表示できない。

sue2700

総合スコア8

button

HTMLで用いる<button>タグです。

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/04/16 06:39

編集2018/04/16 07:03

前提・実現したいこと

・1つの画像の上に、CSSでつくったボタンを複数のせて、それぞれに異なるリンク先を設定したい。
・ボタンは整列ではなく、すべてに任意の位置を設定したい。

(画像は複数あり、turn.jsを利用してページめくりの機能をつけています。)

発生している問題・エラーメッセージ

CSSのボタン1つであれば問題なく動作します。
ボタンを2つ以上だと、指定した位置にボタンを表示させることができません。

※勉強中の初心者です。基本的なところで間違っているかもしれません。

該当のソースコード

①ボタン1つのとき(問題なし)

html

<div class="btn01"> <img src="examle01.jpg"alt=""> <a href="リンク先"class=btn target="_blank" ></a></div>

CSS

.btn{ display: inline-block; text-decoration: none; color: #FFF; width: 60px; height: 60px; line-height: 60px; border-radius: 50%; text-align: center; vertical-align: middle; overflow: hidden; background-image: -webkit-linear-gradient(45deg, #ffb6c1 20%, #ffff00 80%); background-image: linear-gradient(45deg, #ffb6c1 20%, #ffff00 80%); transition: .4s; } .btn01 a{ position: absolute; top: 50%; left: 50%; -ms-transform: translate(-50%,-50%); -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); margin:0; padding:0; }

試したこと

②ボタン2つのとき

html

<div class="page01"><img src="example01.jpg" alt=""> <a href="リンク先1" class="btn btn01" target="_blank"></a> <a href="リンク先2" class="btn btn02" target="_blank"></a> </div>

CSS

.btn{ display: inline-block; text-decoration: none; color: #FFF; width: 60px; height: 60px; line-height: 60px; border-radius: 50%; text-align: center; vertical-align: middle; overflow: hidden; background-image: -webkit-linear-gradient(45deg, #ffb6c1 20%, #ffff00 80%); background-image: linear-gradient(45deg, #ffb6c1 20%, #ffff00 80%); transition: .4s; } .btn01 a{ position: absolute; top: 50%; left: 50%; -ms-transform: translate(-50%,-50%); -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); margin:0; padding:0; } .btn02 a{ position: absolute; top:400px; left:50px; padding:0; }

ボタンのデザインは全ボタン共通なので.btnとして書き、位置はそれぞれ変えたいので.btn01,
.btn02とわけて位置情報を記述している、というつもりです。

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

m.ts10806

2018/04/16 06:42

プログラムコード(およびエラーメッセージ)は```で囲ってください。(わからなければ質問編集画面でコード部分を選択し<code>ボタンを押してください)正しく反映されているかどうかは質問編集画面のプレビューを見ながら編集していってください。
m.ts10806

2018/04/16 06:43

質問編集画面タイトル横にある「初心者アイコン」をご活用ください。「初心者」と質問で書くよりも伝わります。
m.ts10806

2018/04/16 06:43

また「指定した位置にボタンを表示させることができません」であれば、タイトルと要件が合いません。どちらでしょうか?
sue2700

2018/04/16 06:52

ご回答ありがとうございます。初心者アイコン活用します! 解決したいことは「指定した位置にボタンを表示できない」です。ただ、最終的につくりたい形がタイトルの内容なのでそのように書きました。紛らわしいようでしたら申し訳ありません。
m.ts10806

2018/04/16 06:56

タイトルと内容で要件が違うと回答者がどこをゴールに回答して良いか迷います。きちんと明示しておくことで解決が早まります。
m.ts10806

2018/04/16 06:57

質問は質問者のみ編集できるので、ゆっくり編集してみてください。リアルタイムでプレビューも表示されるので、きちんと整形できているか確認しながら編集を行ってください。
sue2700

2018/04/16 07:05

ご丁寧にありがとうございます。大変参考になります。
guest

回答1

0

ベストアンサー

.btnの親要素である.page01に
position: relative;
.btn01 a で指定すると.btn01の子要素のaが対象になるのでaは不要です。

CSS

1.page01 { 2 position: relative; 3} 4.btn{ 5 display: inline-block; 6 text-decoration: none; 7 color: #FFF; 8 width: 60px; 9 height: 60px; 10 line-height: 60px; 11 border-radius: 50%; 12 text-align: center; 13 vertical-align: middle; 14 overflow: hidden; 15 background-image: -webkit-linear-gradient(45deg, #ffb6c1 20%, #ffff00 80%); 16 background-image: linear-gradient(45deg, #ffb6c1 20%, #ffff00 80%); 17 transition: .4s; 18 19} 20 21.btn01{ 22 position: absolute; 23 top: 50%; 24 left: 50%; 25 -ms-transform: translate(-50%,-50%); 26 -webkit-transform: translate(-50%,-50%); 27 transform: translate(-50%,-50%); 28 margin:0; 29 padding:0; 30 } 31 32 .btn02{ 33 position: absolute; 34 top:400px; 35 left:50px; 36 padding:0; 37 }

codepenで確認する↓
https://codepen.io/RaRukAnA/pen/VXoaJj/

投稿2018/04/16 07:50

編集2018/04/16 07:52
Atsushi_Okumura

総合スコア355

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

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

sue2700

2018/04/16 08:04

教えて頂いた方法で完璧に解決しました!!ありがとうございます!とても勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問