CSS绘制小三角形/圆形等各种小图标的方法
来源:互联网 发布:mysql去除重复列 编辑:程序博客网 时间:2024/05/01 03:49
- 小三角的绘制
- 利用border属性绘制小三角
- css旋转正方形
- base64编码
- HTML5 Canvas
- SVG法
- 其他形状图形的绘制
- 圆形半圆弧形绘制
- 导航栏菜单小三角下标的实现
- 小三角的绘制
切图时常常需要一些小图标辅助信息模块的表达,比如带有小三角选中状态的导航栏,气泡框等等。如果以图片的方式加载这些小图标会增加http的请求量,不利于性能优化,因此我们可以用CSS,HTML5 Canvas,SVG,基于base64的图片编码等方式实现图标的绘制。
下面主要介绍几种常用的CSS绘制小三角以及其他图形的方法:
小三角的绘制
利用border属性绘制小三角
原理:将原来div的宽和高的值逐渐减为0的过程,每个方向边框的形状会逐渐由梯形变为三角形,设置每个方向边框的颜色和宽度,若只想显示某一块三角形,可以把其他的边框颜色设置为透明,即transparent。
- 边框变换为三角形的几种情况如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
如上所示,分别指定4个,3个,2个方向的border-width宽度,其余方向宽度设为0,将分别得到包含4个三角形的正方形(边长为2*border-width);包含3个三角形的矩形(一边为border-width,另一边为2*border-width),宽度被设为0的边框对应方向的边框会形成较大的三角形,且长度加倍;包含两个2个三角形的正方形(边长为border-width)。
得到的图形如下所示:
- 得到的几个不同方向的小三角如下:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- 5
上面的css未列出的其他属性与上述div属性相同,只需更改border-color属性。想得到哪个方向的小三角,就保留哪个方向的border颜色,其他方向的border-color设置为transparent即可。
css旋转正方形
把一个小的正方形在大的正方形里面旋转45度,背景颜色一样,沿对角线突出一半出去就是三角形。IE9以前不支持旋转。
此种方式不是很简洁,不做过多介绍。
base64编码
将已有的图片经过base64编码处理,可以有效减少http请求,但是此种方式不实用,此次不做过多介绍。
HTML5 Canvas
在canvas里面,使用画布标记三个点的坐标绘制小三角形。
- 1
绘制的js代码如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
SVG法
使用内联SVG绘制填充三角形,实现方式如下:
- 1
- 2
- 3
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
综上,使用第一种border边框的方式绘制较简单常用,后面两种方式较新,但是功能很强大,有待继续深入研究。
其他形状图形的绘制
圆形/半圆/弧形绘制
- 1
- 2
- 3
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
得到的几种图形如图所示:
曲线绘制主要在正方形(矩形)边框的基础上,通过设置border-radius属性设置矩形框4个方向的圆角值:
-圆形是将4个圆角值设为宽度的一半,即圆的半径;
-半圆形将高度减半,上面两个圆角值为宽度的一半,下面两个圆角值设为0;
-弧形保留斜对角方向的两个圆角值为宽度值,另一对角的圆角值设为0,并在此基础上旋转45度可得到图中的效果。旋转功能不兼容IE低版本浏览器。
导航栏菜单小三角下标的实现
菜单栏每一项使用相对定位relative,下方对应的小三角使用伪类:after+绝对定位absolute实现,具体实现方式如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
得到的导航图片如同所示:
如有其他小图形绘制方法,且待后续分享~
参考资料:
https://segmentfault.com/a/1190000003833676
http://m.blog.csdn.net/article/details?id=50901650
- CSS绘制小三角形/圆形等各种小图标的方法
- CSS绘制小三角形/圆形等各种小图标的方法
- css写出各种小三角形
- IOS绘制各种图形(三角形,圆形,矩形,椭圆等)
- css绘制三角形图标
- 用css写出一个小三角形图标
- 纯CSS画的基本图形技巧绘制(矩形、圆形、三角形、多边形、爱心、八卦等)
- CSS绘制小三角形效果实现&扩展
- css绘制各种角度三角形方法
- CSS Border使用小分享--css实现小三角形等
- 各种小图标的插件
- CSS创建三角形(小三角)的几种方法
- CSS创建三角形(小三角)的几种方法
- CSS创建三角形(小三角)的几种方法
- CSS创建三角形(小三角)的几种方法
- CSS创建三角形(小三角)的几种方法
- CSS 三角形绘制方法
- css绘制三角形方法
- 数据分析与数据挖掘在常规工作中的应用——数据清洗之缺失值处理
- keil中文注释出现乱码怎么解决
- 解决Centos环境下tomcat启动缓慢的问题
- SQL基本语法
- 进程与线程的一个简单解释
- CSS绘制小三角形/圆形等各种小图标的方法
- Maven简介(一)
- JVM调优总结系列之四:分代垃圾回收
- latex字体大小调整
- OC和Swift混合编程引用Pods管理的模块
- DC/PT在任意位置停止执行脚本的方法
- 支持向量机(SVM)的详细推导过程及注解
- linux-GCC 常用命令
- 面试常见题