实现思路
- 定义基础样式:为组件设置基本的样式,包括尺寸、颜色、字体等,这是所有状态的基础。
- 使用伪类表示不同状态:对于按钮组件,利用
:hover
表示悬停状态,:active
表示按下状态。
- 设置过渡效果:通过
transition
属性来实现状态之间的平滑过渡。
- 响应式设计:使用媒体查询(
@media
)来确保在不同屏幕尺寸下表现一致。
相关CSS属性使用
transition
属性:
- 语法:
transition: property duration timing - function delay;
- 示例:
button {
background - color: #007BFF;
color: white;
padding: 10px 20px;
border: none;
border - radius: 5px;
/* 过渡设置,背景颜色在0.3秒内以ease - in - out方式过渡 */
transition: background - color 0.3s ease - in - out;
}
button:hover {
background - color: #0056b3;
}
button:active {
background - color: #003f80;
}
- 说明:
property
指要过渡的CSS属性,如 background - color
、transform
等。这里设置为 background - color
,表示背景颜色会过渡。
duration
是过渡持续的时间,单位是秒(s)或毫秒(ms),这里设置为 0.3s
。
timing - function
定义过渡的速度曲线,ease - in - out
表示在开始和结束时慢,中间快。
delay
是过渡开始前的延迟时间,这里未设置。
- 媒体查询(
@media
):
- 语法:
@media (media - type and (media - feature)) { /* CSS rules */ }
- 示例:
@media (max - width: 600px) {
button {
padding: 8px 16px;
font - size: 14px;
/* 小屏幕上同样设置过渡 */
transition: background - color 0.3s ease - in - out;
}
}
- 说明:
media - type
有 all
(所有设备)、screen
(屏幕设备)、print
(打印设备)等。
media - feature
如 max - width
、min - height
等用于定义条件。这里 max - width: 600px
表示屏幕宽度小于等于600px时应用此规则。在媒体查询内同样设置过渡效果,保证不同屏幕尺寸下状态过渡一致,同时调整按钮的内边距和字体大小以适应小屏幕。