html+css实现文字折叠特效

1. 定义标签:

1
<h1>aurora</h1>

2. 设置文字基本样式:

1
2
3
4
5
6
7
8
9
10
h1{
             text-transform: uppercase;
             letter-spacing: 3px;
             font-size: 15vw;
             transform: rotate(-10deg) skew(30deg);
             position: relative;
             color: rgba(0, 101, 253, 0.6);
             -webkit-text-stroke: 2px  rgba(0, 101, 253, 0.6);
             transition: all 1s;
         }

text-transform: uppercase; 字母变为大写字母。
letter-spacing: 3px; 字间距。
transform: rotate(-10deg) skew(30deg); 先旋转-10deg,再倾斜30deg。
-webkit-text-stroke: 2px rgba(0, 101, 253, 0.6); 文字边框 详细
transition: all 1s; 过渡效果

3. 鼠标经过文字显示内陷效果:

1
2
3
4
5
6
h1:hover{
          /*   先叠层白的,再叠层黑的,@ www.haoshilao.net先叠的白会覆盖到黑,白的地方亮,黑的地方暗 */
           text-shadow:3px 3px 6px #fff,
           3px 3px 6px #fff,
           0 0 0px #000;          
        }

主要是利用阴影先叠层白的阴影,再在白的后面叠层黑的阴影,这样一来,白的地方发亮,黑的地方暗,形成内陷效果。

4. 用双伪类实现文字的上半部分,(注:双伪类会继承父元素的些css属性):

1
2
3
4
5
6
7
8
9
10
11
h1::before{
             content: 'aurora';
             color: rgb(255, 255, 255);
             position: absolute;
             top: 0;
             left: 0;
             clip-path: inset(0 0 50% 0);
             transition: all 1s;    
             transform: rotateX(0deg) skew(0deg);      
 
         }

position: absolute;
top: 0;
left: 0; 定位。
clip-path: inset(0 0 50% 0); 裁剪,只裁文字的上半部分显示。
transform: rotateX(0deg) skew(0deg); 暂时不旋转,不倾斜。

5. 鼠标经过文字上半部分文字折叠:

1
2
3
4
5
6
h1:hover::before{
           transform: rotateX(-30deg) skew(-30deg);
          color: rgb(243, 243, 243);
          text-shadow: 0 0 1px black;
            
        }

transform: rotateX(-30deg) skew(-30deg); 旋转-30deg,倾斜-30deg。
color: rgb(243, 243, 243); 颜色变暗点。
text-shadow: 0 0 1px black; 阴影。
6. 异曲同工,设置下半部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
h1::after{
            content: 'aurora';
            color: rgb(255, 255, 255);
            position: absolute;
            top: 0;
            left: 0;
            clip-path: inset(50% 0 0 0);
            transition: all 1s;    
            transform: rotateX(0deg) skew(0deg);
            
        }
        h1:hover::after{
           transform: rotateX(40deg) skewX(20deg) ;
           color: rgb(212, 212, 212);
           text-shadow: 0 0 1px black;
        }

完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body{
            height: 100vh;
            width: 100vw;
            display: flex;
            justify-content: center;
            align-items: center;
        }  
   
         h1{
             text-transform: uppercase;
             letter-spacing: 3px;
             font-size: 15vw;
             transform: rotate(-10deg) skew(30deg);
             position: relative;
             color: rgba(0, 101, 253, 0.6);
             -webkit-text-stroke: 2px  rgba(0, 101, 253, 0.6);
             transition: all 1s;
         }
         h1:hover{
           /*   先叠层白的,再叠层黑的,@ www.xuepai.net先叠的白会覆盖到黑,白的地方亮,黑的地方暗 */
            text-shadow:3px 3px 6px #fff,
            3px 3px 6px #fff,
            0 0 0px #000;          
         }
         h1::before{
             content: 'aurora';
             color: rgb(255, 255, 255);
             position: absolute;
             top: 0;
             left: 0;
             clip-path: inset(0 0 50% 0);
             transition: all 1s;    
             transform: rotateX(0deg) skew(0deg);      
 
         }
         h1:hover::before{
            transform: rotateX(-30deg) skew(-30deg);
           color: rgb(243, 243, 243);
           text-shadow: 0 0 1px black;
             
         }
         h1::after{
             content: 'aurora';
             color: rgb(255, 255, 255);
             position: absolute;
             top: 0;
             left: 0;
             clip-path: inset(50% 0 0 0);
             transition: all 1s;    
             transform: rotateX(0deg) skew(0deg);
             
         }
         h1:hover::after{
            transform: rotateX(40deg) skewX(20deg) ;
            color: rgb(212, 212, 212);
            text-shadow: 0 0 1px black;
         }
    </style>
</head>
<body>
    
    <h1>aurora</h1>
 
</body>
</html>

 

posted @ 2026-01-05 20:49  zxcva  阅读(6)  评论(0)    收藏  举报