CSS学习笔记---绘图原理1

CSS学习笔记—绘图原理1

最近开始学习CSS的绘制简单图形的技巧,学习了一些大神的代码,自己也去了解了原理,然后自己做了一下归纳总结,写这篇博客,一是为了做个学习笔记,二也算是记录一下自己学习的过程和成果吧!
(个人理解,有不正确的地方,大家可以一起讨论学习)
* 注:以下图中除军校蓝色部分,其余部分都应设为透明(transparent) *
* 为了理解方便,故设有颜色(颜色描述不准确的地方不要介意哈) *

1.心形

——利用2个长方形


  • 创建外部div宽度和高度(大正方形)
  • 用:before,:after创建两个与div等高的长方形,变形为半圆角矩形
  • 逆时针旋转45度放在左边(图中左,军校蓝色,不透明度:1)
  • 把:after创建的半圆角矩形顺时针旋转45度移动位置(图中右,军校蓝色,不透明度:0.7)

要点:
圆角:border-radius: 40px 40px 0px 0px
旋转:transform: rotate(-45deg)逆时针 /(45deg)顺时针
心形1
——利用2个圆,1个正方形


  • 创建div宽度和高度(正方形)(图中下,军校蓝色,不透明度:0.6)
  • 先设置:before伪元素,使它和div等宽高,用border-radius:50%变成一圈,放在左边(图中左上,军校蓝色,不透明度:0.8)
  • 再用:after创建第二个圈,同第一圈,把:after创建的圈移至右边(图中右上,军校蓝色,不透明度:0.8)

要点:
画圆:-webkit/-moz/-o-border-radius:50%;border-radius:50%;
旋转:transform: rotate(-45deg)逆时针 /(45deg)顺时针
心形2

2.三角形

——利用边框的颜色和粗细


  • 给div一个总边框,颜色设为透明(transparent)(图中左、右,青黄色)
  • 将要遮挡住的边框,颜色设为透明(transparent)(图中上,浅红色)
  • 将与三角形的方向一致的边框,颜色设为想要的颜色(图中下,军校蓝色)

要点:
div不要设宽高度
边框的粗细决定三角形的形状和方向
对边的宽度要相加起来是边框宽度的两倍(类似等边)
每个边的border是三角形无缝拼接的,而不是矩形拼接的
向上的三角形
——利用边框的颜色和粗细(无总边框)


  • 将要遮挡住的边框,颜色设为透明(transparent)(图中左,青黄色)
  • 将要遮挡住的边框,颜色设为透明(transparent)(图中右,浅红色)
  • 将与三角形的方向一致的边框,颜色设为想要的颜色(图中上,军校蓝色)

要点:
div不要设宽高度
边框的粗细决定三角形的形状和方向
对边的宽度要相加起来等于第三边的宽度(类似等边)
每个边的border是三角形无缝拼接的,而不是矩形拼接的
向下的三角形

3.平行四边形

——利用1个正方形


  • 将div设为等宽高的正方形,设置背景色(图中军校蓝色)
  • 用transform: skew(30deg,0deg)设置倾斜度

要点:
倾斜:transform:skew(30deg,0deg); //沿着X和Y轴的2D倾斜转换。
平行四边形

4.梯形

——利用边框的颜色和粗细


  • 将div设为等宽高的正方形
  • 给div一个总边框,颜色设为透明(transparent)(图中左、右,青黄色)
  • 将要遮挡住的边框,颜色设为透明(transparent)(图中上,浅红色)
  • 将梯形的长边对应的边框,颜色设为想要的颜色(图中下,军校蓝色)

要点:
边框的粗细决定梯形的形状和方向
box-sizing:border-box;//padding和border被包含在定义的width和height之内,width=width
每个边的border是梯形无缝拼接的,而不是矩形拼接的
对边宽度之和=div高度时,其他两边是三角形
向上的梯形
——利用边框的颜色和粗细(无box-sizing)


  • 为div设置宽度和高度,不设背景色(图中米色)
    -给div四个边框,其中3个颜色设为透明(transparent)(图中左、下、右)
    -将梯形的长边对应的边框,颜色设为想要的颜色(图中上,军校蓝色)

要点:
边框的粗细决定梯形的形状和方向
每个边的border是梯形无缝拼接的,而不是矩形拼接的
向下的梯形

5.五角星

——利用3个三角形


  • 创建一个三角形1(图中左,浅红色),倾斜移动至左方
  • 用:before创建一个三角形2(图中正上,青黄色),倾斜移动至正上方
  • 用:after创建一个三角形3(图中右,军校蓝色),倾斜移动至右方

要点:
三角形1与三角形3大小一致,关于y轴对称
五角星

6.飞机

——利用3个三角形


  • 创建一个三角形1(图中左上,浅红色),倾斜移动至左上方
  • 用:before创建一个三角形2(图中右下,军校蓝色),倾斜移动至右下方
  • 用:after创建一个三角形3(图中左下,青黄色),倾斜移动至左下方

要点:
三角形2、3设置绝对位置,设为块类元素
飞机

7.对话框

——利用1个圆角矩形,1个三角形


  • 将div设为一个圆角矩形(图中左,军校蓝色)
  • 用:after创建一个三角形(图中右,浅红色),移动至右中

要点:
top: calc(50% - 15px); //向上移动div高度的一半,垂直居中
对话框

* 代码参考(主要学习) *

由于源码过多,这里就不贴出来了,有兴趣的朋友可以去看一下博主学习过的代码:
http://www.qdfuns.com/notes/34581/cc74b68009747b5ec0a135982e1697df.html


HTML5(HyperText Markup Language 5)是一种用于构建和呈现网页内容的标准的最新版本。它是由万维网联盟(W3C)开发和维护的,旨在取代之前的HTML版本。 HTML5具有许多新的功能和特性,使得网页设计和开发更加灵活和强大。其中一些突出的特点包括: 1. 语义化标签:HTML5引入了新的语义标签,如<header>、<nav>、<section>和<footer>等,使网页结构更具可读性和可访问性。 2. 视频和音频支持:HTML5内置了<video>和<audio>标签,使得在网页中嵌入和播放视频和音频变得更加简单和无需依赖插件。 3. Canvas绘图:HTML5的<canvas>元素允许开发者使用JavaScript绘制图形、动画和游戏等,提供了更强大的图形处理能力。 4. 本地存储:HTML5提供了本地存储功能,包括LocalStorage和SessionStorage,可以在客户端存储数据,减少对服务器的请求,提高网页性能。 5. 响应式设计:HTML5支持响应式布局,即能够根据设备的屏幕大小和分辨率自动调整网页的布局和样式,提供更好的用户体验。 6. WebSocket通信:HTML5引入了WebSocket API,允许实时双向通信,使得开发者可以创建更快速、实时的应用程序。 HTML5的广泛应用使得网页开发更加便捷和创新。它不仅可以用于构建传统的网页和博客,还可以用于开发移动应用、游戏、视频播放器等。同时,HTML5也具有更好的兼容性和跨平台性,可以在不同的浏览器和操作系统上运行。 总之,HTML5的出现为网页设计和开发带来了新的可能性和优势,使得用户能够获得更丰富、交互性更强的网页内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值