有趣的css - 卡片翻转效果

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是利用 css3 属性 backface-visibility 让卡片翻转的过渡动画效果。

《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。


目录

  • 整体效果
  • 核心代码
    • html 代码
    • css 部分代码
  • 完整代码如下
    • html 页面
    • css 样式
    • 页面渲染效果

整体效果

知识点:
① 伪元素的灵活使用
transform 过渡属性的使用
③ css3 中 backface-visibility 属性的灵活使用

思路:
利用 ::before::after 伪元素绘制两个不同的矩形卡片,然后根据鼠标悬浮状态让两个矩形卡片翻转展示。


核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。

核心代码

html 代码

<div class="card54"></div>

.card54 矩形卡片主体标签。

css 部分代码

.card54{
  width: 100px;
  height: 46px;
  cursor: pointer;
  box-sizing: border-box;
  font-weight: 800;
  letter-spacing: 2px;
  color: #ffffff;
}
.card54::before,.card54::after{
  width: 100px;
  height: 46px;
  border-radius: 9px;
  border: 1px dashed #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  content: '有彩蛋';
  background-color: #36AFCA;
  box-shadow: 0 0 0 4px #36AFCA;
  transition: transform 0.5s ease;
  backface-visibility: hidden;  /* 当元素背面向屏幕时,元素不可见 */
}
.card54::after{
  content: '叫爸爸';
  background-color: #F89C6B;
  box-shadow: 0 0 0 4px #F89C6B;
  transform: rotateY(180deg);
}
.card54:hover::before{
  transform: rotateY(180deg);
}
.card54:hover::after{
  transform: rotateY(0deg);
}

1、先定义卡片 .card54 的大小尺寸,以及其它通用样式。

2、然后利用伪元素 ::before::after 创建两个矩形卡片,分别定义不同的 content 值;然后利用 css3 属性 backface-visibility ,当元素发生背向屏幕时,元素不可见,这样当两个矩形卡片发生翻转时就只显示正面面对屏幕的了。

3、然后根据伪元素 :hover 状态,来让矩形卡片沿着 Y 轴翻转;再加上 transition 过渡参数,这样一个卡片翻转效果就完成了。

Tips:

css3 中 backface-visibility 属性定义当元素背面向屏幕时是否可见,该属性大部分主流浏览器都已经支持。

backface-visibility 属性值有两个,默认为 visible,定义当元素背向时是可见的;另一个值为 hidden ,定义当元素背向时是不可见的。

如果在旋转元素不希望看到其背面时,该属性很有用。

完整代码如下

html 页面

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="style.css">
        <title>卡片翻转效果</title>
    </head>
    <body>
        <div class="app">
            <div class="card54"></div>
        </div>
    </body>
</html>

css 样式

/** style.css **/
.app{
  width: 100%;
  height: 100vh;
  background-color: #ffffff;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.card54{
  width: 100px;
  height: 46px;
  cursor: pointer;
  box-sizing: border-box;
  font-weight: 800;
  letter-spacing: 2px;
  color: #ffffff;
}
.card54::before,.card54::after{
  width: 100px;
  height: 46px;
  border-radius: 9px;
  border: 1px dashed #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  content: '有彩蛋';
  background-color: #36AFCA;
  box-shadow: 0 0 0 4px #36AFCA;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
}
.card54::after{
  content: '叫爸爸';
  background-color: #F89C6B;
  box-shadow: 0 0 0 4px #F89C6B;
  transform: rotateY(180deg);
}
.card54:hover::before{
  transform: rotateY(180deg);
}
.card54:hover::after{
  transform: rotateY(0deg);
}

页面渲染效果

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 原文阅读


CSS 是一种很酷很有趣的计算机语言,在这里跟大家分享一些 CSS 实例 Demo,为学习者获取灵感和思路提供一点帮助,希望你们喜欢。

我是 Just,这里是「设计师工作日常」,求点赞求关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/627998.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ICode国际青少年编程竞赛- Python-5级训练场-函数练习2

