App下載

如何使用 CSS 制作一個(gè)簡(jiǎn)易愛(ài)心

W3cschool小編 2022-11-11 10:51:14 瀏覽數(shù) (3344)
反饋

怎么使用 CSS 繪制一個(gè)愛(ài)心【附愛(ài)心代碼】

分析:

  • 愛(ài)心可以通過(guò)一個(gè)正方形+兩個(gè)圓形組合成。

  1. 先畫(huà)一個(gè)正方形+圓形, 擺放位置如下:

image-20221111103017379

  1. 再添加上一個(gè)圓形。

image-20221111103040258

  1. 最后再將整個(gè)圖形順時(shí)針旋轉(zhuǎn)45度即可。

image-20221111103059355

初步實(shí)現(xiàn)

  1. 先畫(huà)一個(gè)正方形:

   <body>
       <div id="heart"></div>
   </body>

   #heart{
          height: 300px;
          width: 300px;
          border: 2px solid black;
       }

  1. 給這個(gè)正方形的左邊加行一個(gè)圓形.這里使用偽類(lèi):before來(lái)實(shí)現(xiàn):

        #heart{
               height: 200px;
               width: 200px;
               border: 2px solid black;
               position: relative;
           }
       #heart:before{
           content: '';
           width: 200px;
           height: 200px;
           border: 2px solid black;
           border-radius: 50%; // 正方形加圓角變成圓
           position: absolute;
           left: -100px;  // 向左位移正方形一半的長(zhǎng)度
       }

此時(shí)圖形長(zhǎng)這樣:

image-20221111103526065

  1. 再添加一個(gè)圓形, 這里使用after偽類(lèi)來(lái)實(shí)現(xiàn)。

      #heart{
               height: 200px;
               width: 200px;
               border: 2px solid black;
               position: relative;
           }
           // 這里偷個(gè)懶.直接寫(xiě)一塊了
       #heart:before,#heart:after{
           content: '';
           width: 200px;
           height: 200px;
           border: 2px solid black;
           border-radius: 50%;
           position: absolute;
           left: -100px;
       }
       // 第二個(gè)圓, 只需要向上位移正方形一半的高度
       #heart:after{
           left: 0;
           top: -100px;
       }

image-20221111103619203

  1. 最后一步, 旋轉(zhuǎn)一下, 然后上個(gè)顏色.去掉之前為了看清楚加的邊框。

      /*給heart進(jìn)行旋轉(zhuǎn)并加上顏色*/
     transform: rotate(45deg);
     background-color: red;

image-20221111103707890

完整代碼:

<!DOCTYPE html>
<html lang="en">


<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body,
        html {
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100vh;
        }


        #heart {
            height: 200px;
            width: 200px;
            /*border: 2px solid black;*/
            position: relative;
            transform: rotate(45deg);
            background-color: red;
        }


        #heart:before,
        #heart:after {
            content: '';
            width: 200px;
            height: 200px;
            /*border: 2px solid black;*/
            border-radius: 50%;
            position: absolute;
            left: -100px;
            background-color: red;
        }


        #heart:after {
            left: 0;
            top: -100px;
        }
    </style>
</head>


<body>
    <div id="heart"></div>
</body>


</html>

10 人點(diǎn)贊