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

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

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

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

CSS

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

Q&A

7回答

4299閲覧

<a>タグを使わずに画像リンクをつけたい

futaba2110

総合スコア16

HTML

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

CSS

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

0グッド

3クリップ

投稿2018/01/15 10:18

###前提・実現したいこと
htmlで画像リンクをつけたいのですが<a>タグを使わずに実現したいです。
理由としては、<a>を使うとレイアウトがずれてしまう現象が発生してしまい修正ができないため。

###補足情報
以前調べたときはonclick属性を使うパターンやその他の方法も見かけた気がしたのですが、今回どうにもみつかりませんでしたので質問させていただきます。

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

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

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

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

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

showkit

2018/01/15 10:30

<a>を使うとレイアウトがずれてしまう というのがイメージできないんですが、具体例をあげてもらえますか?
futaba2110

2018/01/15 10:33

<a href="リンクurl"><img src="画像リンク"></a>の画像リンクとしては一般的なコードを使っております。現在他人のサイトを変種しているのですが、既存の画像にリンクを付与したらレイアウトがずれてしまう(左に大きくズレる)現象が起きております。
kei344

2018/01/15 11:18

書かれている状況が再現するコード(HTML/CSS/JavaScriptなど)か、再現するURLを提示されたほうが回答を得やすいと思います。
futaba2110

2018/01/15 14:38 編集

``` <div class="banner-badge"> <img src="assets/images/discount-this-year.png" alt="badge"> <a href="#schedule" style="border: 0;"> <img class="badge2" src="assets/images/5.png" alt="badge"> </a> </div> ``` です。URLは現在ローカル環境で開発しているため提示できるものがありません。Styleにはshowkitさんの回答参考にborder:0;で指定しています。
kei344

2018/01/15 11:26

a要素の外側のHTML構造とそれに関係するCSSを質問文にコードブロックで追記してください。コードブロックは ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
guest

回答7

0

a タグに変なスタイルがついているんでしょう。
それを確認して上書きするのがすっきりしていいと思います。

どの要素にどのCSSが適用されているの?ブラウザ上でカンタンに確認する方法

投稿2018/01/15 10:42

Zuishin

総合スコア28662

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

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

futaba2110

2018/01/15 10:51

ご回答ありがとうございます。 それも疑い、検証で各スタイル1つずつ無効にしてみたのですが、特に改善が見られるStyleはありませんでした。
guest

0

たとえばこのようなスタイルが適用されていた場合

CSS

1.banner-badge > img { 2 display: block; 3 margin-right: auto; 4 margin-left: auto; 5}

aだけ見ていてもわからないのではないですか?
再現するコードを提示するか、ちゃんと比較しましょう。

投稿2018/01/16 07:41

x_x

総合スコア13749

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

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

0

リンクや画像にまで影響するかは未検証ですが、chromeのoutlineとかは影響してませんか?

※Chrome以外でも再現するようでしたら無視してください

あとはコメントで書かれているHTMLに合間合間に半角スペースが入っているのが気になります。([ココ]部分)
<div class="banner-badge">[ココ]<img src="assets/images/discount-this-year.png" alt="badge">[ココ]<a href="#schedule" style="border: 0;">[ココ]<img class="badge2" src="assets/images/5.png" alt="badge">[ココ]</a>[ココ]</div>
実際にもスペースが入っているのであれば削除し、何かしら余白が必要であれば、paddingで調整してみてください。
HTMLだけではこちらも再現ができませんので関係するCSSもご提示いただけると助かります(追記はコメントではなく質問編集をして質問本文に添付してください)

投稿2018/01/15 22:15

m.ts10806

総合スコア80854

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

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

0

適当なdata-*をつけてやればよいでしょう
たとえばdata-href属性をもつものだけリンクのように動くサンプルです

CSS

1img[data-href]:hover{cursor:pointer;}

javascript

1window.addEventListener('DOMContentLoaded', function(e){ 2 Array.prototype.forEach.call(document.querySelectorAll('img[data-href]'),function(x){ 3 x.addEventListener('click',function(){ 4 location.href=x.getAttribute('data-href'); 5 }); 6 }); 7});

HTML

1<img src="1.jpg" data-href="1.html"> 2<img src="2.jpg" data-href="2.html"> 3<img src="3.jpg">

投稿2018/01/15 12:17

yambejp

総合スコア114964

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

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

0

他の回答にもありますが、デフォルトのスタイルや何らかのスタイルが原因だと思いますので、リセットの見直しや、上書きを掛けたら良いだけの気がします。

コードやスクリーンショットの提示があれば、より良い回答を得れると思います。

投稿2018/01/15 12:03

yoshinavi

総合スコア3523

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

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

0

map/area要素でimg要素を含むDOMツリーの構造に手を入れずリンクを注入したら如何でしょう?

HTML

1<img src="test.png" usemap="#m"/><!--map要素への参照を追加--> 2 3<!--追加する部分--> 4<map id="m"> 5<area shape="rect" coords="0,0 200,200" href="test.png"/> 6</map>

a要素の挿入と異なり, 既存のスタイル指定への影響が最小限で済むと思います.

投稿2018/01/15 11:59

defghi1977

総合スコア4756

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

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

0

ずれるというのは、画像を <a> でリンクさせると border がついてしまうからではないでしょうか?
css なり style= なりで、border のサイズを 0 にするといいのでは?

Onclick をつかうのであれば

html

1<img src="画像リンク" onclick="location.href='URL'">

でどうぞ

投稿2018/01/15 10:40

showkit

総合スコア1638

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

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

futaba2110

2018/01/15 10:50

Onclickの方ご教授ありがとうございます。 style="border:0;"試して見ましたが、こちらは特に変化無しのようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問