goo blog サービス終了のお知らせ 

ライフ向上委員会

模索中。。

input(フォーム送信ボタン)にCSSで背景に画像を置く 直置きダメな時、属性にスタイルを当てる方法

2011-02-09 11:42:40 | 日記

今、カスタマイズしているECがあって、自動生成のフォームがいくつかあった。ボタンを画像にしたくても、触れない領域だからどうしようと思って、開発元に問い合わせた。
画像ボタンにしてしまうとInternet Explorerで入力した値を引き渡せない時があって、危険なのでCSSで制御してほしいって言われた。

なので、inputにスタイルを当てようと思ったのだけれど、id属性もclass属性のないので、スタイルを当てれずに、ネットで調べた。

解決方法

自分がやってのはこんな感じ。

input[name=【name属性の値】]{
    border: 0px;
    width: 50px;/* 画像の幅 */
    height: 20px;/* 画像の高さ */
    background: url(【画像のパスが入ります。】) left center no-repeat;
}

こうすると、問題が2つ起きる。
1つは、value属性の値が画像の上に表示されてしまう。
もう1つは、アンカーリンクではないので、カーソルをボタンに乗せても、指マークにならない(ボタンは効く)。

なので、最終的にこんな感じにした。

input[name=【name属性の値】]{
    border: 0px;
    width: 50px;/* 画像の幅 */
    height: 20px;/* 画像の高さ */
    background: url(【画像のパスが入ります。】) left center no-repeat;
    text-indent: -9999px;/* value属性の値を画面の外に飛ばす */
    cursor: pointer;/* カーソルをボタンに乗せたら指マークにする */
}
以下のサイトを参考にさせていただきました。
ありがとうございます。