ICode国际青少年编程竞赛- Python-5级训练场-函数练习2 1、 def get_item(a):Spaceship.step(1)Dev.step(a)Dev.turnLeft()Dev.step(1)Spaceship.step(1)Dev.turnRight()Dev.step(-a)Spaceship.step(1) get_item(3) get_item(2) get_item(3) get_item(1) get_item(5)2、 de…

PDF批量编辑:PDF转HTML批量操作技巧,提升文档格式转换效率

在数字化办公日益普及的今天&#xff0c;PDF&#xff08;Portable Document Format&#xff09;作为一种跨平台的文件格式&#xff0c;广泛应用于各种文档的存储和传输。然而&#xff0c;PDF文件的不可编辑性使得在某些情况下&#xff0c;我们需要将其转换为HTML格式以便更好地…

性价比王者HUSB237,极简PD Sink的“瘦身秘籍”

在小型化、高集成的要求下&#xff0c;慧能泰取电芯片进行技术升级后“瘦身成功”&#xff0c;推出最新一代极具性价比的最简PD Sink取电芯片——HUSB237。 图1&#xff1a;HUSB237 demo及封装图 HUSB237 是一款极具性价比的最简PD Sink取电芯片&#xff0c;支持PD3.1协议包含…

无人售货奶柜:掘金新零售蓝海,

无人售货奶柜&#xff1a;掘金新零售蓝海&#xff0c; 在日新月异的商业浪潮中&#xff0c;无人奶柜犹如一股清新的创业飓风&#xff0c;正以不可阻挡之势吸引着众多创业者的目光。这股新兴力量以其独到之处和庞大的市场蓝海&#xff0c;预示着一场关于健康、便捷消费方式的深…

网络故障快速定位的秘诀 - 基于 AnaTraf 全流量回溯分析

网络故障是每个 IT 从业者都深有体会的头疼问题。当网络出现异常时,如何快速定位故障原因,恢复网络正常运行,是考验运维能力的关键所在。借助 AnaTraf 网络流量分析仪的全流量回溯分析功能,您可以轻松应对各种复杂的网络问题,实现快速故障定位。 1. 网络故障分析的痛点 网络故…

【跟着例子学MySQL】生成统计报告 --分组聚合

文章目录 前言生成报告DISTINCT 关键字GROUP BY 子句GROUP BY 聚合函数HAVING 子句WITH ROLLUP 子句未完待续 前言 举例子&#xff0c;是最简单有效的学习方法。本系列文章以一个贯穿始终的场景&#xff0c;结合多个实例讲解MySQL的基本用法。 ❔ 为什么要写这个系列&#xff…

前端铺子后台管理系统:基于Vue3与Ant Design Vue的轻量级解决方案

一、引言 随着前端技术的飞速发展&#xff0c;构建高效、轻量且易于维护的后台管理系统成为了企业信息化建设的重要一环。前端铺子后台管理系统&#xff0c;作为一款基于Vue的前端框架&#xff0c;结合Ant Design Vue的UI组件库&#xff0c;为企业提供了一个高效、灵活的后台管…

铁路机辆作业移动智能终端的特点是什么?

在铁路机辆作业的现代化进程中&#xff0c;移动智能终端以其独特的优势成为了不可或缺的装备。这些终端以其高度的便携性&#xff0c;使得工作人员能够随时随地处理各种作业任务&#xff0c;极大地提升了工作效率。它们具备出色的抗干扰性和高防护性&#xff0c;能够在复杂多变…

Docker部署MaxKB详细步骤(window系统)

上面章节已经实现了ollama李现部署llama3&#xff0c;并实现了一些简单的问答&#xff0c;但是问答的界面是在命令提示符中&#xff0c;交互很不友好&#xff0c;也不方便局域网其他用户访问&#xff0c;所以这节用docker部署MaxKB实现网页访问llama3&#xff0c;首先电脑上需要…

26版SPSS操作教程(高级教程第二十二章)

目录 前言 粉丝及官方意见说明 第二十二章一些学习笔记 第二十二章一些操作方法 联合分析 假设数据 具体操作 结果解释 联合分析的数据建模 CONJOINT过程语法 汽车偏好研究 具体操作 结果解释 高精统计图 市场占有率模拟 结果解释 结束语 前言 #一路向光而…

