私は現在<input type='button'/>
要素と次のCSS:
background: transparent url(someimage);
color: transparent;
ボタンを画像として表示したいのですが、value
テキストをその上に表示したくありません。これはFirefoxで正常に機能します。ただし、Internet Explorer 6およびInternet Explorer 7では、テキストを表示できます。
テキストを隠すためにあらゆる種類のトリックを試しましたが、成功しませんでした。 Internet Explorerを動作させるソリューションはありますか?
(私はtype=button
これはDrupalフォームであり、そのフォームAPIはイメージタイプをサポートしていません。)
なぜvalue
属性を含めるのですか?メモリーから、それを指定する必要はありません(ただし、HTML標準ではそうするように指示されている場合があります-不明)。 value
属性が必要な場合は、単にvalue=""
?
このアプローチをとる場合、CSSには背景画像の高さと幅の追加プロパティが必要です。
私が使う
button {text-indent:-9999px;}
* html button{font-size:0;display:block;line-height:0} /* ie6 */
*+html button{font-size:0;display:block;line-height:0} /* ie7 */
私は反対の問題を抱えていました(Internet Explorerで働いていましたが、Firefoxでは働いていませんでした)。 Internet Explorerの場合は左のパディングを追加する必要があり、Firefoxの場合は透明色を追加する必要があります。 16px x 16pxのアイコンボタンを組み合わせたソリューションは次のとおりです。
input.iconButton
{
font-size: 1em;
color: transparent; /* Fix for Firefox */
border-style: none;
border-width: 0;
padding: 0 0 0 16px !important; /* Fix for Internet Explorer */
text-align: left;
width: 16px;
height: 16px;
line-height: 1 !important;
background: transparent url(../images/button.gif) no-repeat scroll 0 0;
overflow: hidden;
cursor: pointer;
}
まあ:
font-size: 0; line-height: 0;
私にとって素晴らしい仕事です!
Text-indentプロパティを-999emなどに設定しようとしましたか?それはテキストを「隠す」良い方法です。
または、font-sizeを0に設定することもできますが、これも機能します。
http://www.productivedreams.com/ie-not-intepreting-text-indent-on-submit-buttons/
さまざまなIEで機能するソリューションまたは機能しないソリューションであなたが見ている違いは、互換モードのオン/オフが原因である可能性があります。 IE8では、text-indentは問題なく動作しますnless互換モードがオンになっています。互換モードがオンの場合、font-sizeとline-heightがトリックを行いますが、Firefoxのディスプレイを台無しにする可能性があります。
したがって、cssハックを使用して、FirefoxがIEルールを無視できるようにします。
text-indent:-9999px;
*font-size: 0px; line-height: 0;
私はこれをどこかから指摘しました:
入力にテキスト変換を追加して削除する
input.button {
text-indent:-9999px;
text-transform:capitalize;
}
CSSファイルに書き込みます。
#your_button_id
{
color: transparent;
}
申請中 font-size: 0.1px;
ボタンの機能は、Firefox、Internet Explorer 6、Internet Explorer 7、およびSafariで機能します。私が見つけた他のソリューションは、すべてのブラウザーで機能しませんでした。
HTMLドキュメントの上部で条件ステートメントを使用します。
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
次に、CSSに追加します
.ie7 button { font-size:0;display:block;line-height:0 }
HTML5ボイラープレート-より具体的には paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
これは、Firefox 3、Internet Explorer 8、Internet Explorer 8互換モード、Opera、およびSafariで動作します。
*注意:これを含むテーブルセルにはpadding:0
およびtext-align:center
。
background: none;
background-image: url(../images/image.gif);
background-repeat:no-repeat;
overflow:hidden;
border: NONE;
width: 41px; /*width of image*/
height: 19px; /*height of image*/
font-size: 0;
padding: 0 0 0 41px;
cursor:pointer;
overflow:hidden
およびpadding-left
は私のためにうまく働いています。
Firefoxの場合:
width:12px;
height:20px;
background-image:url(images/arrow.gif);
color:transparent;
overflow:hidden;
border:0;
IEの場合:
padding-left:1000px;
color:transparent; /* For FF */
*padding-left:1000px ; /* FOR IE6,IE7 */
私はまったく同じ問題を抱えていました。そして、他の多くの投稿が報告したように:パディングトリックはIEでのみ機能します。
font-size:0px
はまだいくつかの小さな点を示しています。
私のために働いた唯一のことは反対をすることです
font-size:999px
...しかし、25x25ピクセルのボタンしかありませんでした。
代わりに、hook_form_alter
そしてボタンを画像ボタンにすれば完了です!
この次は私のために最もうまくいった:
[〜#〜] html [〜#〜]:
<input type="submit"/>
[〜#〜] css [〜#〜]:
input[type=submit] {
background: url(http://yourURLhere) no-repeat;
border: 0;
display: block;
font-size:0;
height: 38px;
width: 171px;
}
<input type="submit"/>
にvalue
を設定しない場合、デフォルトのテキスト「Submit」がボタン内に配置されます。そのため、送信時にfont-size: 0;
を設定し、入力タイプにheight
およびwidth
を設定して、画像が表示されるようにします。必要に応じて、送信するメディアクエリを忘れないでください。次に例を示します。
CSS:
@media (min-width:600px) {
input[type=submit] {
width:200px;
height: 44px;
}
}
つまり、画面の幅がちょうど600ピクセル以上の場合、ボタンのサイズが変更されます