根据 css3 中的 border-radius
属性,将 border-radius 的值设置为和元素的高宽一样,那么这个元素就渲染成了圆形。目前 ie9 以及各大标准浏览器都支持,但是用户份额最多的 ie6,7,8 并不支持,不过 ie6,7,8 支持微软提出的 vml 标准 ( wiki
, msdn
),而从 ie9 开始放弃了 vml,转而支持 w3c 推荐的同类型的矢量语言 svg
。
demo :
那么对于 ie6,7,8 就可以使用 vml 代替 css3 对应属性来绘制圆形:
demo : using vml to draw round
实现注意:
1.vml 支持从 ie6 到 ie8,越来越弱,问题越来越多,性能越来越差,特别是 ie8 在兼容性上和前两个版本有些区别
。
2.roundrect
的 arcsize 对应 css 的 border-radius 属性,不需要边框可设置 stroked(规范为stroke,规范与实现不符) 为 false ,但是当设置透明度时边框会有黑色线条残余( ie9 的兼容模式已修复)。透明度要设置 vml 元素的style,而不是设置 opacity 属性(规范与实现不符)。
3.添加 vml 元素后注意
要
将容器元素的背景色设置为透明,防止干扰绘制的圆形区域。
4.容器元素要设置定位,并且绝对定位的 vml 元素的 z-index 要设置为 -1,使得 vml 元素位于容器其他子元素的下方,达到等同于设置元素背景色的效果。
update : 发现一个更复杂全面的库 DD_roundies
重属巧合~~
PS : 渲染延迟
最后一个添加到dom的 vml 元素总是会被延迟渲染,所以如果要求所有vml元素一起渲染显示的话,需要在最后一个vml元素后再次添加一个元素并设置为隐藏。
分享到:
相关推荐
本文实例讲述了Python实现的圆形绘制。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python3 import numpy as np import matplotlib.pyplot as plt # ========================================== ...
视频教程
用VC++绘制等边三角形的实例方法 switch(message) { case WM_PAINT: hdc=::BeginPaint(hwnd,&ps); hP=(HPEN)CreatePen(PS_DASH,3,RGB(0,255,0)); hB=(HBRUSH)CreateHatchBrush(HS_CROSS,RGB(255,0,0));...
Android 绘制圆形头像
1、相关技术:MFC文字输出控制、圆形绘制函数、五角星绘制、数字范围控制、效果仿制; 2、程序书写属于业余水平,仅用于交流; 3、开发环境Microsoft Visual Studio 2008,程序存在不足之处,但不影响使用
使用GDI+技术,在MFC中结合gif图像绘制具有动态效果的圆形等待进度条。
重载OnLButtonDown\OnMouseMove\OnLButtonUp,单击鼠标并拖动,实现MFC界面上直线绘制、矩形绘制、圆形绘制。
使用jdk的绘图工具来绘制印章,该代码中只绘制了圆形印章,印章中的内容包括公司名称、中间的五角星以及印章的类型
使用QPainter绘制圆形和折线的demo,实现了在label控件下绘制圆形和折线图,定时刷新界面
在Unity3D里绘制圆形/圆环/扇形/扇面Mesh
1:实现对圆形、多边形、点标记、折线 等的绘制; 2:支持单个绘制 或者 多个绘制的选择; 3:支持对绘制后的图形进行删除; 4:支持对绘制后的图形进行编辑,调整; 5:支持根据图形数据显示到地图上,进行后续操作...
html5 canvas画布绘制圆形时钟代码
很好的算法,用代码实现ArcGIS中使用绘制的圆形选择要素
用Qt鼠标事件实现基本几何图形的绘制,支持直线、矩形、圆形、椭圆。后期可以在此基础上进行扩展。使用QGraphics完成。 本示例使用QGraphics体系来实现,因为要移动对象,所以生成的图形必须是一个单独的对象,鼠标...
JavaScript绘制曲线、圆形饼图实例 本资源是关于使用JavaScript绘制曲线和圆形饼图的实例。该实例使用HTML、JavaScript和CSS技术来实现曲线和圆形饼图的绘制。 知识点1:JavaScript绘制曲线 JavaScript可以使用 ...
使用QML绘制的圆形进度条
移植的基于N76E003的1.3寸TFT驱动,屏幕主控为ST7789,移植了3D菜单显示,矩形绘制,圆形绘制,三角形绘制,中英字体,图片显示,屏幕旋转等功能,因为此屏幕为240*240分辨率,所以将大量的传递参数优化为8位,如果...
实现基本的图形绘制算法,如直线绘制算法、矩形绘制算法、圆形绘制算法等。 考虑使用 Bresenham 算法等高效的绘制算法,确保图形绘制的速度和质量。 用户交互: 监听用户的鼠标事件和键盘事件,实现用户与程序的...
VC2008下用GDI+绘制圆形进度条,已经封装成类,可根据需要设置进度条的大小、形状,使用起来很方便。