STL—string类(1)

一、string类 1、为什么要学习string&#xff1f; C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP&#xff08;面向对象…

【Fastadmin】自定义404页面

1.修改config.php // 文件路径&#xff1a;application/config.php// 自定义错误码模板http_exception_template > [// 定义404错误的模板渲染404 > APP_PATH . common/view/404/404.html,], 2.需要把debug关闭才能生效 在.env文件中把debug true&#xff0c;改为…

阿里云OSS如果指定某个文件夹给子账户

** 第一步创建子账号 ** 创建完用户不要给任何权限&#xff01; 当前页面切换到认证管理获取AccessKey即可 第二步目录授权 找到对应桶文件目录 上面授权按钮操作 选择添加的子账号账号保存即可&#xff01;

Ardupilot Rpanion 4GLTE 网络性能测试 - 国内中转

Ardupilot Rpanion 4GLTE 网络性能测试 - 国内中转 1. 源由2. 视频效果2.1 整体刷新率不高2.2 网络延迟可接受2.3 带宽增加丢包明显2.4 实测效果流畅 3. 总结 1. 源由 上一次&#xff0c;由于ZeroTier使用了国外服务器&#xff0c;延迟~ 569 ms&#xff0c;花屏、卡顿。 本着…

[自动化]pyautogui的使用

目录 环境 包的版本 前置知识 鼠标控制函数 屏幕与鼠标位置 size() position() OnScreen() 鼠标移动 moveTo() move() 鼠标拖动 dragTo() drag() mouseDown()按下鼠标 mouseUp()松开鼠标 鼠标滚动 scroll() 键盘控制函数 write() press() keyDown()和keyU…

数据分析(二)——导入外部数据,导入Excel数据,CSV文件,txt文件,HTML网页,数据抽取,DataFrame对象的loc属性与iloc属性

一.导入外部数据 1.导入.xIs或.xIsx文件 pd.read_ excel(io,sheet_ name,header) 1.1常用参数说明 ●io:表示.xIs或.xIsx文件路径或类文件对象 ●sheet name:表示工作表&#xff0c;取值如下表所示 ●header:默认值为0&#xff0c;取第一行的值为列名&#xff0c;数据为除列…

深度剖析MyBatis的一级缓存

概述 MyBatis 的一级缓存是什么时候开启的&#xff1f; 在 MyBatis 中&#xff0c; 一级缓存是默认开启的 。 参考&#xff1a;MyBatis缓存的概念 通过场景来理解: 场景一 1、在一个 SqlSession 中&#xff0c;对 User 表进行两次根据 ID 的查询&#xff0c;查看发出 sql …

一步一步带你做网络工程

网络工程怎么做 一、网络设备交换机的应用&#xff1a; 要求&#xff1a;在此接入交换机S3700&#xff0c;上划分两个vlan&#xff0c;vlan10和vlan20分别有两个PC&#xff0c;按拓扑图完成要求&#xff1a; 划分vlan添加端口 sys [Huawei]sys S1 [S1]undo in e [S1]undo t…

2024年重庆等保测评公司有哪些?分别位于哪里?

2024年重庆等保测评公司有哪些&#xff1f;分别位于哪里&#xff1f; 【回答】&#xff1a;目前2024年重庆等保测评公司有四家&#xff0c;具体公司名称以及地址如下&#xff1a; 1、重庆信安网络安全等级测评有限公司&#xff0c;重庆市两江新区黄山大道中段55号附2号麒麟D座…

新手小白如何使用云平台复现论文代码——体验yolov8监控交通流

介绍&#xff1a;YOLOv8 是一种开源目标检测算法&#xff08;模型&#xff09;&#xff0c;是 YOLO(You Only Look Once) 系列算法的最新版本。它使用单次预测框架对图像中的对象进行定位和分类。这种方法可以检测多个对象&#xff0c;并且速度更快&#xff0c;准确率更高。 参…