重温美好,手把手带大家画一个茶杯头~!

791 阅读2分钟

我正在参加「码上掘金挑战赛」详情请看:码上掘金挑战赛来了!

前言

裸辞在家打通了茶杯头,复活次数已经数不清了,痛苦倒是印在我的心里挥之不去了。

微信图片_20220727181614.jpg

茶杯头游戏发布已经好久了,想必大家早就体验过了,今天就带大家拾起曾经的痛苦,啊不,拾起童年的回忆,一起用 CSS 画个马可人,重(忆)温(苦)美(思)好(甜)。

效果预览

捕获.PNG

码上掘金

思路解析

脑阔

QQ截图20220911182836.png

马可人的脑袋实际上是一个半圆。半圆我们可以使用 border-radius 进行绘制。

position: relative;
width: 180px;
height: 128px;
border-radius: 50%/  30px 30px 100% 100%;
background: #D9DCDB;
overflow: hidden;

border-radius 属性值中,50% 表示的是 左上角、右上角、右下角、左下角的值都是 50% 。而后面的四个值代表的是四个角对应的圆的 y 轴直径。

由于眼睛和嘴巴需要 定位 来实现,所以我们需要将脑阔设置为 相对定位

眼睛

QQ截图20220911182914.png

眼睛需要由三个部分组成,两个椭圆+一个三角形。

外面一层椭圆需要使用定位,里面的椭圆进行绝对定位到右侧,三角形的实现我们可以使用伪元素,减少标签嵌套层数。

三角形的绘制方法:

width: 0;
height: 0;
border: 8px solid transparent;
border-left: 8px solid #fff;

眼睛完整代码如下:

.right-eye, .left-eye {
  position: absolute;
  top: 0;
  left: 40%;
  transform:  rotate(4deg);
  .eye-white {
    position: absolute;
    bottom: 4px;
    right: -1px;
    width: 20px;
    height: 40px;
    border-radius: 14px;
    background-color: #000;

    &::after {
      content: '';
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-45%);
      width: 0;
      height: 0;
      border: 8px solid transparent;
      border-left: 8px solid #fff;
    }
  }
}

这里眼睛实际上会超出脑阔,所以脑阔那边使用了 overflow: hidden 来处理溢出,这样另一只小的眼睛就会显得自然一些。

鼻子

QQ截图20220911182946.png

由于脑阔使用了 overflow: hidden ,鼻子如果写在 .head 里的话是会被裁掉的,所以我们要将鼻子对应的标签和 .head 对应的标签平级。

鼻子使用一个椭圆+一个圆角矩形组成。

鼻子的高光部分我们可以使用 filter: blur(3px); 来进行模糊处理,显得更自然些。

耳朵

QQ截图20220911183013.png

耳朵部分由两个半圆组成,需要注意的是内层的半圆背景是透明的。

嘴巴

QQ截图20220911183025.png

嘴巴由两个大小椭圆组成,小圆用来将大圆遮住且设置为透明。

QQ截图20220911182618.png

结束语

技术有限,眼睛的处理和脑瓜子的角度处理感觉不是很到位,少了点感觉,CSS 学会容易,学好难,任重而道远,还是得不断巩固提升。