从模仿到掌握:尝试一下Native CSS手写一个好看的按钮
笔者前段时间正在学习Native CSS,刚好看到有一个按钮的CSS写的真不错,打算借过来抄抄,这是我第一次思考和描摹一个按钮的样式。,顺便理解每一个属性的作用。
从最简单的按钮开始
HTML中放置一个按钮采用如下的标签
html
<button>Click Me</button>
然后在 CSS 里定义:
css
button {
padding: 10px 20px;
border: none;
border-radius: 8px;
cursor: pointer;
}
这是最经典的原生开发中对按钮上样式表的办法,属性的介绍笔者放到下面。
padding控制文字和边框的距离,直接决定按钮的大小和舒适度;border-radius决定边角的圆润程度;cursor: pointer让鼠标悬停时变成手型,给用户"可点击"的反馈;border: none去掉浏览器默认的丑边框。
到这里,按钮的形状就已经"像样"了。
上颜色
下一步是上色,上色的重要目的是强调视觉重点,调整字体让字体加粗让按钮更有存在感。
css
background-color: #42b983;
color: white;
font-size: 16px;
font-weight: bold;
让交互更自然:过渡动画
css
transition: background-color 0.3s ease, transform 0.1s ease;
这个属性的作用是让按钮在"变化"时更加平滑。比如,当后来加上悬停(hover)或点击(active)效果时,颜色和位置不会突兀地跳变,而是柔和地过渡。这是CSS 的"动效感"的来源
Hover属性设置
当用户的鼠标移上去时,按钮轻轻变深、阴影变大------这样就能塑造按钮浮起来的感觉
css
button:hover {
background-color: #369b74;
box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
}
Active:点击的物理反馈
按下按钮时,让它微微下沉一点点,这样我们就能让按钮看起来像真的被按下去:
css
button:active {
transform: translateY(1px);
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.1);
}
完整的成品代码
css
button {
padding: 10px 20px;
border: none;
border-radius: 8px;
cursor: pointer;
background-color: #42b983;
color: white;
font-size: 16px;
font-weight: bold;
transition: background-color 0.3s ease, transform 0.1s ease;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
button:hover {
background-color: #369b74;
box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
}
button:active {
transform: translateY(1px);
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.1);
}
按钮CSS清单表
Step 1:基础形状
- 目标:用 padding、border、border-radius、cursor 做一个基础按钮
- 操作步骤 :
- 创建
button,设置文字"点击我" - 调整
padding到 10px 20px - 设置
border: none - 设置
border-radius为 0、8px、50px 三种,观察变化 - 设置
cursor: pointer
- 创建
- 输出:按钮大小合理,边角圆润,鼠标悬停显示手型
Step 2:颜色与字体
- 目标:让按钮有视觉重点
- 操作步骤 :
- 设置背景色
background-color为绿色或你喜欢的主色 - 设置字体颜色
color: white - 调整
font-size和font-weight
- 设置背景色
- 输出:按钮清晰可见,文字大小合适
Step 3:平滑过渡
-
目标:按钮交互不生硬
-
操作步骤:
-
给按钮加上
transitioncsstransition: background-color 0.3s ease, transform 0.1s ease; -
在 hover 和 active 里改变颜色和位置
-
-
输出:悬停和点击有平滑动画
Step 4:悬停效果
- 目标:鼠标悬停时按钮有浮起感
- 操作步骤 :
- 在
button:hover中设置背景色稍深 - 增加
box-shadow让按钮看起来浮起来
- 在
- 输出:悬停时颜色变深,阴影变大
Step 5:点击效果
- 目标:点击按钮有物理反馈
- 操作步骤 :
- 在
button:active中设置transform: translateY(1px) - 调整
box-shadow变小
- 在
- 输出:点击按钮时轻微下沉,阴影缩小
Step 6:自由组合挑战
- 目标:自己设计不同风格按钮
- 操作步骤 :
- 调整 padding、radius、颜色、阴影
- 改变 hover/active 效果
- 尝试不同过渡速度
- 输出:做出至少三种风格按钮(圆角大/小,颜色明/暗,阴影浮/沉)