美文网首页
傻瓜式教画旋转css画太极

傻瓜式教画旋转css画太极

作者: 诺喵 | 来源:发表于2022-08-19 15:41 被阅读0次

上期教了大家使用css画圆,这次加点艺术性,画一个会旋转的太极.

画出轮廓

<div class="box"></div>

设置轮廓的样式

 .box {
        /*宽高500px*/
        width: 500px;
        height: 500px;
        /*边框圆角 50%*/
        border-radius: 50%;
        /*利用外边距左右auto实现页面水平居中*/
        margin: 40px auto;
        /*边框,(先加上确定位置,成型后可删可不删)*/
        border: 1px solid #000;
        /* 轮廓的样式 */
      }

然后呢,我们可以得到一个很大的圆.

圆轮廓.png

之后我们需要画出两个半圆

画出半圆

注意,由于半圆在轮廓里面,所以我们需要将半圆画在轮廓里.

html代码

 <div class="box">
      <!-- .box 轮廓 -->
      <div class="black">
        <!-- .black 黑色的半圆 -->
      </div>
      <div class="white">
        <!-- .white 白色的半圆 -->
      </div>
    </div>

css样式

    /*因为两个半圆的一些样式一致,所以可以采用并集选择器来同时设置样式*/
      .black,
      .white {
        width: 250px;
        height: 500px;
        /* 半圆共同样式 */
      }

      .black {
        /*背景颜色*/
        background: black;
        /*边框原角,当其是四个值的时候可以这样设置 border-radius:左上 右上 右下 左下; */
       /*由于高是500px,所以只需要两个角各卷曲高的一半即可*/
        border-radius: 250px 0px 0px 250px;
        /* 黑色半圆样式 */
      }

      .white {
        /*因为div是块级元素,独占一行,因此这个半圆采用定位会更加方便一些.*/
        /*半圆是轮廓的子元素,所以我们可以使用'子绝父相'的定位方法. absolute 为绝对定位*/
        position: absolute;
        /*距离上面为0px*/
        top: 0px;
        /*距离右边为0px*/
        right: 0px;
        /*加上右上右下的边框圆角*/
        border-radius: 0px 250px 250px 0px;
        /* 白色半圆样式 */
      }

同时父级元素(轮廓)需要加一个相对定位

css样式

      .box {
        width: 500px;
        height: 500px;
        border-radius: 50%;
        margin: 40px auto;
        border: 1px solid #000;
        /*加上相对定位*/
        position: relative;
        /* 轮廓的样式 */
      }

这样设置完后我们就得到黑白分明的圆了

黑白.png

这一步做完之后我们相当于完成一半了,下一步我们为其加上中间的弧形分割线

html代码

<div class="box">
      <!-- .box 轮廓 -->
      <div class="black">
        <!-- .black 黑色的半圆 -->
        <div class="circle1">
          <!-- .circle1 黑色部分延伸出来的中等圆 -->
        </div>
      </div>
      <div class="white">
        <!-- .white 白色的半圆 -->
        <div class="circle2">
          <!-- .circle2 白色部分延伸出来的中等圆 -->
        </div>
      </div>
    </div>

我们仍然采用画圆的方法构建出弧形,因为是一个中型的圆,因此我们在两个半圆的里面各加上一个中等圆,然后设置背景色样式.

css样式

      .circle1,
      .circle2 {
        width: 250px;
        height: 250px;
        /*边框圆角,因为背景色与父级半圆一致,所以我们没必要设置成半圆,直接设置成圆形即可*/
        border-radius: 50%;
        /*绝对定位*/
        position: absolute;
        /* 中型圆的共同样式 */
      }

      .circle1 {
        /*背景颜色:黑色*/
        background: black;
        top: 0px;
        /*距离左边125px,也就是让半圆移出自身一半的身位出去*/
        left: 125px;
        /* 黑色中型圆 */
      }

      .circle2 {
         /*背景颜色:白色*/
        background: white;
        /*因为白球存在于下面,所以要距离上面250px,整个轮廓的一半距离,或者距离下面为0px也是可行的*/
        /* bottom: 0px;   距离下面为0px*/
        top: 250px;
        /*距离右边125px,也就是让半圆移出自身一半的身位出去*/
        right: 125px;
        /* 白色中型圆 */
      }

