从模仿到掌握:尝试一下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 效果
- 尝试不同过渡速度
 
- 输出:做出至少三种风格按钮(圆角大/小,颜色明/暗,阴影浮/沉)