首页 > 其他分享 >前端练习<Html&CSS>——悬浮抽卡片(附完整代码及实现效果)

前端练习<Html&CSS>——悬浮抽卡片(附完整代码及实现效果)

时间:2024-07-26 14:29:43浏览次数:9  
标签:container 卡片 -- Html CSS active 选择器 card

这个小练习来源于b站up小K师兄,大家可以通过下面的链接学习哦~up讲的非常详细。

写一个好玩的悬浮抽卡片效果~

先看一下效果:

1.鼠标没有放置到card上

2.鼠标放到card上,所有card呈角度散开 

3.单击选中某一张卡片,卡片上浮高亮,其他卡片变暗 

HTML部分

  • <html> 标签定义了整个HTML文档。
  • <head> 标签包含了文档的元数据,如字符编码、标题和样式表。
  • <body> 标签包含了文档的主体内容,即展示给用户看的部分。

CSS部分

  • * 选择器用于选择所有元素,并设置它们的默认样式,包括去除默认的边距、填充、边框、盒模型和字体。
  • body 选择器设置了页面的背景颜色、居中对齐、最小高度和隐藏溢出内容。
  • .container 选择器设置了容器元素的样式,包括相对定位、宽度、居中对齐和居中对齐内容。
  • .card 选择器设置了卡片的样式,包括绝对定位、宽度、高度、背景颜色、边框、过渡效果、旋转原点、颜色、字体大小、字体粗细、阴影等。
  • .container:hover .card 选择器设置了鼠标悬停时卡片的旋转、平移、阴影、颜色和光标样式。
  • .container:active .card:not(:active) 选择器设置了鼠标按下时卡片的背景颜色。
  • .container .card:active 选择器设置了鼠标按下时卡片的平移和层级。

HTML元素

  • <div class="container"> 是一个容器元素,包含了多个卡片元素。
  • <div class="card" style="--i:-4">1</div> 等元素是卡片元素,通过CSS变量 --i 控制旋转角度。

实现原理

这段代码通过CSS的伪类选择器和变量实现了卡片的动态效果。当鼠标悬停在容器上时,卡片会根据CSS变量 --i 的值进行旋转和平移,从而产生动态效果。当鼠标按下时,卡片会改变背景颜色,并进一步平移和提升层级。

完整的代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
				box-sizing: border-box;
				font-family: 'Poppins', sans-serif;
			}

			body {
				display: flex;
				justify-content: center;
				align-items: center;
				min-height: 100vh;
				background-color: #0f0f0f;
				overflow: hidden;

			}

			.container {
				position: relative;
				width: 100%;
				display: flex;
				justify-content: center;
				align-items: center;
			}


			.container .card {
				/* 设置卡片的位置、大小、背景颜色、边框、过渡效果、旋转原点、颜色、字体大小、字体粗细、阴影 */
				position: absolute;
				width: 240px;
				height: 360px;
				background-color: #5e5cfc;
				border-radius: 8px;
				display: flex;
				justify-content: center;
				align-items: center;
				color: rgba(0, 0, 0, 0);
				font-size: 8em;
				font-weight: 700;
				border: 10px solid rgba(0, 0, 0, .1);
				transition: .5s;
				transform-origin: 50% 100%;
				filter: hue-rotate(calc(var(--i)*60deg));
				box-shadow: 0 15px 50px rgba(0, 0, 0, .1);
			}

			.container:hover .card {
				/* 设置鼠标悬停时的卡片旋转、平移、阴影、颜色、光标样式 */
				transform: rotate(calc(var(--i)*5deg)) translate(calc(var(--i)*120px), -50px);
				box-shadow: 0 15px 50px rgba(0, 0, 0, .25);
				color: rgba(0, 0, 0, .25);
				cursor: pointer;
			}

			.container:active .card:not(:active) {
				/* 设置鼠标按下时的卡片背景颜色 */
				background-color: #333;

			}

			.container .card:active {
				/* 设置鼠标按下时的卡片平移、层级 */
				translate: calc(var(--i)*20px) -50px;
				z-index: 999;
			}
		</style>
	</head>
	<body>
		<div class="container">
			<!-- 设置每个卡片的样式,使用CSS变量--i来控制旋转角度 -->
			<div class="card" style="--i:-4">1</div>
			<div class="card" style="--i:-3">2</div>
			<div class="card" style="--i:-2">3</div>
			<div class="card" style="--i:-1">4</div>
			<div class="card" style="--i:0">5</div>
			<div class="card" style="--i:1">6</div>
			<div class="card" style="--i:2">7</div>
			<div class="card" style="--i:3">8</div>
			<div class="card" style="--i:4">9</div>
		</div>

	</body>
