現在、次のjQuery UIボタンがあります。
$('#button').button(
{
label: 'Test',
icons: {primary: 'ui-icon-circle-plus', secondary: null}
}
);
「custom.png」というボタンに独自の画像を使用したいと思います。
どうすればそれを達成できますか?
次のように、スタイルを自分で定義します。
.ui-icon-custom { background-image: url(images/custom.png); }
次に、.button()
を呼び出すときに、次のように使用します。
$('#button').button({
label: 'Test',
icons: {primary: 'ui-icon-custom', secondary: null}
});
これは、カスタムアイコンがCSSの下の画像フォルダーにあることを前提としています... jQuery UIアイコンマップと通常同じ場所にあります。アイコンが作成されると、次のようなクラスを取得します:class="ui-icon ui-icon-custom"
、およびそのui-icon
クラスは次のようになります(テーマに応じて異なる画像になる場合があります):
.ui-icon {
width: 16px;
height: 16px;
background-image: url(images/ui-icons_222222_256x240.png);
}
したがって、あなたのスタイルでは、background-image
をオーバーライドしているだけです。必要に応じて、幅や高さなどを変更してください。
Nick Craverのコメントを見てください。私は彼の答えをそのまま試してみましたが、それでも私には役に立ちませんでした。問題(私は思います)は、ui-icon-custom
クラスがクラスリストの最後にあり、それを元のui-icon
クラスの背景画像に上書きしていないようでした。
それを機能させるために私がしたことは、アイコンの最後に!
.ui-icon-custom { background-image: url(images/custom.png) !important; }
高さと幅のプロパティを変更する必要があるかもしれませんが、これは私にとってはうまくいきました。
OPに何か足りないかもしれませんが、これで問題なく動作します。ボタンをDIVとして定義し、その中にテーブルを置くことができます。 CSSのオーバーライドはありません。jqueryで定義されたアイコンと独自のカスタムサイズのアイコンの両方を使用できます。アイコンをテキストの周りのどこにでも配置できます(上、左、右など)。
$(document).ready(function()
{
$('#btn').button();
});
<div id='btn'>
<table>
<tr>
<td><img src='images/custom.png' width="24" height="24" /></td>
<td>Search</td>
</tr>
</table>
</div>
ラベルやテキストなしでボタンに表示する画像のみの場合、私はこれを行います:
$('#button').button();
この画像要素をボタンに置き換えるには:
<img src="images/custom.png" width="28" height="28" id="button">
ただし、ラベルまたはテキストをフォローする場合は、上記のtschlarmの説明の方が適しています。
jquery ui cssファイルでui-icon-circle-plus
クラスを検索し、それをコピーして独自のイメージを作成します。
このリンクを確認してください:
http://www.andymatthews.net/read/2011/02/13/Creating-and-using-custom-icons-in-jQuery-Mobile
.bouton-image { background: #004963; width: 80px; }
.ui-icon-wifi {
width: 80px;
height: 80px;
background-color: #004963;
background-image: url(../images/icones/icone_wifi_ispsm_mobile.png);
background-position: 40% 40%;
}
<a title="" class="bouton-image" data-role="button" data-icon="wifi" data-iconpos="notext" data-inline="true"></a>
「data-icon」には、好きなものを置くだけで、jqueryがクラスを作成します。