今日的CSS小案例

news2025/1/10 20:42:10

个人名片:
 😊作者简介:一名大一在校生,web前端开发专业
 🤡 个人主页:几何小超
 🐼
座右铭:懒惰受到的惩罚不仅仅是自己的失败,还有别人的成功。
 🎅**学习目标: 坚持每一次的学习打卡,学好前端

今天需要做的是原神的手风琴,看其他挺好玩,我就做了一个,现在还是把展示图放出来吧哈哈,因为本人也是个二次元LSP

 点击之后实现悬浮效果,看起来挺好看的,然后让咱们一起来设置

架构

这个布局相对于简单一点,有一个大盒子shell

里面放了一个版心card

然后把图片放盒子里面

下面的文字放另外一张盒子里面

 <div class="shell">
            <div class="card">
                <div class="box">
                    <img src="./img/1.png" />
                </div>
                <div class="character">
                    <img src="./img/1.png" />
                </div>
                <h4>凝光</h4>
            </div>
            <div class="card">
                <div class="box">
                    <img src="./img/3.png" />
                </div>
                <div class="character">
                    <img src="./img/3.png" />
                </div>
                <h4>多莉</h4>
            </div>
            <div class="card">
                <div class="box">
                    <img src="./img/4.png" />
                </div>
                <div class="character">
                    <img src="./img/4.png" />
                </div>
                <h4>刻晴</h4>
            </div>
            <div class="card">
                <div class="box">
                    <img src="./img/5.png" />
                </div>
                <div class="character">
                    <img src="./img/5.png" />
                </div>
                <h4>七七</h4>
            </div>
            <div class="card">
                <div class="box">
                    <img src="./img/6.png" />
                </div>
                <div class="character">
                    <img src="./img/6.png" />
                </div>
                <h4>纳西妲</h4>
            </div>
            <div class="card">
                <div class="box">
                    <img src="./img/8.png" />
                </div>
                <div class="character">
                    <img src="./img/8.png" />
                </div>
                <h4>雷电将军</h4>
            </div>
            <div class="card">
                <div class="box">
                    <img src="./img/7.png" />
                </div>
                <div class="character">
                    <img src="./img/7.png" />
                </div>
                <h4>可莉</h4>
            </div>
            
            <div class="card">
                <div class="box">
                    <img src="./img/10.png" />
                </div>
                <div class="character">
                    <img src="./img/10.png" />
                </div>
                <h4>芭芭拉</h4>
            </div>
        </div>

简单介绍一下架构之后,接下展示css代码,里面大量运用到了子集选择器,伪类选择器

介绍一下子集选择器><是指选择这个内容里面单独的内容

还是老规矩清除默认边距然后在加上css3盒子模型

给body设置弹性布局,然后缩放盒子大小,加上背景颜色,基本的样式就完成

然后其他的我相信大家都应该清除差不多了,不懂的再去查查资料这里就重点讲几个标签

今天的练习中遇到的两个新标签

 object-fit 属性用于指定应如何调整 <img> 或 <video> 的大小以适合其容器。

这个属性告诉内容以不同的方式填充容器。比如“保留长宽比”或者“展开并占用尽可能多的空间

cube-bezier() 函数定义三次贝塞尔曲线(Cubic Bezier curve)。

三次贝塞尔曲线由 P0、P1、P2 和 P3 四个点进行定义。P0 和 P3 是曲线的起点和终点,在 CSS 中,这两个点是固定的,因为坐标是成比例。P0 为 (0, 0),代表初始时间和初始状态,P3 为 (1, 1),代表最终时间和最终状态。

伪类的话不用我多说了吧,详细情况还是查看W3C

这里是css代码

* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            min-height: 100vh;
            overflow: hidden;
            display: flex;
            justify-content: center;
            align-items: center;
            background-image: linear-gradient(120deg,#e0c3fc 0%,#8ec5fc 100%);
             background-size: cover;
        }
        .shell{
            width: 1700px;
            margin: 0 auto;
            margin-top: 5rem;
            height: 750px;
            display: flex;
        }
        .card{
            flex-basis: 13%;
            position: relative;
            overflow: hidden;
        }
        .card:not(:nth(1)){
            margin-left: 20px;
        }
        .card:hover{
            overflow: initial;
        }
        .box{
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            transition:  all .1s cubic-bezier(0.165,0.84,0.44,1);
            overflow: hidden;
            border-radius: 10px;
            background-image: linear-gradient(100deg,#a18cd1,#fcaa55c,#141414ce);
            
            
        }
        .box>img{
            object-fit: contain;
            width: 100%;
            height: 100%;
            transform: translate(-50%,10% ) scale(3);
            position: relative;
            z-index: -1;
        }
        .card:hover>.box img{
            opacity: 0;
        }
        .card:hover>.box{
            transform: scaleY(1.5);
            background-image: initial;
            background-color: #7d419f;
            z-index: 2;
            cursor: pointer;
        }
        .card>h4{
            position: absolute;
            display: block;
            width: 120px;
            text-align: center;
            color: rgba(255,255,255,0.2);
            bottom: 0;
            left: 50%;
            transform: translate(-50%, -35%);
            font-size: 28px;
            z-index: 100;
            transition: .2s;
        }
        .card:hover h4{
            color: #fff;
            transform: translate(-50%,250%);
        }
        .card:hover .character>img{
            opacity: 1;
        }
            
        .card>.character{
            position: absolute;
            top: -100px;
            left: -400px;
            width: 100%;
            height: 100%;
            z-index: 3;
            pointer-events: none;
        }
        .character>img{
            width: 820px;
            height: 820px;
            object-fit: contain;
            opacity: 0;
            transition: all .3s;
            position: relative;
            z-index: -10;
        }

这里提供源码,大家可以尝试一边理解一边来写哦,嘻嘻

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
		* {
		    margin: 0;
		    padding: 0;
		    box-sizing: border-box;
		}
		
		body {
		    min-height: 100vh;
		    overflow: hidden;
		    display: flex;
		    justify-content: center;
		    align-items: center;
			background-image: linear-gradient(120deg,#e0c3fc 0%,#8ec5fc 100%);
			 background-size: cover;
		}
		.shell{
			width: 1700px;
			margin: 0 auto;
			margin-top: 5rem;
			height: 750px;
			display: flex;
		}
		.card{
			flex-basis: 13%;
			position: relative;
			overflow: hidden;
		}
		.card:not(:nth(1)){
			margin-left: 20px;
		}
		.card:hover{
			overflow: initial;
		}
		.box{
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			transition:  all .1s cubic-bezier(0.165,0.84,0.44,1);
			overflow: hidden;
			border-radius: 10px;
			background-image: linear-gradient(100deg,#a18cd1,#fcaa55c,#141414ce);
			
			
		}
		.box>img{
			object-fit: contain;
			width: 100%;
			height: 100%;
			transform: translate(-50%,10% ) scale(3);
			position: relative;
			z-index: -1;
		}
		.card:hover>.box img{
			opacity: 0;
		}
		.card:hover>.box{
			transform: scaleY(1.5);
			background-image: initial;
			background-color: #7d419f;
			z-index: 2;
			cursor: pointer;
		}
		.card>h4{
			position: absolute;
			display: block;
			width: 120px;
			text-align: center;
			color: rgba(255,255,255,0.2);
			bottom: 0;
			left: 50%;
			transform: translate(-50%, -35%);
			font-size: 28px;
			z-index: 100;
			transition: .2s;
		}
		.card:hover h4{
			color: #fff;
			transform: translate(-50%,250%);
		}
		.card:hover .character>img{
			opacity: 1;
		}
			
		.card>.character{
			position: absolute;
			top: -100px;
			left: -400px;
			width: 100%;
			height: 100%;
			z-index: 3;
			pointer-events: none;
		}
		.character>img{
			width: 820px;
			height: 820px;
			object-fit: contain;
			opacity: 0;
			transition: all .3s;
			position: relative;
			z-index: -10;
		}
		</style>
	</head>
	<body>
	    <div class="shell">
	        <div class="card">
	            <div class="box">
	                <img src="./img/1.png" />
	            </div>
	            <div class="character">
	                <img src="./img/1.png" />
	            </div>
	            <h4>凝光</h4>
	        </div>
	        <div class="card">
	            <div class="box">
	                <img src="./img/3.png" />
	            </div>
	            <div class="character">
	                <img src="./img/3.png" />
	            </div>
	            <h4>多莉</h4>
	        </div>
	        <div class="card">
	            <div class="box">
	                <img src="./img/4.png" />
	            </div>
	            <div class="character">
	                <img src="./img/4.png" />
	            </div>
	            <h4>刻晴</h4>
	        </div>
	        <div class="card">
	            <div class="box">
	                <img src="./img/5.png" />
	            </div>
	            <div class="character">
	                <img src="./img/5.png" />
	            </div>
	            <h4>七七</h4>
	        </div>
	        <div class="card">
	            <div class="box">
	                <img src="./img/6.png" />
	            </div>
	            <div class="character">
	                <img src="./img/6.png" />
	            </div>
	            <h4>纳西妲</h4>
	        </div>
	        <div class="card">
	            <div class="box">
	                <img src="./img/8.png" />
	            </div>
	            <div class="character">
	                <img src="./img/8.png" />
	            </div>
	            <h4>雷电将军</h4>
	        </div>
	        <div class="card">
	            <div class="box">
	                <img src="./img/7.png" />
	            </div>
	            <div class="character">
	                <img src="./img/7.png" />
	            </div>
	            <h4>可莉</h4>
	        </div>
	        
	        <div class="card">
	            <div class="box">
	                <img src="./img/10.png" />
	            </div>
	            <div class="character">
	                <img src="./img/10.png" />
	            </div>
	            <h4>芭芭拉</h4>
	        </div>
	    </div>
	</body>
	</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第一篇、基于Arduino uno,获取dht11温湿度传感器的温度信息和湿度信息——结果导向

0、结果 说明&#xff1a;先来看看串口调试助手显示的结果&#xff0c;如果是你想要的&#xff0c;可以接着往下看。 1、外观 说明&#xff1a;虽然dht11温湿度模块形态各异&#xff0c;但是代码都是适用的&#xff0c;因为它们的模块都是一样的。 2、连线 说明&#xff1a;…

微博开发--微博官方API使用方法【从注册到实战】

第一步&#xff1a;微博开发者身份认证 访问微博开放平台&#xff0c;登录自己微博账号&#xff0c;登录之后首先需要完善开发者的基本信息。【使用个人】 填写完成之后【审核通过】如下&#xff1a; 第二步&#xff1a;创建自己的应用 【备注&#xff1a;如果只是为了测试…

逻辑回归及逻辑回归的评估指标

一、逻辑回归介绍 逻辑回归(Logistic Regression)是机器学习中的一种分类模型&#xff0c;逻辑回归是一种分类算法&#xff0c;虽然名字中带有回归&#xff0c;但是它与回归之间有一定的联系。由于算法的简单和高效&#xff0c;在实际中应用非常广泛。 1.逻辑回归的应用场景 …

【腾讯云FinOps Crane 集训营】快速搭建一个 Kubernetes+Crane 环境,以及如何基于 Crane 优化你的集群和应用初体验

文章目录 一、活动介绍二、环境搭建三、安装本地的 Kind 集群和 Crane 组件四、界面截图五、主要功能六、整体架构七、Crane的优势八、总结参考文献 一、活动介绍 Crane 是由腾讯云主导开源的国内第一个基于云原生技术的成本优化项目&#xff0c;遵循 FinOps 标准&#xff0c;…

用java带你了解网络IO模型

目录 1.BIO1.1 简述1.2 代码示例1.3优点和缺点1.4 思考 2. NoBlockingIO2.1 简述2.2 代码示例2.3 优点和缺点2.4 思考 3. NIO&#xff08;NewIO&#xff09;3.1 简述3.2 代码示例3.3 优点和缺点3.3 思考 4. 扩展select/poll、epoll4.1 简述4.2 select/poll4.3 epoll4.4 扩展话题…

Linux之vim编辑器的使用

目录 一、vim是什么&#xff1f; 试验1&#xff1a; 二.命令模式继承用法&#xff1a; vim命令模式的快捷键: 光标移动: vim文本复制相关操作: vim文本编辑操作: 三.末行模式命令用法 部分快捷键&#xff1a; 四.vim编辑器的配置原理 一、vim是什么&#xff1f; vi…

Hive SQL语句的正确执行顺序

关于 sql 语句的执行顺序网上有很多资料&#xff0c;但是大多都没进行验证&#xff0c;并且很多都有点小错误&#xff0c;尤其是对于 select 和 group by 执行的先后顺序&#xff0c;有说 select 先执行&#xff0c;有说 group by 先执行&#xff0c;到底它俩谁先执行呢&#x…

智能结构诊断器:建筑结构健康的守护者

近年来&#xff0c;接二连三的自建房坍塌&#xff0c;超高层建筑震动&#xff0c;让建筑的健康和安全性成为了人们关注的焦点。为了确保建筑物的长期稳定性和安全性&#xff0c;迫切需要高效且准确的方法来监测结构的健康状况。智能结构诊断器的出现&#xff0c;让建筑结构监测…

大数据如何助力营销(5)活动复盘

在市场竞争日益激烈的今天&#xff0c;营销活动已经成为吸引用户、提升品牌影响力、增加销售转化的重要手段。然而&#xff0c;一场营销活动在举办后&#xff0c;往往难以评估活动的效果&#xff0c;而大数据技术将从方方面面、科学有效地复盘活动&#xff0c;并为下一次举办活…

chatgpt赋能Python-python_kbhit

Python kbhit - 帮助您掌握实时按键输入 如果您需要使用实时按键输入来控制您的Python程序&#xff0c;那么你需要知道的是Python kbhit。kbhit是一种允许用户实时按键输入并立即响应的技术。本文将介绍Python kbhit的用途和用法&#xff0c;并探讨实时输入如何帮助您掌控程序…

AI绘图学习心得分享-Midjourney绘画AI,让你少走一些弯路

本教程收集于:AIGC从入门到精通教程 AI绘图学习心得分享-Midjourney绘画AI,让你少走一些弯路 本篇没有什么长篇大论,全部都是实用心得总结。接下来,我们将分享关于Midjourney绘画AI的实用心得总结,包括构图指令结构、常用指令、操作技巧、常用风格词汇和构图词汇。 如果…

手机号码在网时长 API 实现广告投放和精准营销案例分析

引言 手机在网时长是指用户在移动网络上的在线时间&#xff0c;包括用户接入网络的时间和断开网络的时间。手机在网时长 API 是一种提供手机在网时长数据的编程接口&#xff0c;为开发者和服务提供商提供了获取和利用这些数据的能力。 本文旨在深入探讨手机在网时长 API 的技…

计算机视觉——day95 PANet:基于样本原型对齐的Few-Shot图像语义分割

PANet:基于样本原型对齐的Few-Shot图像语义分割 1. Introduction2. Related workFew-shot segmentation 3. Method3.1. Problem setting3.2. Method overview3.3. Prototype learning&#xff08;原型学习&#xff09;3.4. 非参数度量学习3.5. 原型对准正则化(PAR) 4. Experime…

MySQL高级 之 explain执行计划详解

使用explain关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的&#xff0c;分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为&#xff1a;id、type、key、rows、Extra 各字段详解 id select查询的序…

前端安全和防护:如何保护网站和用户信息的安全

第一章&#xff1a;引言 在当今数字化时代&#xff0c;随着互联网的飞速发展&#xff0c;网站已成为人们获取信息和进行交流的主要渠道。然而&#xff0c;随之而来的是对网站安全的日益关注。作为前端开发者和网站管理员&#xff0c;我们有责任确保用户的信息和网站的安全。本…

可分析表情和情绪的轻量化眼镜:Emteq OCOsense解析

近年来&#xff0c;越来越多VR头显开始尝试结合眼球追踪、手势追踪等生物识别技术&#xff0c;甚至在一些VR社交场景&#xff0c;也在探索将Avatar与面部识别功能结合。可以想象&#xff0c;未来生物识别与AR/VR等穿戴技术的关系将越来越紧密&#xff0c;尽管现阶段相关硬件在体…

Jenkins安装插件教程 牢记 Jenkis安装插件(plugin)的两种方法

目录 jenkins在线安装组件&#xff08;plugin&#xff09; jenkins离线安装组件&#xff08;plugin&#xff09; 前言&#xff1a;在jenkins学习使用或使用的过程中&#xff0c;由于网络的问题&#xff0c;在选择安装插件的时候&#xff0c;会出现某些插件安装失败。这是需要…

Word控件Spire.Doc 【列表】教程:在 Word 文档中插入列表

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

【MaxCompute】基于Package跨项目访问资源实践

背景 目前随着公司业务的不断扩展&#xff0c;各个业务线的数据也越来越多&#xff0c;如果所有数据都集中管理比较错综复杂。MaxCompute的跨项目访问资源比较适合这样的场景。每个业务线创建对应的project&#xff0c;自行管理数据。如果有需要访问其他业务线数据的诉求&…

python3 爬虫相关学习6:html 和 css 简要回顾

因为要学爬虫&#xff0c;需要了解下html内容&#xff0c;我之前大概看过&#xff0c;这算是回顾下 以下html简单回顾内容&#xff0c;跟着这个地址的教程看了一遍&#xff0c;感谢 https://www.w3school.com.cn/html/html_jianjie.asp 下面是笔记 目录 1 html 2 常用标签…