【二次元的CSS】—— 用 DIV + CSS3 画咸蛋超人(详解步骤)

【二次元的CSS】—— 用 DIV + CSS3 画咸蛋超人(详解步骤)

2016-05-17 HTML5cn

仅仅使用div作为身体的布局,用css3的各种transform和圆角属性来绘制各部位的形状,当然也不会使用任何图片哦。那就没意思了。

有的同学说,用canvas不是能画得更逼真而且更简单吗?这点我也非常赞同,但我的理由还是,那就没意思了。

这次写的详细一点,把各个部位都拆出来分析。

第一步:头部轮廓

<header></header>

.ultraman header {

border: 7px solid #000;

border-top: 15px solid #000;

width: 200px;

height: 200px;

border-radius: 50% 50% 60% 60%;

position: absolute;

background: #fff;

}

第二步:就算作是头发吧

<header>

<div class="hair"></div>

</header>

.ultraman header .hair {

position: absolute;

top: -40px;

left: 80px;

width: 0;

height: 0;

border-left: 20px solid transparent;

border-right: 20px solid transparent;

border-top: 140px solid #000;

border-radius: 30% 30% 50% 50%;

}

第三步:眼睛

<header>

<div class="hair"></div>

<div class="left_eye"></div>

<div class="right_eye"></div>

</div>

</header>

因为我是用less写的嘛,所以先定义了一个眼睛的类,然后再生成2个眼睛

.eye(@l,@r,@deg){

border:5px solid #000;

width:70px;

height:70px;

background:#ffc30a;

border-radius:@l @r;

transform:rotate(@deg);

position:absolute;

top:60px;

}

.left_eye{

.eye(50%,80%,-15deg);

left:10px;

}

.right_eye{

.eye(80%,50%,15deg);

right:10px;

}

第四步:耳朵

<header>

<div class="hair"></div>

<div class="left_eye"></div>

<div class="right_eye"></div>

<div class="left_ear"></div>

<div class="right_ear"></div>

</header>

.ear(@deg){

width:20px;

height:50px;

border:5px solid #000;

position:absolute;

top:70px;

z-index:-1;

transform:rotate(@deg);

background:#fff;

}

.left_ear{

.ear(-7deg);

left:-20px

}

.right_ear{

.ear(7deg);

right:-20px

}

第五步:小身体

<div class="body">

<div class="light"><span></span></div>

</div>

身上有个灯,时间到了,会嘀嘟嘀嘟叫的,所以加一个动画效果

@keyframes jump{

0%{

background:#48e1e7;

}

50%{

background:#961e1e;

}

100%{

background:#48e1e7;

}

}

.body{

width:100px;

height:80px;

background:#fff;

border:7px solid #000;

position:absolute;

top:180px;

left:50px;

border-radius:0 0 20% 20%;

z-index:-1;

.light{

width:40px;

height:40px;

border:3px solid #000;

position:relative;

top:20px;

left:30px;

background:red;

transform:rotate(-45deg);

span{

width:8px;

height:8px;

border:2px solid #000;

background:#48e1e7;

display:block;

position:absolute;

left:3px;

top:26px;

border-radius:50%;

z-index:2;

animation:jump 0.5s infinite;

}

}

}

第六步:手

<div class="left_hand"></div>

<div class="right_hand"></div>

手只要旋转一下就好了,比出一个十字

.hand{

width:30px;

height:100px;

border-radius:60% 60% 50% 50%;

border:7px solid #000;

position:absolute;

background:#fff;

}

.left_hand{

.hand;

top:160px;

left:30px;

}

.right_hand{

.hand;

top:160px;

left:90px;

transform:rotate(-90deg);

}

第七步:裤子

<div class="trousers"></div>

.trousers{

border:7px solid #000;

position:absolute;

background:red;

width:100px;

height:45px;

top:240px;

left:50px;

z-index:-2;

border-radius:0 0 15% 15%;

}

第八步:腿

<div class="left_footer"></div>

<div class="right_footer"></div>

<div class="egg"></div>

至于egg是什么, 我就不赘述了。

.footer{

width:34px;

height:80px;

border-radius:50% 50% 60% 60%;

border:7px solid #000;

position:absolute;

background:#fff;

z-index:-3;

}

.left_footer{

.footer;

left:46px;

top:260px;

transform:rotate(20deg);

}

.right_footer{

.footer;

right:20px;

top:270px;

transform:rotate(-50deg);

}

.egg{

background:#75d8f9;

width: 18px;

height: 30px;

top: 286px;

left: 97px;

position: absolute;

border-radius: 50%;

border-top:7px solid #000;

}

收工

欢迎大家吐槽。

作者:lancer07

原文:https://segmentfault.com/a/1190000005101636

