Front-end daily combat: # 20 video demonstrates how to create a pixel art style love for the Mother's Day with pure CSS

image description

Results preview

Press the right "click the Preview" button to preview the current page, click on the link to full-screen preview.

https://codepen.io/comehope/pen/LmrZVX

Interactive video tutorials

This video is interactive, you can pause the code video, editing video.

Please use chrome, safari, edge open view.

https://scrimba.com/p/pEgDAM/cPd9asV

Source code download

Please download from github.

https://github.com/comehope/f...

Code Reading

Defined dom, heart-shaped pattern of pixels depicting 8 rows 9, wherein <dot> is simply more fill color pixel of:

<div class="heart">
    <!-- line 1 -->
    <span></span>
    <dot></dot>
    <dot></dot>
    <span></span>
    <span></span>
    <span></span>
    <dot></dot>
    <dot></dot>
    <span></span>

    <!-- line 2 -->
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <span></span>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>

    <!-- line 3 -->
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>

    <!-- line 4 -->
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>

    <!-- line 5 -->
    <span></span>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <span></span>

    <!-- line 6 -->
    <span></span>
    <span></span>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <span></span>
    <span></span>

    <!-- line 7 -->
    <span></span>
    <span></span>
    <span></span>
    <dot></dot>
    <dot></dot>
    <dot></dot>
    <span></span>
    <span></span>
    <span></span>

    <!-- line 8 -->
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <dot></dot>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
</div>

Centered:

html,body{
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(silver, white);
}

Setting heart-shaped style:

.heart {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    grid-gap: 2px;
}

.heart > * {
    width: 1em;
    height: 1em;
    border-radius: 0.1em;
    font-size: 30px;
}

.heart dot{
    background: red;
}

Definition of fade animation:

.heart dot{
    filter: opacity(0);
    animation: animation 5s ease-out infinite;
}

@keyframes animation{
    0%{
        filter: opacity(0);
        transform: translateY(-10em);
    }

    25%{
        filter: opacity(1);
        transform: translateY(0);
    }

    75%{
        filter: opacity(1);
        transform: translateY(0);
    }

    100%{
        filter: opacity(0);
        transform: translateY(10em);
    }
}

Finally, let each pixel admission at different times, enhanced animation:

.heart dot:nth-of-type(2n) {
    animation-delay: 0.2s;
}

.heart dot:nth-of-type(3n) {
    animation-delay: 0.3s;
}

.heart dot:nth-of-type(4n) {
    animation-delay: 0.4s;
}

.heart dot:nth-of-type(5n) {
    animation-delay: 0.5s;
}

.heart dot:nth-of-type(6n) {
    animation-delay: 0.6s;
}

.heart dot:nth-of-type(7n) {
    animation-delay: 0.7s;
}

.heart dot:nth-of-type(8n) {
    animation-delay: 0.8s;
}

.heart dot:nth-of-type(9n) {
    animation-delay: 0.9s;
}

.heart dot:nth-of-type(10n) {
    animation-delay: 1.0s;
}

.heart dot:nth-of-type(11n) {
    animation-delay: 1.1s;
}

We're done!

Knowledge Point

Guess you like

Origin www.cnblogs.com/baimeishaoxia/p/11922211.html