2011-04-14 20 views
1

私が作成したテンプレートに一連のコードを生成する支払いサービスを使用しています。問題は、divの名前を付けるときに角括弧 "()"を使用することです。これは、生成されたすべてのdivをスタイルする必要があり、CSSは括弧で区切られたdivを気に入らないので、私の問題を引き起こします。CSSで角括弧()を使用する

彼らのコード:

<div id="wwctrl_paytypeLogo_AMEX"> 
<div id="wwctrl_paytypeLogo_AMEX(SE)"> 
<div id="wwctrl_paytypeLogo_AMEX(DK)"> 

私のCSS:私は使用して命名のdiv()に適用されるCSSを持つように何かできることは

#wwctrl_paytypeLink_MTRO button { background: url(images/icon_pay_maestro.png) 265px 50% no-repeat; } 
#wwctrl_paytypeLink_AMEX button, 
#wwctrl_paytypeLink_AMEX(SE) button, 
#wwctrl_paytypeLink_AMEX(DK) button { background: url(images/icon_pay_amex.png) 265px 50% no-repeat; } 

ありますか?

+0

'()'はIDには使用できません:http://www.w3.org/TR/html4/types.html#type-id –

+1

許可されていなくてもうまくいくようです。 http://jsfiddle.net/DLbWH/ – Ragnar123

+0

これは機能しません。ブラケットは単にその位置では許可されていないからです。 – Rhapsody

答えて

5

主な問題は、(ブラケット)がID属性で使用する有効な文字ではないことです。 the specを参照してください。

しかし、あなたは常に(彼らはそうでないような特殊な擬似クラスの文字を機能として)あなたのセレクタに括弧をエスケープするバックスラッシュ(\)を使用することができますIDを、変更できない場合:

#wwctrl_paytypeLink_AMEX\(SE\) button, 
#wwctrl_paytypeLink_AMEX\(DK\) button { background: url(images/icon_pay_amex.png) 265px 50% no-repeat; } 
+0

ありがとう、これは素晴らしい! – Walker

+0

年が繰り上げられ、ほとんどの文字(括弧を含む)がHTML5のIDで有効になりました –

1

()文字はHTML ID属性では無効です。

What are valid values for the id attribute in HTML?

あなたは何か他のものを使用してcracket文字を変更したり、それらを完全に削除する必要があります。私はその質問に対する最高の定評のある答えを読むことをお勧めします。なぜなら、有効ではあるが問題につながる可能性がある他の文字があるからです。

+0

HTML ID属性で使用するには()文字が無効であることがわかりました。残念ながら、スカンジナビアの大量のウェブサイトで使用されている支払いサービスプロバイダによって生成されたため、これを変更することはできません。私はSPに電子メールを送ったが、彼らはそれについて何もしないだろうと思う。 – Walker

+0

div [id = "wwctrl_paytypeLogo_AMEX(SE)"]を試すことができますが、ページレンダリングのパフォーマンスを保証できない場合は、CSS3セレクタをサポートするブラウザでのみ動作します。 – GordonM

+1

上記のBoltClockの回答が機能しました良い。とにかくありがとう、ゴードン! – Walker