博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何用纯 CSS 创作一个金属光泽 3D 按钮特效
阅读量:6620 次
发布时间:2019-06-25

本文共 1557 字,大约阅读时间需要 5 分钟。

效果预览

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

可交互视频教程

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

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

源代码下载

请从 github 下载。

代码解读

在 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
  • variables
  • calc
  • perspective
  • text-shadow
  • box-shadow

原文地址:

转载地址:http://rlupo.baihongyu.com/

你可能感兴趣的文章
计算机科学,大一学生怎样来爱你(文&PPT)
查看>>
PHP 开发社区微信服务号实战图解
查看>>
Exchange Server 2013 系列八:邮箱服务器角色DAG实战
查看>>
php使用curl下载指定大小的文件
查看>>
VS2013创建Node.js C++ Addons的过程
查看>>
amaze ui中的icon button
查看>>
tcp 三次握手
查看>>
XML中添加换行符
查看>>
在C#中使用属性控件添加属性窗口
查看>>
printf()详解之终极无惑
查看>>
交叉检验---训练数据,验证数据和测试数据
查看>>
AspNetPager分页控件配置
查看>>
第 8 章 Spring Data
查看>>
[裴礼文数学分析中的典型问题与方法习题参考解答]5.1.24
查看>>
C语言 编程练习22题
查看>>
CloudDBA现场助力双十一
查看>>
虚拟现实技术或会产生副作用
查看>>
【云图】如何设置微信里的全国实体店地图?
查看>>
db file async I/O submit 等待事件优化
查看>>
李开复谈未来工作:虽然会被AI取代,但谁说人类非得工作不可?
查看>>