CSS题目系列(3)- 实现文字切割效果

news/2024/7/3 1:41:43

描述

有一天逛 Codepen 的时候,看到这么一个效果:将文字上下切开两半。

点进去看了一下代码,发现原理很简单,大概就是通过伪类使用attr()函数获取内容,然后进行定位。

你可以点下方链接查看效果:

gd4ark.github.io/blog_demos/…

正文

先让两个伪元素获取到属性的值,并且将位置调好。

<h1 data-content="I Love CSS">I Love CSS</h1>
复制代码

样式部分

h1 {position: relative;color: transparent;
}h1::before,
h1::after {/* 通过 attr 获取属性的值 */content: attr(data-content);position: absolute;left: 0;width: 100%;overflow: hidden;color: #CC3333;
}/* 切割部分 */
h1::before {/* 上对齐 */top: 0;height: 50%;
}/* 剩余部分 */
h1::after {/* 下对齐 */bottom: 0;height: 50%;
}
复制代码

这时候的效果是这样的,所以我们要把剩余部分的文字进行底部对齐。

这里使用flex布局对齐,剩余部分改为:

/* 剩余部分 */
h1::after{bottom: 0;height: 50%;display: flex;align-items: flex-end;
}
复制代码

这时候:

到现在,就已经做好,只要在切割部分上应用动画,即可实现炫酷的切割效果:

/* 切割部分 */
h1::before{animation: action 5s 1s ease alternate infinite;
}
@keyframes action{0%{transform: translateX(0px);}30%{transform: translateX(-5vw);}60%{transform: translateX(0px);}100%{transform: translateX(5vw);}
}
复制代码

完整代码:github.com/gd4Ark/blog…

后记

不得不说那些大神们的脑洞真是大,如果没见过这个效果之前,我是无论如何都想不到可以如此简单的实现这么炫酷的切割效果。

注:此文为原创文章,如需转载,请注明出处。

原文链接


http://lihuaxi.xjx100.cn/news/245428.html

相关文章

SQL Server 储存过程的output 参数

要做的参数的回传一方面要做到有储存过程的配合&#xff0c;再一方面也要有调用方法的配合&#xff0c;也就是说错误的调用方法是没有办法把值回传的。 下面是例子 --1、储存过程方面的配合 create procedure dbo.usp_C i as int output ---**注意这里要用output 关键字**--…

学习JavaScript数据结构与算法(一):栈与队列

本系列的第一篇文章: 学习JavaScript数据结构与算法&#xff08;一&#xff09;&#xff0c;栈与队列第二篇文章&#xff1a;学习JavaScript数据结构与算法&#xff08;二&#xff09;&#xff1a;链表第三篇文章&#xff1a;学习JavaScript数据结构与算法&#xff08;三&#…

多次登录失败用户被锁定及使用Pam_Tally2解锁

在linux系统中&#xff0c;用户多次登录失败会被锁定&#xff0c;一段时间内将不能再登录系统&#xff0c;这是一般会用到Pam_Tally2进行账户解锁。 了解PAM Linux-PAM (Pluggable Authentication Modules for Linux)可插拔认证模块。Linux-PAM是一套适用于Linux的身份验证共享…

IOS开发中多线程的使用

一、创建多线程的五种方式1.开启线程的方法一 NSThread * thread[[NSThread alloc] initWithTarget:self selector:selector(_update) object:nil]; 2.开启线程的方法二 [NSThread detachNewThreadSelector:selector(_update) toTarget:self withObject:nil]; 3.开启线程的方法…

Razor:从aspx到cshtml常见错误及正确书写方法

http://blog.csdn.net/cheny_com/article/details/6298496 从aspx转到chshtml还是有很多要适应的地方的&#xff0c;本帖是个人学习笔记帖不断更新。每天开着本帖编程。 按第一个有意义的编译错误的首字母排序&#xff0c;便于查找&#xff1a; Cannot implicitly convert type…

c语言读文件一行为一个数组元素,c语言数组练习习题(14页)-原创力文档

第 7章 数组习题A 卷1.单项选择题(1) int a[4]{5,3,8,9};其中a[3]的值为 (D )。DA.5B.3C.8D.9以下 4 个字符串函数中&#xff0c; ( A) 所在的头文件与其他 3 个不同。A. gets B. strcpy C. strlen D. strcmp以下 4 个数组定义中&#xff0c; ( D) 是错误的。 DA. int a[7]; B.…

手机上有android,android-在不同智能手机上的Videoview行为(具有...

使用videoview(或MediaPlayer)在同一活动中的多个videoview中播放rtsp流时遇到兼容性问题.我已经对here这个问题提出了另一个问题,但是现在我知道这不是我的代码负责,因为我在不同的手机上测试了相同的软件,并且可以正常工作.查看用于RTSP设置的logcat Info消息,我发现每部手机…

[Django](1093, quot;You can#39;t specify target table #39;fee_details_invoices#39; for update in...

dele_id Fee_details_invoices.objects.filter(fee_detail_id__infee_id_list, return_type2).values_list(fee_detail_id, flatTrue) Fee_details_invoices.objects.filter(fee_detail_id__indele_id).delete() 报错&#xff1a; django.db.utils.DatabaseError: (1093, &quo…