效果预览

在线演示

按下右侧的“点击预览”按钮在当前页面预览,点击链接全屏预览。

https://codepen.io/zhang-ou/full/MGeRRO

可交互视频教程

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/c/cdKMBTk

源代码下载

本地下载

请从 github 下载。

https://github.com/comehope/front-end-daily-challenges/tree/master/004-metallic-glossy-3d-button-effects

代码解读

在 dom 中定义一个容器:

``` <div class="box">BUTTON</div> ```

容器居中显示:

html, body {height: 100%;display: flex;align-items: center;justify-content: center;background-color: skyblue;
}

设置按钮的 2d 样式,为了便于调整按钮尺寸,使用了变量:

.box {background: linear-gradient(to right, gold, darkorange);color: white;--width: 250px;--height: calc(var(--width) / 3);width: var(--width);height: var(--height);text-align: center;line-height: var(--height);font-size: calc(var(--height) / 2.5);font-family: sans-serif;letter-spacing: 0.2em;border: 1px solid darkgoldenrod;border-radius: 2em;
}

设置按钮的 3d 样式:

.box {transform: perspective(500px) rotateY(-15deg);text-shadow: 6px 3px 2px rgba(0, 0, 0, 0.2);box-shadow: 2px 0 0 5px rgba(0, 0, 0, 0.2);
}

定义按钮的鼠标划过动画效果:

.box:hover {transform: perspective(500px) rotateY(15deg);text-shadow: -6px 3px 2px rgba(0, 0, 0, 0.2);box-shadow: -2px 0 0 5px rgba(0, 0, 0, 0.2);
}.box {transition: 0.5s;
}

用伪元素增加光泽:

.box {position: relative;
}.box::before {content: '';position: absolute;width: 100%;height: 100%;background: linear-gradient(to right, transparent, white, transparent);left: 0;
}

定义光泽动画效果:

.box::before {left: -100%;transition: 0.5s;
}.box:hover::before {left: 100%;
}

最后,隐藏容器之外的内容:

.box {overflow: hidden;
}

大功告成!

知识点

  • linear-gradient https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient
  • variables https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables
  • calc https://developer.mozilla.org/en-US/docs/Web/CSS/calc
  • perspective https://developer.mozilla.org/en-US/docs/Web/CSS/perspective
  • text-shadow https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
  • box-shadow https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow

原文地址:https://segmentfault.com/a/1190000014599280

如何用纯 CSS 创作一个金属光泽 3D 按钮特效相关推荐

  1. 如何用纯 CSS 创作一个金属光泽 3D 按钮特效 1

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/full/MGeRRO 可交互视频教程 此 ...

  2. 4. 纯 CSS 创作一个金属光泽 3D 按钮特效

    4. 纯 CSS 创作一个金属光泽 3D 按钮特效 原文地址:https://segmentfault.com/a/1190000014599280 HTML代码: <div class=&qu ...

  3. 如何用纯 CSS 创作一个同心圆弧旋转 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视 ...

  4. 如何用纯 CSS 创作一个精彩的彩虹 loading 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/vjvoow 可交互视频教 ...

  5. 如何用纯 CSS 创作气泡填色的按钮特效

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/eKqZjy 可交互视频 ...

  6. 如何用纯 CSS 创作背景色块变换的按钮特效

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/XYKdwg 可交互视频教 ...

  7. 如何用纯 CSS 创作一个小球上台阶的动画

    如何用纯 CSS 创作一个小球上台阶的动画 效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/come ...

  8. 如何用纯 CSS 创作一个荧光脉冲 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/erRzzR 可交互视频教程 此视 ...

  9. 如何用纯 CSS 创作一个冒着热气的咖啡杯

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/xjXxoz 可交互视频教程 此视 ...

最新文章

  1. 计算机视觉方向简介 | 人体骨骼关键点检测综述
  2. R语言与概率统计(六) 主成分分析 因子分析
  3. 颠覆传统4S店,特斯拉发布智能售后服务体系
  4. LINQ to Tree - A Generic Technique for Querying Tree-like Structures,包含遍历WPF VisualTree
  5. html5手机端三级联动城市选择代码,省市县三级联动(jQuery手机端收货地址选择地区代码)...
  6. 谷歌YouTube算法团队:视频质量评价的集成池化方法
  7. 看图工具—IrfanView
  8. Android 8.0 学习(17)---Android8.0中对指纹的新要求
  9. hp服务器安装win7普通系统安装,hp台式电脑安装系统一键安装win7系统
  10. 全新的Windows Phone 8开发资源汇总
  11. mapgis 6.7视频教程
  12. java对象转为map_浅谈对象与Map相互转化
  13. 5000字 大数据时代读书笔记_大数据读书笔记3000字
  14. java snakeyaml_java – 使用SnakeYAML的嵌套构造
  15. 八十年代的古董级晶体管直流稳压电源 WYJ-15V/1A
  16. 大数据难吗?如何快速掌握大数据开发技能
  17. 清理注册表 php,如何彻底清理注册表?小编教你清理注册表操作方法
  18. delphi控制excel ,在指定单元格后插入行
  19. QT C2220: 警告被视为错误 - 没有生成“object”文件
  20. 写代码写到70岁,是一种什么样的体验?

热门文章

  1. 抖音风格故障效果PSD图层+剪辑设计必备
  2. 【exception】java.lang.NoClassDefFoundError Could not initialize class
  3. Excel的列编号 例如:A对应1,Z对应26,AA对应27,AZ对应52 ......
  4. python打蛇_hprose for java源码分析-1 初识
  5. 启用QNX系统,海尔智能冰箱或成业界“宝马”
  6. 强化学习面试大纲(看这一篇就够啦)
  7. android 看不见照片,android view保存为本地图片,微信看不到(部分适配,不能保证100%)...
  8. elementUI表格中动态单元格合并
  9. 深度技术GHOST WIN7系统32.64位j极速安装版 V2016年
  10. 金融科技视角看全球资管巨头贝莱德的成功之道