学习CSS3,使用双旋转实现福到了的迎春喜庆特效

news/2024/10/27 20:35:14/

春节快到了,因为疫情已经好久没有回老家了,今年终于可以回家过年了,我已经抑制不住自己激动的心情了。因此,我利用css3的旋转做了一个福到了的特效,而且是双旋转哦。

目录

1、实现思路 

2、大红纸的渲染过程

3、错误的福字布局 

4、正确的福字布局 

5、完整源代码

6、真实开发工作中可能没那么复杂

7、结语 


 

1、实现思路 

其实看上去并不难,首先需要一个喜庆的红色背景,做为我们贴福字的背景大红色;这个大红色的贴纸首先做到第一次旋转;但实现过程中,因为红色背景已经做过旋转,如果福字还在里面做为内部元素来布局,福字肯定会跟着旋转,那么就不好控制;所以我决定将红色纸背景和大福字拆分元素布局,单独对福字进行样式处理,旋转,再进行渲染;更重要的是要将福字与红色背景的居中处理。

2、大红纸的渲染过程

大红纸这块的需求呢,首先是正方形,宽高相等;然后是旋转45度;旋转我们这里采用transform属性,代码如下:

<!-- html部分 -->
<div class="fu-box"></div>// css部分
.fu-box {position: absolute;top: 100px;left: 100px;width: 300px;height: 300px;background: red;transform: rotate(45deg);
}

 

 

3、错误的福字布局 

开始我想得是将福字元素布局到大红色元素内部,但其实一旦外层布局旋转过45度以后,内部的福字旋转就很没有规律性可言,内部的福字如果想调整到那种福到了的效果,需要做很大程度的调整,代码如下:

<!-- html部分 -->
<div class="fu-box"><div class="fu-txt">福</div>
</div>// css部分
.fu-txt {position: absolute;top: 37px;left: 77px;font-size: 180px;color: #000;transform: rotate(134deg);
}

这段代码虽然也将福字调整到了居中的位置,但top值,left值,和旋转后的rotate值都不如之前预想的那么有规律性

4、正确的福字布局 

所以我后来想到,将内部的福字布局和外部的红色纸张布局进行拆分,也就是使用2个div元素进行布局。这样,外部的纸张通过rotate旋转45度,对内部的福字布局就不会造成影响。而内部福字布局也可以根据自己的原点进行旋转布局,这样就有规律的多,进行了180度旋转。

而仍然需要做的就是内部福字和外部纸张的定位显示,这里需要为内部进行absolute绝对定位布局,调整top和left定位即可。代码如下:

<!-- html部分 -->
<div class="fu-box"></div>
<div class="fu-txt">福</div>// css部分
.fu-txt {position: absolute;top: 150px;left: 162px;font-size: 180px;color: #000;transform: rotate(180deg);
}

 最终实现效果如下:

 

5、完整源代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>福到了</title><style>* {margin: 0;padding: 0;}body {background: #000;;}.fu-box {position: absolute;top: 100px;left: 100px;width: 300px;height: 300px;background: red;transform: rotate(45deg);}.fu-txt {position: absolute;top: 150px;left: 162px;font-size: 180px;color: #000;transform: rotate(180deg);}</style>
</head>
<body><div class="fu-box"></div><div class="fu-txt">福</div>
</body>

 

6、真实开发工作中可能没那么复杂

真实工作中,如果你需要实现一个类似这样的需求,很可能UI设计师会直接给你一张图片,让你直接去进行定位到网页中的某个位置,不会像本文中这样复杂,又考虑是否需要双旋转,又考虑定位是否居中的问题。

可能工作中你直接一个Img标签,或者采用background类似的方式就实现了。而很多人可能img标签和background背景图片还有点晕。

而我的理解是,在前端的世界里,图片不仅仅是一个样式显示,很多时候,图片也扮演着一种数据的展示。比如商品图,这张图片就应该用img标签,因为他扮演的是商品的一个数据属性,而非样式角色,再比如轮播图,这也是网站的一种顶部展示数据。而一些小图标啦,花纹啦,很明显,他就是为了做为样式而存在的。

7、结语 

这就是css3关于transform的简单使用,从而实现一个福到了的效果。

眼看临近春节了,疫情也放开了,提醒大家还是尽量减少无用的聚集,比如有人打牌,你就别去边上看着了;比如赶集,你戴好口罩,这两年我戴的口罩比前些年总和都要多;

预祝大家在新的一年里,玉兔吉祥,步步高升。


http://www.ppmy.cn/news/11785.html

相关文章

详解SpringMVC

1.DispatcherServlet初始化时机 DispatcherServlet是由spring创建的&#xff0c;初始化是由Tomcat完成的&#xff0c;通过setLoadOnStartup来决定是否为tomcat启动时初始化 Configuration ComponentScan // 没有设置扫描包的话默认扫描当前配置的包及其子包 PropertySource(&…

基于YOLOv5+C3CBAM+CBAM注意力的海底生物[海参、海胆、扇贝、海星]检测识别分析系统

在我前面的一些文章中也有用到过很多次注意力的集成来提升原生检测模型的性能&#xff0c;这里同样是加入了注意力机制&#xff0c;区别在于&#xff0c;这里同时在两处加入了注意力机制&#xff0c;第一处是讲CBAM集成进入原生的C3模块中&#xff0c;在特征提取部分就可以发挥…

HTML5+CSS3小实例:文本背景扫光效果

实例:文本背景扫光效果 技术栈:HTML+CSS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="width…

Silane-PEG-COOH,硅烷-聚乙二醇-羧基结构式及相关应用介绍

英文名称&#xff1a;Silane-PEG-acid&#xff1b;Silane-PEG-COOH 中文名称&#xff1a;硅烷-聚乙二醇-羧基 分子量&#xff1a;1k&#xff0c;2k&#xff0c;3.4k&#xff0c;5k&#xff0c;10k&#xff0c;20k。。。 存储条件&#xff1a;-20C&#xff0c;避光&#xff0…

【网络攻击手段之-----ARP欺骗】

网络攻击手段之-----ARP欺骗前言什么是ARP欺骗APR欺骗的原理ARP欺骗的实现ARP欺骗后可以选择进一步攻击ARP欺骗的模拟实验Python语言C语言ARP欺骗的防御前言 本篇文章介绍了什么是ARP欺骗&#xff0c;并使用了代码来模拟ARP的欺骗攻击&#xff0c;ARP 欺骗攻击是一种高危网络攻…

在 Unity 解决方案中引用外部工程(.csproj)或 NuGet 包

背景 本人近期制作一服务端和客户端程序&#xff0c;采用下列架构实现&#xff1a; 服务端&#xff08;Server.exe&#xff09;中间件&#xff08;Shared.dll&#xff0c;实现两端共享的那部分代码&#xff09;客户端&#xff08;Client.exe&#xff0c;用 Unity 实现&#x…

【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

TCP/IP协议族之TCP、UDP协议详解(小白也能看懂)

前言 在进行网络编程之前&#xff0c;我们必须要对网络通信的基础知识有个大概的框架&#xff0c;TCP/IP协议族涉及到多种网络协议&#xff0c;一般说TCP/IP协议&#xff0c;它不是指某一个具体的网络协议&#xff0c;而是一个协议族。本篇章主要针对IP协议、TCP和UDP协议记录总…