根据 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 # ========================================== ...
1:实现对圆形、多边形、点标记、折线 等的绘制; 2:支持单个绘制 或者 多个绘制的选择; 3:支持对绘制后的图形进行删除; 4:支持对绘制后的图形进行编辑,调整; 5:支持根据图形数据显示到地图上,进行后续操作...
总之,OpenGL提供了灵活性,允许开发者选择适合特定应用场景的圆形绘制方法。方程法适用于精度要求高的情况,而中点Bresenham法则在性能和效率上有优势。通过深入理解这两种方法,你可以更好地利用OpenGL来创建复杂...
视频教程
本教程将重点讲解如何在C#中实现Halcon的圆形绘制功能,从而在匹配助手或者自定义的应用程序中复用Halcon的图像处理能力。 首先,我们需要了解Halcon中绘制圆形的基本概念。在Halcon中,绘制圆形通常涉及到创建一个...
在资源包中,"circle"可能是包含了实现圆形绘制的源代码文件,可能包含C++或GLSL(OpenGL着色语言)代码。这些文件可能定义了用于构建圆形的几何数据、顶点缓冲对象(Vertex Buffer Objects)、索引缓冲对象(Index ...
值得注意的是,有一个名为`circle`的文件或目录,很可能包含了实现圆形绘制的具体代码。 要深入学习这个话题,你需要了解基本的3D图形学概念,如向量、矩阵、顶点着色器和片段着色器,以及Filament的基本用法。你...
2. **圆形绘制**:在MATLAB中,可以使用`fill`函数结合极坐标来绘制圆形。例如,`fill(theta,rho,'color')`,其中`theta`是角度数组,`rho`是对应角度下的半径,'color'是填充颜色。`theta`通常从0到2π,表示一个...
用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开发过程中,绘制圆形头像是一个非常实用且常见的需求。圆形头像不仅美观,还能在视觉上给人带来良好的用户体验。接下来,我们将详细介绍如何在Android应用中实现圆形头像的绘制。 ### 一、理解需求 在...
1、相关技术:MFC文字输出控制、圆形绘制函数、五角星绘制、数字范围控制、效果仿制; 2、程序书写属于业余水平,仅用于交流; 3、开发环境Microsoft Visual Studio 2008,程序存在不足之处,但不影响使用
在Windows编程领域,GDI+(Graphics Device Interface Plus)是一个强大的图形处理库,它扩展了传统的GDI功能,提供了更多的图形绘制和图像处理能力。在本主题中,我们将深入探讨如何利用GDI+在MFC(Microsoft ...
3. **圆形绘制**:`cv2.circle()`函数绘制圆或圆弧。除了图像,它还需要圆心坐标,半径,颜色和线宽。例如,`cv2.circle(img, (center_x, center_y), radius, color, thickness)`。 4. **多边形绘制**:`cv2....
3. **圆形绘制**: DrawEllipse方法可以绘制圆形或椭圆。Pen类同样用于定义线条属性。例如,绘制一个半径为50的黑色圆: ```csharp Pen blackPen = new Pen(Color.Black, 1); g.DrawEllipse(blackPen, new ...
1. **圆形绘制**:使用Canvas的arc()方法可以绘制圆或部分圆。该方法接受五个参数,分别是圆心的x坐标、y坐标、圆的半径、起始角度(弧度制)和结束角度(弧度制)。 2. **渐变背景**:Canvas提供线性渐变...
在IT领域,特别是地理信息系统(GIS)开发中,利用编程技术来实现在地图上通过绘制圆形来选择要素是一项实用且高效的功能。本文将深入解析如何在ArcGIS中使用VBA或VB.NET等语言编写代码,以实现绘制圆形并基于此圆形...
2. 圆形绘制:Circle()函数用于绘制圆形,参数包括中心点坐标和半径。同样,可以通过设置不同的颜色和线条样式来改变圆形的外观。 3. 三角形绘制:通过MoveToEx()和LineTo()函数的组合使用,可以依次连接三个顶点...
3. **圆形绘制** 要创建一个圆形的进度条,我们需要在`onDraw()`方法中使用`Canvas`对象来绘制。我们可以利用`Paint`对象设置画笔的样式、颜色和宽度,然后用`canvas.drawCircle()`绘制圆心,`canvas.drawArc()`...
这样,我们就可以利用父类已经实现的大部分功能,同时可以添加我们自定义的圆形绘制逻辑。 2. **重写onDraw()方法** 在`CircleImageView`类中,我们需要覆盖`onDraw()`方法,这是Android系统绘制View的核心函数。...