我想要一些漂亮的圆角用于我目前正在从事的网络项目。
我想我会尝试使用 javascript 而不是 CSS 来完成它,以尽量减少对图像文件的请求(是的,我知道可以将所有需要的圆角形状组合成一个图像),我也想要能够即时更改背景颜色。
我已经使用了 jQuery,所以我查看了出色的圆角插件,它在我尝试过的每个浏览器中都像一个魅力。然而,作为一名开发人员,我注意到了让它更有效率的机会。该脚本已经包含用于检测当前浏览器是否支持 webkit 圆角(基于 safari 的浏览器)的代码。如果是这样,它使用原始 CSS 而不是创建 div 层。
我认为如果可以执行相同类型的检查以查看浏览器是否支持 Gecko 特定-moz-border-radius-*
属性,如果支持的话,那就太好了。
对 webkit 支持的检查如下所示:
var webkitAvailable = false;
try {
webkitAvailable = (document.defaultView.getComputedStyle(this[0], null)['-webkit-border-radius'] != undefined);
}
catch(err) {}
然而,这并没有奏效,-moz-border-radius
所以我开始寻找替代品。
我的后备解决方案当然是使用浏览器检测,但这与推荐的做法相去甚远。
我最好的解决方案如下。
var mozborderAvailable = false;
try {
var o = jQuery('<div>').css('-moz-border-radius', '1px');
mozborderAvailable = $(o).css('-moz-border-radius-topleft') == '1px';
o = null;
} catch(err) {}
它基于 Gecko 将复合 -moz-border-radius “扩展”到四个子属性的理论
-moz-border-radius-topleft
-moz-border-radius-topright
-moz-border-radius-bottomleft
-moz-border-radius-bottomright
是否有任何 javascript/CSS 大师有更好的解决方案?
(此页面的功能请求位于http://plugins.jquery.com/node/3619)