如何用纯 CSS 为母亲节创作一颗像素画风格的爱心
效果預(yù)覽
在線演示
按下右側(cè)的“點(diǎn)擊預(yù)覽”按鈕可以在當(dāng)前頁面預(yù)覽,點(diǎn)擊鏈接可以全屏預(yù)覽。
https://codepen.io/comehope/pen/LmrZVX
可交互視頻教程
此視頻是可以交互的,你可以隨時(shí)暫停視頻,編輯視頻中的代碼。
請用 chrome, safari, edge 打開觀看。
https://scrimba.com/p/pEgDAM/cPd9asV
源代碼下載
本地下載
請從 github 下載。
https://github.com/comehope/f...
代碼解讀
定義 dom,描繪出 8 行 9 列的心形像素圖案,其中 <dot> 是指要填充顏色的像素點(diǎn):
<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>
居中顯示:
html,body{
height: 100%;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(silver, white);
}
設(shè)置心形的樣式:
.heart {
display: grid;
grid-template-columns: repeat(9, 1fr);
grid-gap: 2px;
}
.heart > * {
1em;
height: 1em;
border-radius: 0.1em;
font-size: 30px;
}
.heart dot{
background: red;
}
定義淡入淡出動(dòng)畫:
.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);
}
}
最后,讓各像素點(diǎn)按不同時(shí)間入場,增強(qiáng)動(dòng)畫效果:
.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;
}
大功告成!
知識(shí)點(diǎn)
grid-template-columns https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns
grid-gap https://developer.mozilla.org/en-US/docs/Web/CSS/grid-gap
:nth-of-type() https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-of-type
animation-delay https://developer.mozilla.org/en-US/docs/Web/CSS/animation-delay
translateY() https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translateY
filter https://developer.mozilla.org/en-US/docs/Web/CSS/filter
原文地址:https://segmentfault.com/a/1190000014837536
總結(jié)
以上是生活随笔為你收集整理的如何用纯 CSS 为母亲节创作一颗像素画风格的爱心的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 环球兵器库---资料链超丰富
- 下一篇: win10上Intelligent ID