Get the App
SLTechnology News&Howtos  ›  Development  › 

How to use pure CSS to realize the effect of rainbow stripe text

Shulou Source: shulou.com Published: 2022-06-01 11:43:40 10月01日 Update

Editor to share with you how to use pure CSS to achieve the effect of rainbow stripe text, I hope you will gain something after reading this article, let's discuss it together!

Code interpretation

Define dom, the container contains text and contains 4 for special effects, and the data-text attribute value is the same as the text:

Web

Centered display:

Html,body {

Height:100%

Display:flex

Align-items:center

Justify-content:center

Background:black

}

Define the text style:

.rainbow {

Color:white

Font-size:300px

Text-transform:uppercase

Font-family:sans-serif

Font-weight:bold

Line-height:1em

Position:relative

}

Add layers with pseudo elements to create a rainbow effect:

.rainbowspan:: before

.rainbowspan:: after {

Content:attr (data-text)

Position:absolute

Top:0

Left:0

Overflow:hidden

}

.rainbowspan:nth-child (1):: before {

Color:orchid

Z-index:1

Height:calc (100% Muay 10% No.1)

}

.rainbowspan:nth-child (1):: after {

Color:mediumpurple

Z-index:2

Height:calc (100% Muay 10% copyright 2)

}

.rainbowspan:nth-child (2):: before {

Color:deepskyblue

Z-index:3

Height:calc (100% Muay 10% Q3)

}

.rainbowspan:nth-child (2):: after {

Color:cyan

Z-index:4

Height:calc (100% Muay 10% Q4)

}

.rainbowspan:nth-child (3):: before {

Color:mediumspringgreen

Z-index:5

Height:calc (100% Muay 10% height:calc 5)

}

.rainbowspan:nth-child (3):: after {

Color:yellow

Z-index:6

Height:calc (100% MUE 10% MU6)

}

.rainbowspan:nth-child (4):: before {

Color:gold

Z-index:7

Height:calc (100% Muay 10% Q7)

}

.rainbowspan:nth-child (4):: after {

Color:tomato

Z-index:8

Height:calc (100% Muay 10% Q8)

}

Add animation effects:

.rainbowspan:: before

.rainbowspan:: after {

Animation:animate0.8sinfinitealternate

Filter:opacity (0)

}

@ keyframesanimate {

From {

Filter:opacity (0)

}

To {

Filter:opacity (1)

}

}

Set a delay for the layer to increase the sense of motion:

.rainbowspan:nth-child (1):: before {

Animation-delay:calc (0.8s-0.1s*1)

}

.rainbowspan:nth-child (1):: after {

Animation-delay:calc (0.8s-0.1s*2)

}

.rainbowspan:nth-child (2):: before {

Animation-delay:calc (0.8s-0.1s*3)

}

.rainbowspan:nth-child (2):: after {

Animation-delay:calc (0.8s-0.1s*4)

}

.rainbowspan:nth-child (3):: before {

Animation-delay:calc (0.8s-0.1s*5)

}

.rainbowspan:nth-child (3):: after {

Animation-delay:calc (0.8s-0.1s*6)

}

.rainbowspan:nth-child (4):: before {

Animation-delay:calc (0.8s-0.1s*7)

}

.rainbowspan:nth-child (4):: after {

Animation-delay:calc (0.8s-0.1s*8)

}

Finally, set the original text to a transparent color:

.rainbow {

Color:transparent

}

After reading this article, I believe you have a certain understanding of "how to use pure CSS to achieve the effect of rainbow stripe text". If you want to know more about it, welcome to follow the industry information channel, thank you for reading!

Tags: Effects text rainbow text stripes articles original same code elements motion animation finished containers attributes more styles special effects knowledge industry Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno OPPO Reno Shulou Technology Docker Apple Redmi