CSS简笔画:纯CSS绘制一辆婴儿车
时间:2022-07-22
本文章向大家介绍CSS简笔画:纯CSS绘制一辆婴儿车,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
CSS学习其实不难,难的是动手实践,当你看到一个效果是,觉得这个实现起来很难、很难,但是你一旦动手,一步一步分解实现,会发现也没有想象中的那么难。
下面我们动手写一个纯CSS婴儿车,你将学习到下列知识:
你能get到
1、CSS Flex水平垂直居中
2、CSS 变量(前面小节已经讲过)
3、CSS 伪类的灵活使用
4、CSS 相对定位和绝对定位
5、CSS 绘制 半圆形 扇形 三角形
6、CSS transform 变形
看图解构
婴儿车结构很简单,从下至上,车轮、婴儿床、扶手、斗篷,复杂点的就是斗篷,因为斗篷上面有骨针,复杂点,最简单的就是车轮了,我们就从它开始。
婴儿车 html结构
<div class="baby-carriage">
<!-- 婴儿床 -->
<div class="bed">
<!-- 扶手 -->
<div class="handrail"></div>
<!-- 斗篷 -->
<div class="cloak"></div>
</div>
<!-- 车轮 -->
<div class="wheel">
<div class="before"></div>
<div class="after"></div>
</div>
</div>
CSS部分代码
1、定义CSS变量
:root{
--bgColor:rgb(28, 194, 78);
--lineColor: #fff;
}
2、婴儿车水平垂直居中
body {
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: var(--bgColor);
}
.baby-carriage {
position: relative;
/* 下方代码为了看居中效果,后面去掉 */
border: 1px solid var(--lineColor);
width: 200px;
height: 200px;
}
3、造两个轮子
.wheel{
text-align: center;
}
.wheel>div{
position: relative;
border: 4px solid var(--lineColor);
border-radius: 100%;
display: inline-block;
width: 50px;
height: 50px;
}
.wheel>div:after{
position: absolute;
content: '';
display: inline-block;
width: 15px;
height: 15px;
border-radius: 100%;
background: var(--lineColor);
margin-top: 50%;
margin-left: 50%;
left: -7.5px;
top: -7.5px;
}
.wheel .before{
margin-right: 30px;
}
利用border
、border-radius
,矩形圆角形成圆,然后利用伪类:after
,形成车轮轴。
4、添加bed
css绘制一个半圆,即可。这里我们用白色画线条,background就用透明色,达到我们想要的效果
.bed{
position: relative;
width: 200px;
height: 100px;
border: 4px solid var(--lineColor);
background-color: transparent;
border-radius: 0 0 200px 200px;
}
5、添加扶手
这里就是个细节,耐心活了。可以用F12调试,调节元素的位置达到想要的效果。
.handrail{
position: absolute;
width: 10px;
height: 158px;
background: var(--lineColor);
transform: rotate(36deg);
left: 93px;
bottom: -47px;
}
.handrail:before{
position: absolute;
content: '';
display: block;
width: 15px;
height: 48px;
background: var(--lineColor);
transform: rotate(18deg);
left: 4px;
top: -44px;
border-radius: 8px;
}
.handrail:after{
position: absolute;
content: '';
display: block;
width: 36px;
height: 15px;
background: var(--lineColor);
transform: rotate(-36deg);
left: 8px;
top: -51px;
border-radius: 8px;
}
6、添加斗篷
斗篷的形状就是个1/4圆/扇形
.cloak{
position: absolute;
width: 100px;
height: 100px;
background-color: var(--lineColor);
border-radius: 100px 0 0 0;
top: -102px;
left: -4px;
transform: rotate(0deg);
transform-origin: 100% 100%;
}
但是这个扇形是实心的,和我们想要的效果不一样,
我们怎么解决呢?
根据上面的经验,我们是不是可以设置边框border,而不设置background-color呢?试试吧
.cloak{
position: absolute;
width: 100px;
height: 100px;
/* background-color: var(--lineColor); */
border: 4px solid var(--lineColor);
border-radius: 100px 0 0 0;
top: -102px;
left: -4px;
transform: rotate(0deg);
transform-origin: 100% 100%;
}
可以的!我们还可以用另外一种方式,再画一个扇形,不过颜色和背景色一致,然后覆盖到上一个扇形,并错位。试试看。
.cloak:before{
position: absolute;
content: '';
display: block;
width: 94px;
height: 94px;
background-color: var(--bgColor);
border-radius: 100px 0 0 0;
left: 4px;
top: 4px;
}
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- Android开发实现在Wifi下获取本地IP地址的方法
- Android基于Glide v4.x的图片加载进度监听
- Android如何通过scheme跳转界面
- Android EditText实现输入金额类型详解
- ubuntu20.04中文输入法安装步骤
- 如何利用Android Studio将moudle变成jar示例详解
- Android自带的四种线程池使用总结
- CentOS8.1搭建Gitlab服务器详细教程
- Android开发之图片旋转功能实现方法【基于Matrix】
- Android编程简单实现拨号器功能的方法
- win10 + Ubuntu20.04 LTS双系统引导界面美化
- Android开发从相册中选取照片的示例代码
- 详解Android WebView的input上传照片的兼容问题
- Ubuntu14.04安装、配置与卸载QT5的步骤详解
- CentOS 8 安装 MariaDB的详细教程