Open 981377660LMT opened 7 months ago
button { background-color: #4CAF50; color: white; }
:hover
button:hover { background-color: #45a049; }
:active
button:active { background-color: #3e8e41; }
:focus
button:focus { outline: none; border: 2px solid #4CAF50; }
以上就是常规态、悬停态、选中态、聚焦态对应的 CSS 伪类。
CSS 的伪类选择器有一定的优先级,因此在设置样式时,需要按照一定的顺序来设置,以避免后面的样式覆盖前面的样式。常见的顺序是 "LoVe/HAte" 原则,即:
:link
:visited
对于你提到的几个伪类,建议的顺序是:
这样可以确保在用户交互过程中,样式的变化符合预期。例如:
button { /* 常规态 */ background-color: #4CAF50; color: white; } button:hover { /* 悬停态 */ background-color: #45a049; } button:focus { /* 聚焦态 */ outline: none; border: 2px solid #4CAF50; } button:active { /* 选中态 */ background-color: #3e8e41; }
:hover
伪类。当鼠标悬停在元素上时,:hover
伪类会生效,例如::active
伪类。当用户点击或触摸元素,而且还没有释放时,:active
伪类会生效,例如::focus
伪类。当元素获得焦点时(例如,用户点击或触摸元素,或者使用键盘导航到元素),:focus
伪类会生效,例如:以上就是常规态、悬停态、选中态、聚焦态对应的 CSS 伪类。
CSS 的伪类选择器有一定的优先级,因此在设置样式时,需要按照一定的顺序来设置,以避免后面的样式覆盖前面的样式。常见的顺序是 "LoVe/HAte" 原则,即:
:link
- 未访问的链接:visited
- 用户已访问的链接:hover
- 用户鼠标悬停的元素:active
- 用户激活的元素对于你提到的几个伪类,建议的顺序是:
:hover
):应该在常规态之后,聚焦态和选中态之前定义。:focus
):应该在悬停态之后,选中态之前定义。:active
):应该在聚焦态之后定义。这样可以确保在用户交互过程中,样式的变化符合预期。例如: