この投稿から、常に<a>
タグまたは<button>
タグを使用してボタンを作成することを学びました。今、私は<a>
タグを使用しようとしています。私の質問は: タグのクリック可能な領域を増やす方法はありますか? <a>
div ボックスで使用しているとします。divボックス全体をボタンにしたい。クリック領域を div ボックス全体に変更できますか? 助けてくれてありがとう。
11 に答える
テキスト リンクの領域を増やすには、次の css を使用できます。
a {
display: inline-block;
position: relative;
z-index: 1;
padding: 2em;
margin: -2em;
}
- 表示: マージンとパディングを設定できるようにインラインブロックが必要です
- 位置は相対的である必要があるため...
- z-index を使用して、クリック可能な領域を後続のテキストの上に置くことができます。
- パディングはクリックできる領域を増やします
- 負のマージンにより、周囲のテキストの流れが維持されます (リンクのオーバーラップに注意してください)。
編集:
@ t1m0thyの答えは私のものよりもエレガントです、彼のアドバイスに従うほうがいいです。
また、コメントで@aldemarcalazansによって提案された素敵なリンク: https ://davidwalsh.name/html5-buttons 。
元の答え:
リンク(アンカーのa )が<a />
必要な場合に使用します。ボタンが必要なときに使用します。<button />
とはいえ、本当に展開する必要がある場合は<a />
、CSS属性を追加display: block;
してください。次に、幅や高さを指定できるようになります(つまり、のように<div />
)。
はい、 HTML5を使用している場合は可能ですが、それ以外の場合はこのコードは有効ではありません。
<a href="#foo"><div>.......</div></a>
HTML5を使用していない場合は、リンクを作成できますblock
。
<a href="#foo" id="link">Click Here</a>
CSS:
#link {
display : block;
width:100px;
height:40px;
}
リンクブロックレベルの要素を作成した後width
でのみ、を適用できることに注意してください。height
アンカーdisplay: block
を作成してwidth/height: 100%
。例えば:
.button a {
display: block;
width: 100%;
height: 100%;
}
jsFiddle: http: //jsfiddle.net/4mHTa/
HTML 5を使用している場合、つまりDoctype
<!doctype html>
次に、ブロックレベルのリンクを使用できます。
<a href="google.com">
<div class="hello">
..
</div>
</a>
padding
アンカータグの CSS クラスに追加します。padding-top
必要に応じて、クリック可能な領域に応じて、、、 ... を個別に追加padding-bottom
します。それは私のために働いた。
私にとっては、ボタンに境界線を使用していたため、パディング ソリューションは良くありませんでした。タッチ領域のオーバーレイを作成するためにマークアップを変更するのは困難でした。
私がしたことは、:before 疑似タグを使用してオーバーレイを作成したことです。これは、クリック イベントが同じように伝播したため、私の場合は完璧でした。
button.my-button:before {
content: '';
position: absolute;
width: 26px;
height: 26px;
top: -6px;
left: -5px;
}
display: block または display: inline-block を使用してみてください。素敵なチュートリアルがここにあります: http://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/