16

CSS:

button:active {
/* active css */
}

button:disabled {
  opacity: 0.5;
}

HTML:

<button disabled="disabled">Ok</button>

ボタンをクリックすると、ブラウザはbutton:active状態を追加して、クリックされたように見せます(無効になっている場合でも)。ボタンが有効になっている場合にのみ:activeが追加されたと思いました。私は何を逃しましたか?

4

3 に答える 3

38

私が言えることから、要素:activeを除外していません。必要に応じて仕様:disabledを読むことができます。

問題を解決するために、セレクターで要素:disabledのみをターゲットにすることで要素を除外できます。:enabled:active

button:enabled:active {
/* active css */
}

button:disabled {
  opacity: 0.5;
}

デモ: http: //jsfiddle.net/Blender/LRvra/1/

于 2012-09-25T22:28:13.437 に答える
4

CSS3仕様:disabledCSS2.1にはありません)によると、それについての言及はなく、:active相互:disabledに排他的です。仕様のこの部分を明確にする必要がある可能性があるため、UAは疑似クラスを自由に組み合わせて適用できます。

より明確になるようにセレクターを変更することをお勧めします。

button:enabled:active {
    /* active css */
}
button:disabled {
    opacity: 0.5;
}
于 2012-09-25T22:29:01.353 に答える
0

cssの:not()-記述子を使用することもできます。

button:active:not(:disabled) {
/* active css */
}

button:disabled {
  opacity: 0.5;
}

よろしくお願いします、パトリック

于 2016-10-17T11:52:00.713 に答える