用CSS画一朵太阳花

简介: 通常我们只用CSS来控制各控件在页面中的布局,其实站在技术与艺术的交叉口我们还可以利用CSS对颜色、形状精准控制的特性来画画。本文从用纯CSS画一个花瓣,画一张笑脸开始,然后给各个部件上色最终成型一朵太阳花。

通常我们只用CSS来控制各控件在页面中的布局,其实站在技术与艺术的交叉口我们还可以利用CSS对颜色、形状精准控制的特性来画画。


本文从用纯CSS画一个花瓣,画一张笑脸开始,然后给各个部件上色最终成型一朵太阳花。


步骤概要

  1. 首要任务是用CSS画一朵花瓣
  1. 花瓣画成后,用transform中的 rotate(30deg)函数重复11次,再在中间画个圈,太阳花的骨架就成了。
  1. 画眼睛和嘴巴,然后给整体上上颜色
  1. 希望把花做成可变大小式的(不是固定像素尺寸),即用一个css属性即可控制

步骤详解

  1. 第一步,画花瓣方法有很多,这里我采用的是transform配合border-radius:先画一个正方形,然后用transform的skewX(30deg)把这个正方形压扁变成===》平行四边形,用border-radius: 0 50% 50% 50%;设置三边的圆角===》花瓣出来了。
  2. 第二步,由于在步骤一中压扁的transform用了transform-origin: 0 0;,而现在要做的是控制花瓣样式让它绕着花心旋转,所以这时候的transform是花心的位置。我这里采用的方法是直接给花瓣弄了个父元素 ,让父元素以花心为圆心进行旋转。
  3. 第三步,画眼睛,直接画俩黑色的圈圈,然后再用before和after俩伪元素弄弄两个白色的点,让眼睛看起来泪汪汪的可怜状,最后再加个box-shadow,就当做化妆弄眼影了。嘴巴分成两部分,下面部分是个半圆,上面部分是有点凸起的弧线,也通过控制 border-radius: .x1 x2 0 0/y1 y2 0 0; 来实现, x1,y1为组成弧线的两条垂直宽高,x1(x2)比y1(y2) 要大挺多的,也就代表弧度比较平。上颜色就不说了,直接通过css,nth-child选择器,然后这个例子中花瓣的颜色是我根据自己拍的那张毛绒玩具照片,用取色器直接取下来的(拍摄光线原因颜色不是很精确)。
  4. 第四步,在一个地方想引入这朵花,场景不同宽高大小肯定是不一样的嘛。实现方法也挺多,我这边尝试了‘em’这种方案,给整体的父元素设一个font-size,然后花里面所有的尺寸都根据它来。设置这个font-size也有学问,因为一般浏览器最小的能显示像素值是12px,所以想要控制花朵大小游刃有余,在font-size:12px的时候,花朵是足够小的。


codePen 演示地址:https://codepen.io/kaikai1024/pen/VjyVNB

相关文章
|
7月前
|
前端开发 JavaScript Python
分享76个文字特效,总有一款适合您
分享76个文字特效,总有一款适合您
76 5
|
7月前
|
移动开发 前端开发 JavaScript
分享88个文字特效,总有一款适合您
分享88个文字特效,总有一款适合您
80 1
CSS3 小火箭上天效果
CSS3 小火箭上天效果
68 0
|
4月前
|
前端开发
再战CSS样式
再战CSS样式
146 62
CSS-奥运五环
前言 本章是为了记录日常学习所遇到的问题或学到的知识分享,欢迎大家阅读参考。 以下是本章正文内容,下面案例可供参考
|
前端开发
纯CSS实现“流星赶月”,祝大家中秋节快乐
纯CSS实现“流星赶月”,祝大家中秋节快乐
213 0
|
机器学习/深度学习 前端开发 IDE
「趣学前端」昨天画了一张小滑板,今天看我用CSS让它滑起来
用技术实现梦想,用梦想打开创意之门。今天分享前端CSS中的transform知识点。
143 1
|
前端开发 JavaScript 容器
【CSS畅想】萤星漫舞,我用CSS绘制了一个属于夏日的回忆
用技术实现梦想,用梦想打开创意之门。萤星漫舞,我用CSS绘制了一个属于夏日的回忆
235 1
|
前端开发
正值初夏,用CSS教你画夏天常玩的四彩小风车
正值初夏,用CSS教你画夏天常玩的四彩小风车
正值初夏,用CSS教你画夏天常玩的四彩小风车
|
前端开发 JavaScript
正值初夏,用CSS画一个七彩风车
正值初夏,用CSS画一个七彩风车
正值初夏,用CSS画一个七彩风车