27 代码星球卡片

效果演示

27-代码星球卡片.gif

实现了一个卡片式的网站页面,其中卡片的背景颜色和字体颜色随着鼠标移动而变化,鼠标悬停时会出现一个渐变的背景和文字颜色,卡片上方还有一个按钮,当鼠标点击按钮时会出现一个动态的渐变背景和文字颜色。整个页面的背景颜色为浅灰色。

Code

<div class="card">
    <div class="heading">Join the Open-Source <span>Galaxy</span></div>
    <div class="content">
        <div class="item item--create">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
                <path fill="currentColor" d="...">
                </path>
            </svg>
            <span>Create</span>
        </div>
        <div class="item item--post">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
                <path fill="currentColor" d="...">
                </path>
            </svg>
            <span>Post</span>
        </div>
        <div class="item item--inspire">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
                <path fill="currentColor" d="...">
                </path>
            </svg>
            <span>Inspire</span>
        </div>
    </div>
    <button>Code to Infinity!</button>
</div>
body {
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #e8e8e8;
}

.card {
    width: 8em;
    font-family: Montserrat;
    height: 8em;
    background: #ae47c2;
    box-shadow: inset -25px -25px 0px #a73dbd, 10px 10px 10px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    border-radius: 50%;
    transition: .4s ease-in-out;
}

.card:before {
    position: relative;
    text-align: center;
    content: "Code Planet";
    color: white;
    border-radius: 50%;
    top: 3.4em;
    left: 0.85em;
    font-weight: 600;
}

.card .heading {
    opacity: 0;
    transition: .1s ease-in-out;
}

.card .heading span {
    transition: .4s ease-in-out;
}

.card button {
    opacity: 0;
    transition: .001s ease-in-out;
}

