本次基于canvas来手绘一个QQ企鹅。
关于Canvas的教程,可以参看:番外 #Canvas# - 0000 - 砖心降伏Canvas系列。
现在让我们先观察下企鹅,按照层次划分来组合最终的效果。
选择使用绝对位置position:absolute来布局各个元素。
使用绝对元素,就意味着很多区域都是固定长度(px),类似于静态壁纸~
代码中遇到的不会的标签,或者css属性,都可以参看鱼C速查宝典(传送门)
拓展:学好#Web开发必须要收藏的几个页面 | 【课程指南】
企鹅主要划分为头部,身体,围脖,双手,双脚。
代码框架:
复制代码
基本框架结构就是这样了。
QQ 对于容器是通过绝对定位来对每个元素布局进行设置的。
在head元素中添加css:
复制代码
骨架出来了,那我们就开始一步步的进行绘制了,先从头开始。
head
绘制 head 前,先对 head 的层次结构划分清楚,依次为:
在head中添加div:
复制代码
通过CSS绘制 head 的轮廓:
复制代码
圆弧设置成 border-bottom-left-radius: 117px 68px;
一般根据设计图出来后导出转成带有标尺图后,会自动计算出值;
如果没有的话,那就要通过计算了。
然后依次绘制 head 其他结构,继续添加css。
眼睛:
复制代码
嘴:
复制代码
到这里基本头的骨架就出来了,画风很粗犷,让我们妙手回春一下~
需要对头的骨架结构的线条进行修饰。
眼睛修饰
在两个眼睛中添加眼球,右眼还有一个眯眼的表情。
创建新的div:
复制代码
添加新的样式:
复制代码
稍后利用图形重叠,进行填色。
继续完善嘴部。
嘴的修饰
添加上下嘴唇,咬合的层次感:
复制代码
去掉上下嘴唇的边界线,并添加样式:
复制代码
基本 head 轮廓就是这样了。
现在把右眼眼球部分上个色,来进行层叠覆盖隐藏。
已有 1 人购买 本主题需向作者支付 33 鱼币 才能浏览 购买主题
哈哈,还有沙发坐~~~
{:10_257:}
{:10_245:}惊呆了
太猛了
牛批 关于Canvas的教程,可以参看:番外 #Canvas# - 0000 - 砖心降伏Canvas系列。
现在让我们先观察下企鹅,按照层次划分来组合最终的效果。
选择使用绝对位置position:absolute来布局各个元素。
使用绝对元素,就意味着很多区域都是固定长度(px),类似于静态壁纸~
代码中遇到的不会的标签,或者css属性,都可以参看鱼C速查宝典(传送门)
拓展:学好#Web开发必须要收藏的几个页面 | 【课程指南】
企鹅主要划分为头部,身体,围脖,双手,双脚。
代码框架:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="keywords" content="小甲鱼,Web开发,HTML5,CSS3,Web编程教学">
- <meta name="description" content="《零基础入门学习Web开发》案例演示">
- <meta name="author" content="鱼C工作室">
- <title>鱼C-QQ</title>
- </head>
- <body>
- <!-- QQ Logo box -->
- <div id="qq">
- <!-- 头 -->
- <div class="head"></div>
- <!-- 身体 -->
- <div class="body"></div>
- <!-- 手 -->
- <div class="handWrapper"></div>
- <!-- 脚 -->
- <div class="footWrapper"></div>
- </div>
- </body>
- </html>
基本框架结构就是这样了。
QQ 对于容器是通过绝对定位来对每个元素布局进行设置的。
在head元素中添加css:
- <style>
- /*QQ Logo 绘制*/
- #qq {
- position: relative;
- margin: 0 auto;
- width: 420px;
- height: 400px;
- outline: #2ebb96 solid 2px;
- }
- </style>
[attach]94918[/attach]
骨架出来了,那我们就开始一步步的进行绘制了,先从头开始。
head
绘制 head 前,先对 head 的层次结构划分清楚,依次为:
左眼、右眼、上嘴唇、下嘴唇、嘴唇的层次感体现。
在head中添加div:
- <!-- 头 -->
- <div class="head">
- <!-- 左眼 -->
- <div class="left eye"></div>
- <!-- 右眼 -->
- <div class="right eye"></div>
- <!-- 上嘴唇 -->
- <div class="mouthTopContainer"></div>
- <!-- 下嘴唇 -->
- <div class="mouthBottomContainer"></div>
- <!-- 嘴唇上下层次感 -->
- <div class="lispContainer"></div>
- </div>
通过CSS绘制 head 的轮廓:
- /* QQ head */
- .head {
- position: absolute;
- top: 18px;
- left: 96px;
- width: 234px;
- height: 185px;
- border: 1px solid #000; /* 通过对border-radius 圆弧的层度来进行钩画 */
- border-top-left-radius: 117px 117px;
- border-top-right-radius: 117px 117px;
- border-bottom-left-radius: 117px 68px;
- border-bottom-right-radius: 117px 68px;
- }
[attach]94919[/attach]
圆弧设置成 border-bottom-left-radius: 117px 68px;
一般根据设计图出来后导出转成带有标尺图后,会自动计算出值;
如果没有的话,那就要通过计算了。
然后依次绘制 head 其他结构,继续添加css。
眼睛:
- /* 眼睛 */
- .eye {
- position: absolute;
- width: 44px;
- height: 66px;
- border: 1px solid #000;
- border-radius: 50% 50%;
- }
- .left.eye {
- left: 62px;
- top: 50px;
- }
- .right.eye {
- left: 132px;
- top: 50px;
- }
[attach]94920[/attach]
嘴:
- /* 嘴 */
- .mouthTopContainer {
- position: absolute;
- top: 120px;
- left: 39px;
- width: 158px;
- height: 29px;
- border: 1px solid #000;
- }
- .mouthBottomContainer {
- position: absolute;
- top: 146px;
- left: 39px;
- width: 158px;
- height: 15px;
- border: 1px solid #000;
- }
[attach]94921[/attach]
到这里基本头的骨架就出来了,画风很粗犷,让我们妙手回春一下~
需要对头的骨架结构的线条进行修饰。
眼睛修饰
在两个眼睛中添加眼球,右眼还有一个眯眼的表情。
创建新的div:
- <!-- 左眼 -->
- <div class="left eye">
- <!-- 眼球 -->
- <div class="innerLeftEye"></div>
- </div>
- <!-- 右眼 -->
- <div class="right eye">
- <!-- 眼球 -->
- <div class="innerRightEye">
- <!-- 月牙眼球两端圆弧修饰 -->
- <div class="fix"></div>
- </div>
- </div>
添加新的样式:
- .innerLeftEye {
- position: absolute;
- top: 20px;
- left: 20px;
- width: 18px;
- height: 24px;
- border-radius: 50%;
- border: 1px solid #000;
- }
- .innerLeftEye::after {
- content: "";
- position: absolute;
- top: 6px;
- left: 9px;
- width: 6px;
- height: 8px;
- border: 1px solid #000;
- border-radius: 50%;
- }
- .innerRightEye {
- position: absolute;
- top: 20px;
- left: 8px; /* 月牙眼球外轮廓 */
- width: 18px;
- height: 24px;
- border: 1px solid #000;
- border-top-left-radius: 50% 90%;
- border-top-right-radius: 50% 90%;
- border-bottom-left-radius: 50% 10%;
- border-bottom-right-radius: 50% 10%;
- }
- .innerRightEye::after {
- content: "";
- position: absolute;
- bottom: -1px;
- left: 4px; /* 月牙眼球内部轮廓 */
- width: 10px;
- height: 13px;
- border: 1px solid #000;
- border-top-left-radius: 50% 100%;
- border-top-right-radius: 35% 80%;
- }
- .fix {
- position: absolute;
- top: 17px;
- width: 4px;
- height: 4px;
- border: 1px solid #000;
- border-radius: 50%;
- }
- .fix:after {
- content: "";
- position: absolute;
- top: 0;
- left: 14px;
- width: 4px;
- height: 4px;
- border: 1px solid #000;
- border-radius: 50%;
- }
[attach]94923[/attach]
稍后利用图形重叠,进行填色。
继续完善嘴部。
嘴的修饰
添加上下嘴唇,咬合的层次感:
- <!-- 上嘴唇 -->
- <div class="mouthTopContainer">
- <div class="mouthTop"></div>
- </div>
- <!-- 下嘴唇-->
- <div class="mouthBottomContainer">
- <div class="mouthBottom"></div>
- </div>
- <!-- 嘴唇上下层次感-咬合部位 -->
- <div class="lispContainer">
- <div class="lips">
- <div class="lipShadow left"></div>
- <div class="lipShadow right"></div>
- </div>
- </div>
去掉上下嘴唇的边界线,并添加样式:
- .mouthTopContainer { /* 定位 */
- position: absolute;
- top: 120px;
- left: 39px;
- width: 158px;
- height: 29px;
- overflow: hidden; /* 隐藏超出部分 */
- }
- .mouthTop { /* 上嘴唇轮廓 */
- position: absolute;
- top: 0;
- left: 0;
- width: 158px;
- height: 34px;
- border: 1px solid #000;
- border-top-left-radius: 45% 34px;
- border-top-right-radius: 45% 34px;
- }
- .mouthBottomContainer {
- position: absolute;
- top: 146px;
- left: 39px;
- width: 158px;
- height: 15px;
- overflow: hidden; /* 隐藏超出部分 */
- }
- .mouthBottom {
- position: absolute;
- top: -4px;
- left: 0;
- width: 158px;
- height: 24px;
- border: 1px solid #000;
- border-top: none;
- border-bottom-left-radius: 45% 24px;
- border-bottom-right-radius: 45% 24px;
- }
- /* 嘴唇上下层次感-咬合部位 */
- .lispContainer { /* 定位 */
- position: absolute;
- top: 146px;
- left: 60px;
- width: 116px;
- height: 24px;
- }
- .lips {
- position: absolute;
- top: 0;
- left: 0;
- width: 116px;
- height: 24px;
- border: 1px solid #FFA600;
- border-bottom-left-radius: 50% 100%;
- border-bottom-right-radius: 50% 100%;
- }
[attach]94924[/attach]
基本 head 轮廓就是这样了。
现在把右眼眼球部分上个色,来进行层叠覆盖隐藏。
页:
[1]