第四种:利用VML绘制圆角(ie only)
收录理由:无图片,平滑,可加阴影边框
图四 特点:
- 不用任何图形。
- 兼容性:只能在IE中使用
- 圆角半径随意调整
- 重用性强:多个圆角任意调用。
- 圆角颜色随意设置。
- 结构无冗余。
- 圆角平滑无锯齿。
缺点:
- 除了兼容性 有问题外,其它方面的表现都不错。
- 不能在圆弧中表现丰富的有渐变的图片,因为圆弧外框是透明的。
实现原理:使用IE专用的VML来画出圆角。
- <v:roundrect
- id="roundbox"
- class="circle"
- strokecolor="red"
- strokeweight="2px"
- arcsize="0.08">
- </ v:roundrect >
复制代码 注意加入引用空间:
- <html xmlns:v xmlns="http://www.w3.org/1999/xhtml">
复制代码这是兼容的用法, xmlns:v一不能少,否则。。。
样式表中加入这一句话: - v":*{behavior:url(#default#VML);display:inline-block;}
复制代码Arcsize为半径
Strokeweight为边框线宽度
Strokecolor为边框线的颜色 实例演示:(请在IE系列浏览器下查看本实例) - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns:v xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>VML画平滑圆角框</title>
- <style>
- v\:*{behavior:url(#default#VML);display:inline-block;}
- body{ background-color:#99FFFF;font-size:12px;}
- .circle{
- height:130px;
- width:300px;
- padding-top:8px;
- margin:0px auto;
- z-index:2;
- margin-left:340px;
- }
- h1{border-bottom:2px red solid;font-size:12px;margin:4px;text-indent:1em;height:20px;}
- div{font-size:12px;padding:10px;}
- </style>
- </head>
- <body>
- <v:roundrect id="roundbox" class="circle" strokecolor="red" strokeweight="2px" arcsize="0.08">
- <h1>VML画平滑圆角</h1>
- <div class="t1">
- 使用IE专用的VML来画平滑圆角框,还可以画出阴影效果。就其图形表现来说,是非常完美的。
- </div>
- <v:shadow on="t" color="#777" opacity="52428f" offset="1.5pt,1.5pt"/>
- </v:roundrect>
- </body>
- </html>
复制代码第五种:利用私有属性绘制圆角(FF3 only) 收录理由:平滑无锯齿 图五 特点: 缺点: 实现原理: 使用FF3专用的私有属性来画出圆角。
只用两种属性就能体现圆滑的圆角框 - -moz-border-radius:10px;/*圆角半径*/
- Border:5px red solid;/*边框大小*/
复制代码 实例演示:(请在FF3浏览器下观看,其它浏览器不支持)- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>FF3下的圆角框</title>
- <style type="text/css">
- body{background:#CCCCCC;}
- .round{
- -moz-border-radius:20px;/*半径*/
- border:4px solid #333;/*边框宽度*/
- margin:50px auto;width:30%;height:150px;font-size:12px;
- }
- h1{border-bottom:4px #333 solid;font-size:12px;width:100%;padding:5px 0;text-indent:1em;}
- .context{font-size:12px;padding:10px;}
- </style>
- </head>
- <body>
- <div class="round">
- <h1>FF3私有属性画的圆角框</h1>
- <div class="context">
- <p>FF3下的圆角框两个属性就可以解决:</p>
- <p>-moz-border-radius:半径</p>
- <p>border:边框 </p>
- </div>
- </div>
- </body>
- </html>
复制代码第六种:无图片脚本圆角框(js半完美解决方案) 这种方案目前应该是比较完美的方案了。 图六 特点: 缺点: 结语: 目前的css因为不能为一个容器中定义多张背景图片,造成了为了这种圆角效果而加入冗余标签。听说CSS3会引入这一属性,可能到哪时,就是圆角框统一的时候了。另外也听说在CSS3中有意向加入像FF3私有属性(-moz-border-radius)的方法,这也可以完美地解决这个问题。但在目前的情势下,可能也只有用上面的这些方法来过渡了,强烈期待CSS3的到来。 总而言之:要实现绝对的完美圆角框在目前的形势下基本上是不可能的,所以取名为“半完美解决方案”。
|