<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          純CSS實(shí)現(xiàn)卡通齒輪效果

          共 5943字,需瀏覽 12分鐘

           ·

          2021-08-13 20:50

          效果展示

          在這里插入圖片描述

          Demo代碼

          HTML

          <!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">
                  <link rel="stylesheet" href="style.css">
                  <title>Document</title>
              </head>

              <body>
                  <section>

                      <div class="gear">
                          <div></div>
                          <div></div>
                          <div></div>
                          <div></div>
                      </div>
                      <div class="hole"></div>
                  </section>
              </body>

          </html>

          CSS

          htmlbody {
           margin0;
           height100%;
          }

          body {
           display: flex;
           justify-content: center;
           align-items: center;
           background: gainsboro;
           /* background: #222f3e; */
          }

          section {
           width650px;
           height300px;
           padding10px;
           position: relative;
           display: flex;
           align-items: center;
           justify-content: center;
           border2px solid orange;
          }

          .gear {
           width120px;
           height120px;
           border-radius50%;
           background-color#f98db9;
           display: flex;
           justify-content: center;
           align-items: center;
           animation: rotate 12s infinite linear;
          }

          .gear div {
           position: absolute;
           width30px;
           height150px;
           background#f98db9;
           border-radius8px;
          }

          .gear div:nth-child(1) {
           transformrotate(0deg);
          }

          .gear div:nth-child(2) {
           transformrotate(45deg);
          }

          .gear div:nth-child(3) {
           transformrotate(90deg);
          }

          .gear div:nth-child(4) {
           transformrotate(135deg);
          }

          .hole {
           position: absolute;
           top50%;
           left50%;
           transformtranslate(-50%, -50%);
           width50px;
           height50px;
           background-color: white;
           border-radius50%;
          }

          @keyframes rotate {
           0% {
            transformrotate(0deg);
           }
           100% {
            transformrotate(360deg);
           }
          }

          原理詳解

          步驟1

          使用兩個(gè)div,一個(gè)作為齒輪外部,一個(gè)作為內(nèi)部空心部分

                    <div class="gear"></div>
                    <div class="hole"></div>

          設(shè)置gear

          • 寬度、高度均為120px
          • 背景色為粉紅色
          • flex布局(上下左右都居中)
          .gear {
          width: 120px;
          height: 120px;
          background-color: #f98db9;
          display: flex;
          justify-content: center;
          align-items: center;
          }

          效果圖如下再設(shè)置hole

          • 絕對(duì)定位(使其位于正中心)
          • 寬度、高度均為50px
          • 背景色為白色
          .hole {
           /*位于正中心*/
           position: absolute;
           top50%;
           left50%;
           transformtranslate(-50%, -50%);

           width50px;
           height50px;
           background-color: white;

          效果圖如下

          在這里插入圖片描述

          步驟2

          gear和hole同時(shí)圓角化

          .gear {
           border-radius50%;
          }
          .hole {
           border-radius50%;

          效果圖如下

          在這里插入圖片描述

          步驟3

          添加齒輪外部分的凹凸不平的那個(gè)部分(不知道具體叫啥??)

          一共設(shè)置8個(gè) 需要使用到4個(gè)div (一個(gè)div可以顯示出2個(gè))

                      <div class="gear">
                          <div></div>
                          <div></div>
                          <div></div>
                          <div></div>
                      </div>

          設(shè)置div為

          • 絕對(duì)定位(重要!)
          • 寬度30px 高度150px
          • 顏色:粉色
          • border-radius: 8px;
          .gear div {
           position: absolute;
           width30px;
           height150px;
           background#f98db9;
           border-radius8px;
          }

          效果圖如下

          在這里插入圖片描述

          步驟4

          給每個(gè)div設(shè)置旋轉(zhuǎn)角度,分別是

          • 0deg
          • 45deg
          • 90deg
          • 135deg
          .gear div:nth-child(1) {
           transformrotate(0deg);
          }

          .gear div:nth-child(2) {
           transformrotate(45deg);
          }

          .gear div:nth-child(3) {
           transformrotate(90deg);
          }

          .gear div:nth-child(4) {
           transformrotate(135deg);
          }

          效果圖如下

          在這里插入圖片描述

          步驟5

          最后再為gear添加一個(gè)旋轉(zhuǎn)動(dòng)畫(huà)

          .gear {
           animation: rotate 12s infinite linear;
          }

          @keyframes rotate {
           0% {
            transformrotate(0deg);
           }
           100% {
            transformrotate(360deg);
           }
          }

          得到最終效果圖

          在這里插入圖片描述

          舉一反三

          修改

          • 增加2個(gè)div
          • 修改旋轉(zhuǎn)角度(0 30 60 90 120 150deg)

          效果圖如下:

          在這里插入圖片描述

          結(jié)語(yǔ)

          文章僅作為學(xué)習(xí)筆記,記錄從0到1的一個(gè)過(guò)程

          希望對(duì)您有所幫助,如有錯(cuò)誤歡迎小伙伴指正~

          我是 「海轟?(?ˊ?ˋ)?」

          如果您覺(jué)得寫(xiě)得可以的話,請(qǐng)點(diǎn)個(gè)贊吧

          謝謝支持??

          瀏覽 118
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久草视频免费在线播放 | 一区二区三区在线 | 欧 | 日本熟妇一区 | 国产精品日韩欧美大师 | 成人天堂|