CSS:
button:active {
/* active css */
}
button:disabled {
opacity: 0.5;
}
HTML:
<button disabled="disabled">Ok</button>
ボタンをクリックすると、ブラウザはbutton:active状態を追加して、クリックされたように見せます(無効になっている場合でも)。ボタンが有効になっている場合にのみ:activeが追加されたと思いました。私は何を逃しましたか?
CSS:
button:active {
/* active css */
}
button:disabled {
opacity: 0.5;
}
HTML:
<button disabled="disabled">Ok</button>
ボタンをクリックすると、ブラウザはbutton:active状態を追加して、クリックされたように見せます(無効になっている場合でも)。ボタンが有効になっている場合にのみ:activeが追加されたと思いました。私は何を逃しましたか?
私が言えることから、要素:active
を除外していません。必要に応じて仕様:disabled
を読むことができます。
問題を解決するために、セレクターで要素:disabled
のみをターゲットにすることで要素を除外できます。:enabled
:active
button:enabled:active {
/* active css */
}
button:disabled {
opacity: 0.5;
}
デモ: http: //jsfiddle.net/Blender/LRvra/1/
CSS3仕様(:disabled
CSS2.1にはありません)によると、それについての言及はなく、:active
相互:disabled
に排他的です。仕様のこの部分を明確にする必要がある可能性があるため、UAは疑似クラスを自由に組み合わせて適用できます。
より明確になるようにセレクターを変更することをお勧めします。
button:enabled:active {
/* active css */
}
button:disabled {
opacity: 0.5;
}
cssの:not()-記述子を使用することもできます。
button:active:not(:disabled) {
/* active css */
}
button:disabled {
opacity: 0.5;
}
よろしくお願いします、パトリック