时间: 2024-12-24 23:27:31

【二次元的CSS】—— 用 DIV + CSS3 画咸蛋超人(详解步骤)的相关文章

CSS3各个模块详解

一, CSS3 盒子 阴影 属性 box- shadow 也是 CSS3 新增 的 一个 重要 属性, 用来 定义 元素 的 盒子 阴影. inset: 阴影 类型, 可选 值. 如果不 设置, 其 默认 的 投影 方式 是 外 阴影: 如果 取其 唯一 值" inset", 就是 给 元素 设置 内 阴影. x- offset: 阴影水平偏移量, 其值可以是正负值. 如果取正值, 则 阴影 在 元素 的 右边, 反之 取 负值, 阴影 在 元素 的 左边. y- offset: 阴影

CSS3基本选择器详解

CSS的选择器,我想大家并不会陌生吧,因为天天在使用,但对于CSS3的选择器,要运用的灵活到位,我想对很多朋友还是一定的难度,特别是CSS3中的:nth选择器.那么从现在开始我们先丢开他们版本的区别,从头一起来看看CSS选择器的运用. CSS是一种用于屏幕上渲染html,xml等一种语言,CSS主要是在相应的元素中应用样式,来渲染相对应用的元素,那么这样我们选择相应的元素就很重要了,如何选择对应的元素,此时就需要我们所说的选择器.选择器主要是用来确定html的树形结构中的DOM元素节点.我把CS

CSS3属性选择器详解 及 双色球实战开发

在前面的章节中,我们了解了,可以使用行内样式,ID选择器,类选择器,以及标签选择器来给一个元素应用样式. 如果我们想给定义了那些都定义了某一个属性的元素应用样式,这个时候我们该怎么做呢? 这一节中,我将使用 双色球案例 和 文档类型提示图标案例 来引入和应用属性选择器. 双色球案例: 大家都知道,双色球共有7个球,6个红球,1个蓝球.首先我们先在页面上面定义7个span标签: <!DOCTYPE html> <html> <head> <meta charset=

CSS3 transform 属性详解(skew, rotate, translate, scale)

写这篇文章是因为在一个前端QQ群里,网友 "小豆豆" (应他要求要出现他的网名......) ,问skew的角度怎么算,因为他看了很多文章还是不能理解skew的原理.于是,我觉得有必要写个博文,帮助那些不懂的人,让他们看了此文就懂. 进入正题: 先说明下,电脑屏幕的XY轴跟我们平时所说的直角坐标系是不一样的.如下图: 图上的盒子就是代表我们的电脑屏幕,原点就是屏幕的左上角,竖直向下为X轴正方向,水平向右为Y轴正方向. 1.倾斜skew 先看图 每个图下方都有skew的参数.粗的红色的线

CSS3:Transition属性详解

Transition属性主要是用来对某个CSS属性的变化过程进行控制,官方的介绍是"CSS Transitions allow property changes in CSS values to occur smoothly over a specified duration.".而我个人则简单地理解为"在某个时间段内,平滑地改变某个CSS属性.". Transition又包含了四个子属性,分别为property.duration.timing-function.d

CSS3属性选择器详解

上一章在<CSS3基本选择器>中主要介绍了CSS3选择器的第一部分,这节主要和大家一起来学习CSS3选择器的第二部分——属性选择器.属性选择器早在CSS2中就被引入了,其主要作用就是对带有指定属性的HTML 元素设置样式.使用CSS3属性选择器,你可以只指定元素的某个属性,或者你还可以同时指定元素的某个属性和其对应的属性值. 从上一节展示的CSS3选择器的图表中,我们可以知道,CSS3的属性选择器主要包括以下几种: E[attr]:只使用属性名,但没有确定任何属性值: E[attr="

C#GDI+基础(三)画刷详解

SolidBrush:一般的画刷,通常只用一种颜色去填充GDI+图形 创建一般画刷: SolidBrush sbBrush1 = new SolidBrush(Color.Green); HatchBrush:阴影画刷,有两种颜色:前景色和背景色创建阴影画刷: HatchBrush(HatchStyle,Color);//前景 HatchBrush(HatchStyle,Color,Color)://前景.背景 HatchStyle对应阴影方案列表. 名称 说明 BackwardDiagonal

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate) 在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45deg); 共一个参数"角度",单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度. 二.缩放 scale 用法:transform

CSS3 中border-image详解

CSS3 border-image详解.应用及jQuery插件 一.border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人.可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持border-image.所以,就本文而言,IE浏览器可以回家休息了,Firefox3及其以下以及Opera浏览器也可以休息去看<阿凡达>了.所以,本文提供的一些demo页面,要在Firefox3.5+,