しかし、単純にaタグの中にaタグを記述するとHTMLの規約上禁止されている構文となり思ったような表現ができませんでした。
色々調べてみると禁止されているとはいえいくつか実現する方法があったので紹介します。
全て方法においてSEO的に不利になる可能性が高いので注意してください。
objectタグを利用する方法
いちばん手間がかからない方法で出来るのがこの方法です。aタグの中にあるaタグをobjectタグで囲むことで実現可能です。
ただし、本来のobjectタグの利用目的ではないのでSEO的に不利になる可能性があります。
1 2 3 4 5 6 7 8 9 10 |
<div style="border:solid 1px #ccc;"> <a href="https://yahoo.co.jp/"> <div> yahoo(要素全体)<br /> <object><a href="https://google.com/">google</a></object> </div> </a> </div> |
cssのpositionを利用する方法
次の方法はcssで重なりを作り実現する方法です。aタグの中にaタグが入らないようにして、「position」と「z-index」を利用して重ねる方法です。
この方法でもaタグの対象が本来の対象と違い要素が存在しないaタグとなっている為SEO的に不利になる可能性があります。
1 2 3 4 5 6 7 8 9 |
<div style="border:solid 1px #ccc;"> <div style="position:relative;"> yahoo(要素全体)<br /> <a href="https://yahoo.co.jp/" style="position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;"></a> <a href="https://google.com/" style="position:relative;z-index:2;">google</a> </div> </div> |
javascript(onclick)を利用する方法
javascriptを利用する方法もあります。aタグ中にaタグを利用せずにjavascriptのonclickで「location.href」命令を利用して実現する方法です。
説明HTMLではaタグのかわりにspanタグを利用して実現しています。
この方法でもaタグを利用しないという理由でSEO的に不利になる可能性があります。
1 2 3 4 5 6 7 8 9 10 |
<div style="border:solid 1px #ccc;"> <a href="https://yahoo.co.jp/"> <div> yahoo(要素全体)<br /> <span onclick="location.href='https://google.com/';return false;">google</span> </div> </a> </div> |