これは、IE8、IE9、Chrome、Firefoxで動作することがテストされています。かなり奇妙なことですが、Operaでも機能します。Operaではinput field
(この場合はradio button
)ステータスがchecked
(JavaScriptでテスト済みalert(this.checked);
)に変更されますが、それを反映して外観は変更されません。考えられる回避策については、以下を参照してください。
問題のあるブラウザの大部分の解決策は、編集不可能なコンテンツを次のspan
ようにラップすることです。
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<div contentEditable="true">
<span contentEditable="false">
<input type="radio" />
</span>ere er er er re
</div>
</body>
</html>
radio button
Operaの部分に関しては、 「selected
状態」の変更を反映しないという事実は、CSSセレクターで2つの異なる状態をスタイル設定し、これら2つのCSSルールをOperaブラウザーにのみ適用することでオーバーライドできるはずです。Operaはそのようなプロパティの変更を受け入れるようですが、これは私がテストした他のすべてのブラウザでは何の違いもありません。これは、Opera固有のCSSルールを適用して状態の変更を反映する方法かもしれません。次に例を示します。input[type="radio"]
input[type="radio"]:checked
background-color
radio buttons
checked
input[type="radio"]:checked {background-color:gray;}
他のブラウザは、このCSSルールを単に無視します。適用できるもう1つの許容可能なOpera固有のルールはですがborder
、この場合、値がないことに制限されていることがわかります。