做完这些,我们就拿到了一个太极的雏形啦~!下一步便是点金之笔 !

太极雏形.png

下一步我们需要在两个中型圆中添加两个中心小圆

html代码

 <div class="box">
      <!-- .box 轮廓 -->
      <div class="black">
        <!-- .black 黑色的半圆 -->
        <div class="circle1">
          <!-- .circle1 黑色部分延伸出来的中等圆 -->
          <div class="ball b1"></div>
          <!-- .b1 黑色中的白色小园 -->
        </div>
      </div>
      <div class="white">
        <!-- .white 白色的半圆 -->
        <div class="circle2">
          <!-- .circle2 白色部分延伸出来的中等圆 -->
          <div class="ball b2"></div>
          <!-- .b2 白色中的黑色小圆 -->
        </div>
      </div>
    </div>

大家可能注意到,我的小圆类名有两个,在类名的命名中使用空格分隔,就相当于这个标签拥有两个类名啦!!

css样式

     .ball {
        width: 50px;
        height: 50px;
        /* 边框圆角 50% */
        border-radius: 50%;
        /* 绝对定位 */
        position: absolute;
        /* 向上距离50% 这个50%是指父级定位的高长度的百分之50% */
        top: 50%;
        /* 向左距离50% 这个50%是指父级定位的宽长度的百分之50% */
        left: 50%;
        /* 巧妙的运用一下外边距负值,可以实现意想不到的效果哦! */
        /* 外边距: 上,右,下,左; */
        margin: -25px 0px 0px -25px;
        /* 中心圆样式 */
      }

      .b1 {
        /* 添加背景颜色:白色 */
        background: white;
      }

      .b2 {
        /* 添加背景颜色:黑色 */
        background: black;
      }

ヾ(๑╹◡╹)ノ"锵锵!!!这下我们就画出了一个完美的太极啦!!

太极.png

当然,光是这些我并不满意! 我还要让它转起来!这时候就要用上好玩的动画效果啦!
由于后面没有html的事了,所以直接css代码!

css样式

      .black,
      .white {
        width: 250px;
        height: 500px;
        /*看看这里!! 我们需要给两个半圆添加动画属性!*/
        /*动画:  动画的名字 动画持续的时间 运动曲线(方式) 次数*/
        /*这里我写的是,给动画取名叫TJ,一个动画周期为6秒(秒数越小速度越快哦!),匀速运动,无限循环*/
        animation: TJ 6s linear infinite;
        /* 半圆共同样式 */
      }

      .black {
        background: black;
        border-radius: 250px 0px 0px 250px;
        /*!!这里也要投来你们的目光!!*/
        /*我们需要将两个半圆旋转,所以要设置旋转的原点,写法为:原点:x轴位置 y轴位置;
          因为原点默认在左上角,所以我们需要让它到太极的中心,因此有了下面的设置*/
        /*因为这是左半圆,所以需要x轴靠右,y轴居中.*/
        transform-origin: right center;
        /* 黑色半圆样式 */
      }

      .white {
        position: absolute;
        top: 0px;
        right: 0px;
        border-radius: 0px 250px 250px 0px;
        /*这里也是设置原点,x轴靠左,y轴居中.*/
        transform-origin: left center;
        /* 白色半圆样式 */
      }
      
      /*这里是动画执行的效果*/
      /* @keyframes后面加上我们的动画名字*/
      @keyframes TJ {
      /* 开始的状态*/
        from {
          /*改变:旋转() deg是度数*/
          /*因为是刚开始的状态,所以让它默认就好啦,什么都不需要改变*/
          transform: rotate(0deg);
        }
        to {
          /*结束的状态,这个时候我们就要给它设置360度了,因为这样我们才能让太极动起来*/
          transform: rotate(360deg);
        }
      }
      /* 半圆动画 */

这些设置完后,我们就可以看见一个慢慢旋转的太极了!
这里我觉得样式还可以加些自己喜欢的效果,所以我给轮廓加上了阴影,去掉了边框

      .box {
        width: 500px;
        height: 500px;
        border-radius: 50%;
        margin: 40px auto;
        /* border: 1px solid #000;*/
        position: relative;
        /* 盒子阴影 */
        /*盒子阴影:模糊距离,颜色黑色*/
        box-shadow: 0px 0px 20px 0px #000000;
        /* 轮廓的样式 */
      }