.card .heading:hover {
    background: linear-gradient(to right, #fff 20%, orange 40%, yellow 60%, skyblue 80%, #ffe4f2 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradient_6346 5s linear infinite;
    letter-spacing: 1px;
    scale: 1.01;
}

@keyframes gradient_6346 {
    to {
        background-position: 200% center;
    }
}

.card .content {
    opacity: 0;
    transition: .1s ease-in-out;
}

.card:hover {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    width: 15.4em;
    height: 22.9em;
    padding-top: .4em;
    padding-bottom: 1.5em;
    background-color: #171717;
    border-radius: 20px;
    box-shadow: rgba(0, 0, 0, 0.4) 0px 2px 2px, rgba(0, 0, 0, 0.3) 0px 7px 13px -3px, rgba(0, 0, 0, 0.2) 0px -1px 0px inset;
    background: linear-gradient(270deg, #ce68d9, #45c6db, #45db79);
    background-size: 800% 800%;
    -webkit-animation: AnimationName 3s ease infinite;
    -moz-animation: AnimationName 3s ease infinite;
    animation: AnimationName 3s ease infinite;
    transition: .4s ease-in-out;
}

.card:hover .heading {
    opacity: 1;
    transition: .8s ease-in-out;
}

.card:hover .content {
    opacity: 1;
    transition: .8s ease-in-out;
}

.card:hover button {
    opacity: 1;
    transition: .4s ease-in-out;
}

.card:hover::before {
    opacity: 0;
}

.heading {
    display: flex;
    flex-direction: column;
    color: white;
    font-size: 1em;
    text-align: center;
    padding-bottom: 1em;
    font-weight: bold;
    transition: .4s ease-in-out;
}

.content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: 2em;
}

.item {
    font-size: 0.8em;
    margin: 0.5em;
    padding: 0.8em;
    display: flex;
    color: white;
    align-items: center;
    justify-content: center;
    gap: 0.8em;
    border-radius: 15px;
    transition: .4s ease-in-out;
    box-shadow: rgba(0, 0, 0, 0.4) 0px 2px 4px, rgba(0, 0, 0, 0.3) 0px 7px 13px -3px, rgba(0, 0, 0, 0.2) 0px -3px 0px inset;
}

.item:hover {
    cursor: pointer;
    scale: 0.9;
    box-shadow: none;
}

.item:active {
    cursor: pointer;
    scale: 0.8;
    box-shadow: inset 2px 5px 10px rgba(0, 0, 0, 0.2);
}

.item--create {
    padding-left: 2.5em;
    padding-right: 2.5em;
}

.item--post {
    padding-left: 3em;
    padding-right: 3em;
}

.item--inspire {
    padding-left: 2.5em;
    padding-right: 2.5em;
}

button {
    padding: 0.8em;
    width: 14em;
    border-radius: 10px;
    align-self: center;
    outline: none;
    font-weight: bold;
    border: 1px solid white;
    background-color: transparent;
    color: white;
    transition: .4s ease-in-out;
}

button::after {
    content: "(Hold Me)";
    opacity: 0;
    position: absolute;
}

button::before {
    content: "∞";
    font-size: 3.5em;
    position: absolute;
    opacity: 0;
    left: 1.6em;
    top: -0.33em;
    transition: .4s ease-in-out;
}

button:hover {
    cursor: pointer;
    color: black;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

button:hover::after {
    position: relative;
    opacity: 1;
    font-size: 0.7em;
}

@keyframes AnimationName {
    0% {
        background-position: 0% 50%
    }

    50% {
        background-position: 100% 50%
    }

    100% {
        background-position: 0% 50%
    }
}

button:active {
    scale: 1.1;
    opacity: 1;
    color: transparent;
    background: linear-gradient(90deg, #ce68d9, #45c6db, #45db79, #9f45b0, #e54ed0, #ffe4f2);
    background-size: 800% 800%;
    -webkit-animation: AnimationName 1s ease infinite;
    -moz-animation: AnimationName 1s ease infinite;
    animation: AnimationName 1s ease infinite;
}

button:active::before {
    color: white;
    opacity: 1;
}

实现思路拆分

  1. body 元素的样式设置:设置了页面的高度、居中显示、背景颜色和水平居中对齐。
  2. .card 元素的样式设置:设置了卡片的宽度、高度、背景颜色、阴影、圆角、过渡效果和过渡效果的持续时间。
  3. .card:before 元素的样式设置:设置了卡片上方的文本内容、字体颜色、字体大小、字体粗细、位置和过渡效果。
  4. .card.heading 元素的样式设置:设置了卡片标题的透明度和过渡效果。
  5. .card.heading span 元素的样式设置:设置了卡片标题中的字体大小和过渡效果。
  6. .card button 元素的样式设置:设置了卡片按钮的透明度和过渡效果。
  7. .card.heading:hover 元素的样式设置:设置了卡片标题的鼠标悬停时的渐变背景和文字颜色,以及一个动画效果。
  8. @keyframes gradient_6346 动画效果的定义:定义了一个名为 gradient_6346 的动画效果,使得卡片标题的背景颜色从左到右渐变。
  9. .card:hover 元素的样式设置:设置了卡片的鼠标悬停时的样式,包括宽度、高度、内边距、背景颜色、圆角、阴影、渐变背景和动画效果。
  10. .card:hover.heading 元素的样式设置:设置了卡片标题的鼠标悬停时的样式,包括透明度和过渡效果。
  11. .card:hover.content 元素的样式设置:设置了卡片内容的鼠标悬停时的样式,包括透明度和过渡效果。
  12. .card:hover button 元素的样式设置:设置了卡片按钮的鼠标悬停时的样式,包括透明度和过渡效果。
  13. .card:hover::before 元素的样式设置:设置了卡片上方的文本内容的透明度。
  14. .heading 元素的样式设置:设置了卡片标题的样式,包括字体颜色、字体大小、字体粗细、对齐方式、透明度和过渡效果。
  15. .content 元素的样式设置:设置了卡片内容的样式,包括对齐方式、内边距和透明度。
  16. .item 元素的样式设置:设置了卡片内容中的项目的样式,包括字体大小、内边距、对齐方式、颜色、圆角、阴影、过渡效果和点击效果。
  17. .item:hover 元素的样式设置:设置了卡片内容中的项目的鼠标悬停时的样式,包括缩放比例、阴影和点击效果。
  18. .item:active 元素的样式设置:设置了卡片内容中的项目的鼠标点击时的样式,包括缩放比例、阴影和点击效果。
  19. .item--create 元素的样式设置:设置了卡片内容中的创建项目的样式,包括内边距。
  20. .item--post 元素的样式设置:设置了卡片内容中的发布项目的样式,包括内边距。
  21. .item--inspire 元素的样式设置:设置了卡片内容中的灵感项目的样式,包括内边距。
  22. button 元素的样式设置:设置了卡片按钮的样式,包括内边距、宽度、圆角、边框、背景颜色、字体颜色、字体粗细、对齐方式、透明度和过渡效果。
  23. button::after 元素的样式设置:设置了卡片按钮的文本内容,包括文本内容、透明度和位置。
  24. button::before 元素的样式设置:设置了卡片按钮的前景元素,包括文本内容、字体大小、位置、透明度和过渡效果。
  25. button:hover 元素的样式设置:设置了卡片按钮的鼠标悬停时的样式
    button:hover::after 元素的样式设置:设置了卡片按钮的鼠标悬停时的文本内容,包括文本内容、透明度和位置。
  26. @keyframes AnimationName 动画效果的定义:定义了一个名为 AnimationName 的动画效果,使得卡片按钮的背景颜色从左到右渐变。
  27. button:active 元素的样式设置:设置了卡片按钮的鼠标点击时的样式,包括缩放比例、透明度、渐变背景和动画效果。
  28. button:active::before 元素的样式设置:设置了卡片按钮的鼠标点击时的前景元素,包括文本内容、字体大小、位置、透明度和字体颜色。

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

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

相关文章

SQL-修改表操作

目录 DDL-表操作-修改 添加字段 &#xff08;方括号内容可选&#xff09; 修改字段 修改指定字段的数据类型 修改字段名和字段类型 删除字段 修改表名 删除表 删除指定表&#xff0c;并重新创建该表 总结 &#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦…

虹科分享 | 用Redis为LangChain定制AI代理——OpenGPTs

文章速览&#xff1a; OpenGPTs简介Redis在OpenGPTs中的作用在本地使用OpenGPTs在云端使用OpenGPTsRedis与LangChain赋能创新 OpenAI最近推出了OpenAI GPTs——一个构建定制化AI代理的无代码“应用商店”&#xff0c;随后LangChain开发了类似的开源工具OpenGPTs。OpenGPTs是一…

Qt/C++音视频开发63-设置视频旋转角度/支持0-90-180-270度旋转/自定义旋转角度

一、前言 设置旋转角度,相对来说是一个比较小众的需求,如果视频本身带了旋转角度,则解码播放的时候本身就会旋转到对应的角度显示,比如手机上拍摄的视频一般是旋转了90度的,如果该视频文件放到电脑上打开,一些早期的播放器可能播放的时候是躺着的,因为早期播放器设计的…

基于VSG控制的MMC并网逆变器MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 根据传统同步发电机的运行特性设计了MMC-VSG功频控制器和励磁控制器&#xff0c; 实现了MMC-VSG逆变器对高压电网电压和频率的支撑。该模型包含MMC变流器模块&#xff0c;环流抑制模块&#xff0c;…

【算法】增减序列(贪心,差分)

题目 给定一个长度为 n 的数列 a1,a2,…,an&#xff0c;每次可以选择一个区间 [l,r]&#xff0c;使下标在这个区间内的数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样&#xff0c;并求出在保证最少次数的前提下&#xff0c;最终得到的数列可能有多少种…

21道Java Spring MVC综合面试题详解含答案(值得珍藏)

1.概述 1.1 什么是Spring MVC&#xff1f;简单介绍下你对Spring MVC的理解&#xff1f; Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;通过把模型-视图-控制器分离&#xff0c;将web层进行职责解耦&#xff0c;把复杂的web应用分成…

推荐熊猫电竞赏金电竞系统源码

熊猫电竞赏金电竞系统源码&#xff0c;包含APP、H5和搭建视频教程&#xff0c;支持运营级搭建&#xff0c;这套源码是基于ThinkPHPUniaapp框架开发的。 系统是一套完整的电竞平台开发源码&#xff0c;包括赛事管理、用户系统、竞猜系统、支付系统等模块。源码结构清晰&#xff…

如何从多个文件夹里各提取相应数量的文件放一起到新文件夹中形成多文件夹组合

首先&#xff0c;需要用到的这个工具&#xff1a; 百度 密码&#xff1a;qwu2蓝奏云 密码&#xff1a;2r1z 说明一下情况 文件夹&#xff1a;1、2、3里面分别放置了各100张动物的图片&#xff0c;模拟实际情况的各种文件 操作&#xff1a;这里演示的是从3个文件夹里各取2张图…

Open3D (C++) 计算条件数

目录 一、算法原理1、条件数2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、条件数 条件数法是目前应用最为广泛的一种病态诊断方法。条件数的定义为:

Alphalens因子分析(4) - Information Coefficient方法

在前面的笔记中&#xff0c;无论是回报分析&#xff0c;还是因子Alpha&#xff0c;它们都受到交易成本的影响。信息分析 (Information Analysis)则是一种不受这种影响的评估方法&#xff0c;主要研究方法就是信息系数(Information Coefficient)。 信息系数的范围为-1到1&#x…

K8S集群重新初始化--详细过程

K8S集群重新初始化 0、当前环境1、master节点1.1、在master节点执行下面reset命令&#xff1a;1.2、手动清除配置信息&#xff0c;这一步很关键&#xff1a;1.3、重新引导集群1.4、创建配置目录&#xff0c;并复制权限配置文件到用户目录下&#xff1a;1.5 查看集群状态1.6 安装…

【Redis】Redis面试热点

Redis 集群有哪些方案&#xff1f; 主从复制&#xff1a;解决了高并发问题 哨兵模式&#xff1a;解决了高并发&#xff0c;高可用问题 分片集群&#xff1a;解决了海量数据存储&#xff0c;高并发写的问题 主从复制 图示&#xff1a; 主从复制&#xff1a;单节点 Redis 并发…

1、理解Transformer:革新自然语言处理的模型

目录 一、论文题目 二、背景与动机 三、卖点与创新 四、解决的问题 五、具体实现细节 0. Transformer 架构的主要组件 1. 注意力、自注意力&#xff08;Self-Attention&#xff09;到多头注意力&#xff08;Multi-Head Attention&#xff09; 注意力到底是做什么的&…

【一、测试基础】Java基础语法

Java 的用法及注意事项有很多&#xff0c;今天的目标是了解Java基础语法&#xff0c;且能够输出"hello world" 几个基础的概念 对象&#xff1a;对象是类的一个实例&#xff0c;有状态和行为。一只猫是一个对象&#xff0c;猫的状态有&#xff1a;颜色、名字、品种&…

绝地求生:【违规处罚工作公示】1月1日-1月7日

1月1日至1月7日期间&#xff0c;共计对113,490个违规账号进行了封禁&#xff0c;其中103,133个账号因使用外挂被永久封禁。 若您游戏中遇到违规行为&#xff0c;建议您优先在游戏内进行举报&#xff1b; 另外您也可以在官方微信公众号【PUBG国际版】中点击“ 服务中心 - 举报…

可运营的SSL证书在线生成系统源码,附带图文搭建教程

安装教程 运行环境 PHP8.0.2-8.2最好选用8.0 Nginx1.22.1版本 Mysql5.7 伪静态设置为Thinkphp 后台账号admin 密码123456 系统使用API申请地址&#xff1a;https://www.sslprogen.com/

SQL-分组查询

目录 DQL-分组查询 分组查询注意事项&#xff1a; DQL- 排序查询 &#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &…

OSG加载STL模型

下载了2个简单stl模型&#xff0c;用基本的加载代码&#xff1b;直接可以加载&#xff1b; 查一点资料&#xff1b; 怎样在OSG中添加支持STL格式的模型文件&#xff1f; 使用OSG时&#xff0c;如果需要导入STL格式的模型文件&#xff0c;需要添加STL插件。 可以通过在代码中调…

uniapp中uview组件库丰富的ActionSheet 操作菜单使用方法

目录 #平台差异说明 #基本使用 #配置顶部的提示信息和底部取消按钮 #如何知道点了第几项 #API #Props #Event 本组件用于从底部弹出一个操作菜单&#xff0c;供用户选择并返回结果。 本组件功能类似于uni的uni.showActionSheetAPI&#xff0c;配置更加灵活&#xff0c;所…

PDF-XChange Editor v10.2.0.384

软件介绍 PDF-XChange Editor&#xff0c;号称打开速度最快最强大的PDF编辑器/PDF阅读器&#xff0c;PDF-XChange专注于PDF文档的编辑&#xff0c;打开PDF文件速度快&#xff0c;软件小功能强大&#xff0c;可以自定义制作PDF电子文档&#xff0c;具有创建&#xff0c;查看&am…