<button>要素に画像を埋め込む


135

<button>HTMLの要素にpng画像を表示しようとしています。ボタンは画像と同じサイズで、画像は表示されていますが、何らかの理由で中央に表示されていないため、すべてを表示することはできません。つまり、画像の右上隅がボタンの中央ではなく、ボタンの右上隅にあるように見えます。

これはHTMLコードです:

<button id="close" class="closing" onClick="javascript:close_clip()"><img src="icons/close.png" /></button>

更新:
実際に起こるのは、マージンの問題だと思います。2ピクセルのマージンができるので、背景画像がボタンからはみ出します。ボタンと画像は同じサイズで、だけな20pxので、非常に目立ちます...、を試しましたがmargin:0padding:0役に立ちませんでした...


私にとって、それは完全に機能します...これを経験しているコンテキストはどれですか?あと数行のコードを投稿する可能性はありますか?

3
JS Fiddleなどのライブサイトでこれを再現して、何が起こっているのかを確認できますか?
デビッドはモニカ

回答:


189

入力タイプの画像を使用できます。

<input type="image" src="http://example.com/path/to/image.png" />

これはボタンとして機能し、イベントハンドラーをアタッチできます。

あるいは、cssを使用して、背景画像でボタンのスタイルを設定し、境界線、マージンなどを適切に設定できます。

<button style="background: url(myimage.png)" ... />

1
...フォームを送信するためにJavaScriptは必要ありません。
ComFreek 2011

6
-1: " should "はあまりにも強い言葉<input type="image">です。これは実際に設計されたものではないためです。なぜCSSを提案しないのですか?
Wesley Murch、2011

ボタンの方がいいです。答えが見つからない場合は、それを行います。感謝
アミット・ハーギン2012年

次に、これと他の回答で述べられているように、スタイルを設定します。
Andrew Barber

3
button要素には開始と終了の両方の終了タグが必要であることを忘れないでください。したがって、技術的に<button />は無効であり、<button> </ button>である必要があります。
Tamas Czinege 2015

66

画像がセマンティックデータ(たとえば、プロフィール写真など)の場合は、<img>内の要素<button>を使用し、CSSを使用してのサイズを変更し<img>ます。画像がボタンを視覚的に楽しいものにするための単なる方法である場合は、CSS background-imageを使用してスタイルを設定します<button>(およびを使用しないでください<img>)。

デモ:http : //jsfiddle.net/ThinkingStiff/V5Xqr/

HTML:

<button id="close-image"><img src="http://thinkingstiff.com/images/matt.jpg"></button>
<button id="close-CSS"></button>

CSS:

button {
    display: inline-block;
    height: 134px;
    padding: 0;
    margin: 0;
    vertical-align: top;
    width: 104px;
}

#close-image img {
    display: block;
    height: 130px;  
    width: 100px;
}

#close-CSS {
    background-image: url( 'http://thinkingstiff.com/images/matt.jpg' );
    background-size: 100px 130px;
    height: 134px;  
    width: 104px;
}

出力:

ここに画像の説明を入力してください


@ThinkingStiff <image>要素?私はあなた<img>があなたのテキストで意味していると思います;)
ComFreek 2011

良い答えをありがとう!! しかし、問題は残っています...私は質問を少し更新しました-多分それはあなたがそれを理解するのに役立つかもしれません。
Amit Hagin 2012年

@AmitHagin私はあなたの更新を見ました。ボタンには高さの計算に含まれる境界線があることに注意してください。したがって、20px高い画像に合わせるには、ボタンの高さをにする必要があります24px
ThinkingStiff

問題は、あなたの変更空白を防止するために、また、@AmitHagin <img>にしますdisplay: block;。これを示すためにデモリンクを更新しました。
ThinkingStiff

この方法でアクセシビリティ/代替テキストについて懸念はありますか?私は本当に錆びていますが、テキストを数千ピクセルオフセットして非表示にしても、回避策として受け入れられますか?
Rob Drimmie、2012年


10

画像をボタンに配置する最も簡単な方法:

<button onclick="myFunction()"><img src="your image name here.png"></button>

これにより、ボタンのサイズが画像のサイズに自動的に変更されます。


4

onclick属性付きの画像を使用してみませんか?

例えば:

<script>
function myfunction() {
}
</script>
<img src='Myimg.jpg' onclick='myfunction()'>

0

プロジェクトに画像の名前で新しいフォルダを追加します。いくつかの画像を画像フォルダに入れます。その後、正常に動作します。

<input type="image" src="~/Images/Desert.jpg" alt="Submit" width="48" height="48">

0

このフォーマットのようにして、「width」属性を使用して画像サイズを管理します。これは簡単です。JavaScriptは要素にも実装できます。

<button><img src=""></button>


-7

ボタンは画像を直接サポートしていません。さらに、あなたがしている方法はリンク用です()

画像はスタイルのBackground-IMAGEプロパティを使用してボタンの上に追加されます

タグを使用して、繰り返しやその他のプロパティを指定することもできます

たとえば、ボタンに追加された基本的な画像には次のコードがあります。

    <button style="background-image:url(myImage.png)">

平和


2
あなたの答えは正しくありません、公式文書にはそれが許可されていると書かれています。
ビフォーブ2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.