旋转太极.png

下面附上完整代码

html代码

<body>
    <div class="box">
      <!-- .box 轮廓 -->
      <div class="black">
        <!-- .black 黑色的半圆 -->
        <div class="circle1">
          <!-- .circle1 黑色部分延伸出来的中等圆 -->
          <div class="ball b1"></div>
          <!-- .b1 黑色中的白色小园 -->
        </div>
      </div>
      <div class="white">
        <!-- .white 白色的半圆 -->
        <div class="circle2">
          <!-- .circle2 白色部分延伸出来的中等圆 -->
          <div class="ball b2"></div>
          <!-- .b2 白色中的黑色小圆 -->
        </div>
      </div>
    </div>
  </body>

css样式

<style>
      .box {
        width: 500px;
        height: 500px;
        border-radius: 50%;
        margin: 40px auto;
        position: relative;
        box-shadow: 0px 0px 20px 0px #000000;
        /* 轮廓的样式 */
      }
      .black,
      .white {
        width: 250px;
        height: 500px;
        animation: TJ 6s linear infinite;
        /* 半圆共同样式 */
      }

      .black {
        background: black;
        border-radius: 250px 0px 0px 250px;
        transform-origin: right center;
        /* 黑色半圆样式 */
      }

      .white {
        position: absolute;
        top: 0px;
        right: 0px;
        border-radius: 0px 250px 250px 0px;
        transform-origin: left center;
        /* 白色半圆样式 */
      }

      @keyframes TJ {
        from {
          transform: rotate(0deg);
        }
        to {
          transform: rotate(360deg);
        }
      }
      /* 半圆动画 */

      .circle1,
      .circle2 {
        width: 250px;
        height: 250px;
        border-radius: 50%;
        position: absolute;
        /* 中型圆的共同样式 */
      }

      .circle1 {
        background: black;
        top: 0px;
        left: 125px;
        /* 黑色中型圆 */
      }

      .circle2 {
        background: white;
        top: 250px;
        right: 125px;
        /* 白色中型圆 */
      }
      .ball {
        width: 50px;
        height: 50px;
        border-radius: 50%;
        position: absolute;
        top: 50%;
        left: 50%;
        margin: -25px 0px 0px -25px;
        /* 中心圆样式 */
      }

      .b1 {
        /* 添加背景颜色:白色 */
        background: white;
      }

      .b2 {
        /* 添加背景颜色:黑色 */
        background: black;
      }
    </style>

讲完了,٩(๑>◡<๑)۶ 谢谢观赏!!!

相关文章

  • css 做旋转太极图

    实现效果:https://vicfun.github.io/vs-demo/taichi.html代码部分:

  • CSS画太极图

    效果图如上,预览链接点这里。 多用css画几个图就会发现,其实都是视觉欺骗的把戏。你看到的太极图的不是你以为的太极...

  • web前端特效演示合集

    前端特效01:使用纯CSS实现书籍3D翻页效果 前端特效02:使用纯CSS实现动态太极 前端特效03:HTML5画...

  • CSS3边框圆角太极

    CSS3 太极

  • 清澈诗猫308一一新石器彩陶

    那个时候 没有甲骨文 没有教画画的书 更没有教画画的机构 画彩陶的人们啊 谁来教你们如何构图 可你们画的鸟儿真萌 ...

  • 用turtle画旋转太极图动画

    一、画太极图 首先我们看上面的太极图,图上添加了辅助线。可以看出来,太极图的每一个圆弧,都可以依据这条线,使用se...

  • 剑桥艺术史

    今日打卡2:共计37分钟 宗教画 平面装饰画

  • 使用 css 滤镜转换图片颜色

    【css学习】色调旋转滤镜实现按钮颜色设置 CSS filter:hue-rotate css代码 html

  • css3画一个旋转收缩的太极图

    下文是之前写的,今天在写码时突然想到,之前写这个时用了一个笨方法.只需要把外圈的边框替换成盒阴影,下述问题就都不存...

  • css动画之transform

    1、translate(平移) html css 2、scale(缩放) html css 3、rotate(旋转...

网友评论

      本文标题:傻瓜式教画旋转css画太极

      本文链接:https://www.haomeiwen.com/subject/pvregrtx.html