导言:本文探讨的是圆角框的终极解决方案,其核心关键词是“圆滑、完美、兼容、重用性、语义”,这些技术都是收集目前网络上最流行的做法,
圆角框,因为其样式比直角框漂亮,所以成为设计师心中偏爱的设计元素。现在的web标准下大量的网页、 都采用圆角框设计,成为一道亮丽的风景线。
然而,就是这个圆角,却成为了网页前端人员心中永远抹之不去的阴影,对它,可以说是又痛又爱。爱的是它的漂亮,痛的是要让它兼容通行于各种不同的浏览器却成为一个永远的神话。 让我们来回忆一下目前网络流行的都有哪些解决方案。 第一种:无图片纯css圆角框 收录理由:兼容性强,不用图形 图一 特点:
1.不用任何图形,使用很多个div容器模拟出圆角效果。 2.兼容性:通杀所有浏览器 缺点:
1.构造这个圆角需要参加太多的无语义的标签,结构比拟冗余。 2.重用性不强:如果一个页面有多个圆角,并且要实现不同的半径大小,那么其灵活性不够。
3.边框颜色虽然可以调节,但会对页面中的结构产生致命 ,适用于色彩单一并且一个页面中圆角应用不多的页面。
4.不容易实现圆弧内有渐变色的图形背景。
5.圆角框不够圆滑,有锯齿现象,适合于背景色和当前色色差不大并且圆弧较小的网页。 实现原理:
用很多1像素高的div容器,利用背景色和边框色来模拟出圆角框的轮廓线。
实例演示: .cssplay.co.uk/boxes/snazzy.html 第二种:无图片纯css圆角框,用特殊字符(&bull) 收录理由:圆滑,不用图形 图二 特点:
1.不用任何图形,使用特殊字符?(圆点)模拟出圆角。 2.兼容性:通杀所有浏览器 3.圆角平滑 缺点:
1.构造这个圆角一样需要参加无语义的标签,结构冗余,同第一种一样。
2.重用性不强:如果一个页面有多个圆角,并且要实现不同的半径大小,需要调整四个角图片的定位,并且字符大小对其有影响,灵活性不够。
3.颜色虽可调节,但要求里面的背景色和字符的颜色相同,不能做成边框线条。适用于色彩单一并且一个页面中圆角不是太多的页面。 4.一样不容易实现圆弧内有渐变色的图形背景。 实现原理:
用特殊字符(&bull),利用定位,截取四分之一圆模拟出圆角框的一个角图片。
实例演示:.cssplay.co.uk/boxes/curves.html 第三种:图片圆角框
收录理由:兼容性强,可以表现很复杂的圆角效果。 图三 特点:
1.使用四个圆角图形(或一个圆图片)。 2.兼容性:通杀所有浏览器。 3.这是最常用的圆角框做法。
4.因为采用图片来表现,所以其圆角是超级平滑,无任何锯齿现象。 5.表现丰富,适用于各种对图片表现要求较高的圆角框。 缺点:
1.构造这个圆角也需要参加四个标签来装四张角图片,结构也有冗余。
2.重用性不强:如果一个页面有多个圆角,并且要实现不同的半径大小,那么要重新制作一套圆角图片。
3.如果对结构的冗余没有特别的需求,这就是超级圆滑圆角框的解决方案了。 实现原理:
利用九宫格原理,在一个容器的四个角参加绝对定位(或相对定位)的四张圆角图片。
实例演示:.cssplay.co.uk/boxes/threecornered.html 第四种:利用VML绘制圆角(ie only)
收录理由:无图片,平滑,可加阴影边框 图四 特点:
1.不用任何图形。
2.兼容性:只能在IE中使用 3.圆角半径随意调整
4.重用性强:多个圆角任意调用。 5.圆角颜色随意设置。 6.结构无冗余。 7.圆角平滑无锯齿。 缺点:
1.除了兼容性 有问题外,其它方面的表现都不错。
2.不能在圆弧中表现丰富的有渐变的图片,因为圆弧外框是透明的。 实现原理:使用IE专用的VML来画出圆角。 id=\"roundbox\" class=\"circle\" strokecolor=\"red\" strokeweight=\"2px\" arcsize=\"0.08\"> 注意参加引用空间:
这是兼容的用法,xmlns:v一定不能少,否那么。。。 样式表中参加这一句话:
v\":*{behavior.:url(#default#VML);display:inline-block;} Arcsize为半径
Strokeweight为边框线宽度 Strokecolor为边框线的颜色
实例演示:(请在IE系列浏览器下查看本实例) 第五种:利用私有属性绘制圆角(FF3 only) 收录理由:平滑无锯齿 图五 特点:
1.不用任何图形。
2.兼容性:只能在FF3中使用,其它浏览器不受支持。 3.圆角半径随意调整
4.重用性强:多个圆角任意调用,只需要样式表设置就可以。 5.圆角颜色随意设置。 6.结构无冗余。 7.圆角平滑无锯齿。 缺点:
1.除了兼容性 有问题外,其它方面的表现都不错,这种方式应该是最完美的方式,可惜目前只有FF3能支持这个属性,以后CSS3后会支持这个属性,不过这不知道要等到多少年以后。
2.同第五种圆角一样,在处理圆弧内的图片背景时显得有些有心无力。 实现原理:
使用FF3专用的私有属性来画出圆角。 只用两种属性就能表达圆滑的圆角框 -moz-border-radius:10px;/*圆角半径*/
Border:5px red solid;/*边框大小*/
实例演示:(请在FF3浏览器下观看,其它浏览器不支持) 第六种:无图片脚本圆角框(js半完美解决方案) 这种方案目前应该是比拟完美的方案了。 图六 特点:
1.不用任何图形。
2.兼容性:通杀所有浏览器 3.圆角半径随意调整
4.重用性强:多个圆角任意调用。
5.颜色随意设置,并且可以使用复杂的图片做为背景,表现丰富。 6.结构无冗余,只需要在容器上定义一个class或ID就可以将这个div变成圆角。 7.圆角平滑。 缺点:
1.客户端禁用JS时就无圆角,不过在目前情势下,这种情况应该不会成为太大的问题。
实例演示:.curvycorners./examples.php(有三个演例如子) 增补一种方案,结合jquery/vml/canvas的无图片圆角框。 图七 特点:
1.不用任何图形。
2.兼容性:通杀所有浏览器
3.圆角半径随意调整,并且四个角可以随意设置要不要圆角。
4.重用性强:多个圆角任意调用。
5.颜色随意设置,并且可以使用复杂的图片做为背景,表现丰富。 6.结构无冗余,只需要在容器上定义一个class或ID就可以了。 7.圆角平滑。 缺点:
1.本圆角需要用到jquery库,和一个JS文件,如果在您的工程中已经用到了Jquery这个库,倒还可以用得上,不然,为一个圆角加载一两个JS文件有点得不偿失。
2.圆角在不同的浏览器下显示有点小小的问题. 实例演示:labs.parkerfox.co.uk/cornerz/ 打包下载:下载demo
结语:目前的css因为不能为一个容器中定义多张背景图片,造成了为了这种圆角效果而参加冗余标签。听说CSS3会引入这一属性,可能到哪时,就是圆角框统一的时候了。另外也听说在CSS3中有意向参加像FF3私有属性(-moz-border-radius)的方法,这也可以完美地解决这个问题。但在目前的情势下,可能也只有用上面的这些方法来过渡了,强烈期待CSS3的到来。
总而言之:要实现绝对的完美圆角框在目前的形势下根本上是不可能的,所以取名为“半完美解决方案”。
:.blogs./binyong/archive/xx/03/08/1406521.html 模板,内容仅供参考
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务