css实现3D效果的按钮

1. css 代码
1.1 初步
.btn{
  color: #fff;
  border: 0;
  font-size: 18px;
  outline: none;
  padding: 5px 10px;
  background: #ace;
  border-radius: 4px;
  /* 设置文字阴影 */
  text-shadow: 0 -1px 0 rgba(0,0,0,.3);
  /* 设置盒子阴影 */
  box-shadow: 0 4px 0 #9cb8d8, 0 3px 20px rgba(0,0,0,0.3);
  /* 交互性 */
  cursor: pointer;
}

.btn:active {
  /* 按钮按下去之后周围的光源应该没那么强烈了,所以可以考虑适当减少阴影 */
  text-shadow: 0 -1px 0 rgba(0,0,0,.1);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5) inset;
  position: relative;
  top: 3px;
}
1.2 比例(阴影部分也按照比例放大)
.btn {
  color: #fff;
  border: 0;
  font-size: 18px;
  outline: none;
  padding: 0.278em 0.556em;
  background: #ace;
  border-radius: 0.22em;
  /* 设置文字阴影 */
  text-shadow: 0 -0.056em 0 rgba(0,0,0,.3);
  /* 设置盒子阴影 */
  box-shadow: 0 0.22em 0 #9cb8d8, 0 0.167em 1.11em rgba(0,0,0,0.3);
    /* 交互性 */
  cursor: pointer;
}

.btn:active {

  /* 按钮按下去之后周围的光源应该没那么强烈了,所以可以考虑适当减少阴影 */
  text-shadow: 0 -0.056em 0 rgba(0,0,0,.1);
  box-shadow: 0 0 0.556em rgba(0, 0, 0, 0.5) inset;
  position: relative;
  top: 0.167em;
}

  //最终我们可以根据字体大小来调整button的大小,阴影部分也会随着增大减小。
.btn {
  margin-left: 30px;
}

.btn-md {
  font-size: 30px;
}

.btn-lg {
  font-size: 50px;
}
2. html代码
<button class="btn">保存</button>
<button class="btn btn-md">保存</button>
<button class="btn btn-lg">保存</button>
效果
3. 兼容性

text-shadow 不兼容IE10以下浏览器
box-shadow不兼容IE9以下浏览器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,522评论 0 6
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,807评论 0 2
  • text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果。随着HTML5和CSS...
    arlene112阅读 2,295评论 0 1
  • 文|般若芙殇 三月的小镇上,在夜里冷不防地飘起了霰雪,陡降的气温竟把腰疼这个老毛病给触发,第二天从床上下来便开始举...
    李诗民阅读 1,745评论 4 14