</html>

 感谢你的阅读~

如果文章对你有用的话请点个赞支持一下吧~

标签:container,卡片,--,Html,CSS,active,选择器,card
From: https://blog.csdn.net/Blusher1/article/details/140662696

相关文章

  • 抖音私信卡片跳转微信教程
    以下是使用W外链制作抖音私信卡片跳转微信的一般教程:  ​**步骤一:准备工作**1.注册并登录W外链平台账号。2. 并获取相关的链接或二维码。**步骤二:创建跳转链接**1.在W外链平台中,选择创建新的跳转链接。2.输入您的微信公众号或小程序的链接。**步骤三:生成私信卡片**......
  • html做成exe
     要将HTML文件打包成exe可执行文件,‌可以通过以下几种方法实现:‌使用PyInstaller:‌首先,‌确保已经安装了Python和pip(‌Python包管理器)‌。‌安装PyInstaller,‌可以通过命令行输入pipinstallpyinstaller进行安装。‌将你的HTML文件及其所有依赖的CSS、‌Java......
  • 为什么 Selenium 找不到我在代码中指定的元素,即使它在 HTML 中?
    我正在学习如何使用ChromeDriver在Python3.9.2上使用Selenium自动浏览网站,但我被困在GitHub的登录页面,这是我正在练习的网站。这是我的代码用于自动登录:fromseleniumimportwebdriverfromselenium.webdriver.chrome.optionsimportOptionsfromselenium.web......
  • cpanel 上的 React-django - MIME 类型('text/html')不是受支持的样式表
    我正在开发一个React-Django应用程序,并且它在本地运行当我将其安装在运行cpanel的服务器上时,它只显示一个空白页面。我的提供者检查了它并做了以下陈述:python应用程序在cpanel上正确安装错误原因应该在开发者端找到我制作......
  • CSS样式--续写
    哥们上课听到啥写啥,不做无意义的笔记。---驴言一刻今天写常见的一些样式规划,例如字体的,页面的,浮动的这些。(都是css样式,不是标签)字体样式:这个是在页面编写中会经常用到的一类样式。例如字体的加粗、大小、变细、颜色变化、斜体、字体类型等等。字体加粗/变细:font-weight在c......
  • HTML基础篇(第一天)
    1.HTML语法规范2.HTML基本结构标签3.开发工具4.HTML常用标签5.HTML中的注释和特殊字符一.HTML语法规范1.1基本语法概念1.HTML标签是由尖括号包围的关键词,如<html>2.HTML标签通常是成对出现的例如<html>和</html>,标签中第一个代表开始,第二个代表结束1.2标......
  • 一篇文章讲清楚html css js三件套之html
    目录HTMLHTML发展史HTML概念和语法常见的HTML标签: HTML调试错误信息分析HTML文档结构HTML5的新特性结论HTMLHTML是网页的基础,它是一种标记语言,用于定义网页的结构和内容。HTML标签告诉浏览器如何显示网页元素,例如段落、标题、列表、链接、图片和表格等。HTML发......
  • 探索WebKit的CSS表格布局:打造灵活的网页数据展示
    探索WebKit的CSS表格布局:打造灵活的网页数据展示CSS表格布局是一种在网页上展示数据的强大方式,它允许开发者使用CSS来创建类似于传统HTML表格的布局。WebKit作为许多流行浏览器的渲染引擎,提供了对CSS表格布局的全面支持。本文将深入探讨WebKit如何实现对CSS表格布局的支持,......
  • 一行CSS解决难倒工程师两天的问题!
    遇到了一个非常奇怪的问题。首页用swiper实现了几个栏目的选项卡,然后在推荐栏,是滚动加载的瀑布流。出现了一个问题,在移动端(PC上不会),左右滑动切换栏目的时候,swiper卡住了,如果上下滑动的时候,稍稍有一点倾斜,也会触发swiper的左右滑动,但是会滑到一半卡住!swiper这样一个成熟的组件,不......
  • 整段 html实现其中的每一个 a 标签跨域下载操作 window.URL.createObjectURL(blob)
    window.URL.createObjectURL(blob)a标签下载问题,通常在a标签中加上download属性,就可完成对href属性链接文件的下载,但仅仅是限于同源文件,如果是非同源,download属性就会失效第一种情况,单独的一个标签实现下载,可以使用span标签+click事件模拟a标签的行为,<spanstyle="co......