分享:

CSS3圆角技术能十分好的丑化你的页面成果,而且防止了应用图片辅助,一则省去了制作图片的工夫,二则省去了浏览器加载图片造成的提早和带宽。现在,这种利用CSS制作圆角的技术曾经失去了大多数支流浏览器的反对,包含Safari,谷歌浏览器,IE,Opera和火狐浏览器。上面让咱们来看看border-radius的语法,解释,以及IE是如何反对它的。

语法和阐明

在CSS3中用来生成圆角成果的属性是border-radius.这个属性跟大家熟知的width等属性的用法类似:

.roundElement    {    border-radius: 10px;}

下面的这句代码的作用是设置一个元素的四个角的弧度半径值都为10px。你也能够对每个角独自指定:

.pearElement    {    border-top-left-radius: 7px;    border-top-right-radius: 5px;    border-bottom-right-radius: 6px;    border-bottom-left-radius: 8px;}

如果你感觉下面的写法太简单,能够应用上面border-radius简写的办法:

oddRoundElement {    border-radius: 12px 5px 12px 5px;    /* or */    border-radius: 12px 5px;}

四个值别离代表的是top-left, top-right, bottom-right, bottom-left四个角。

各浏览器对border-radius的反对

因为这种圆角技术是CSS3里呈现的,老式浏览器或较晚期的浏览器中用到这个属性时须要在CSS里增加浏览器引擎前缀(vendor prefixes)。会是{prefix}-border-radius这样一个样子,而具体各种浏览器引擎前缀是上面这样的写法:

-moz-border-radius: 20px;-webkit-border-radius: 20px;-o-border-radius: 20px;/* 火狐浏览器 */-moz-border-radius-topleft:15px; /* top left corner */-moz-border-radius-topright:50px; /* top right corner */-moz-border-radius-bottomleft:15px; /* bottom left corner */-moz-border-radius-bottomright:50px; /* bottom right corner */-moz-border-radius:10px 15px 15px 10px;  /* shorthand topleft topright bottomright bottomleft *//* webkit引擎的浏览器 */-webkit-border-top-left-radius:15px; /* top left corner */-webkit-border-top-right-radius:50px; /* top right corner */-webkit-border-bottom-left-radius:15px; /* bottom left corner */-webkit-border-bottom-right-radius:50px; /* bottom right corner */</pre>

基本上,你须要对每种浏览器引擎做各自的申明,加上这些厌恶的略微不同的代码来保障齐全反对border-radius。然而,如果你应用的是最新版的浏览器,包含火狐、谷歌、IE等,你不须要应用这些前缀,因为这个技术曾经很成熟,在各种最新版的浏览器里曾经受到了广泛反对。

让IE反对border-radius

直到IE9才有对border-radius属性的反对,置信很多Web开发人员和Web利用设计人员都很丧气。在IE9里,最重要的一个点是应用edge META 标记:

meta http-equiv="X-UA-Compatible" content="IE=edge" /><style>border-top-right-radius: 7px;border-top-left-radius: 7px;border-bottom-right-radius: 2px;border-bottom-left-radius: 2px;</style>

如果你的IE比拟老,不反对border-radius,有很多其它的技术能够补救这个缺点,我遇到过的最好的一个解决办法是应用一个很小的JavaScript程序包,叫做CurvyCorners。这个CurvyCorners用javaScript动静的生成很多div标记,用这些div标记来绘出圆角成果,甚至反对打消锯齿性能。

CurvyCorners的用法很简略。第一步是在页面中引入CurvyCorners.js脚本:

<!-- SIMPLY INCLUDE THE JS FILE! --><script type="text/javascript" src="curvy.corners.trunk.js"></script>

CurvyCorners会在DOM元素里寻找具备border-radius属性的元素,而后顺次给它们制作出圆角成果。不须要辅助图片。你甚至能够设置指定元素的弧度半径:

var settings = {    tl: { radius: 12 },    tr: { radius: 12 },    bl: { radius: 12 },    br: { radius: 12 },    antiAlias: true};/* moooo */$('.round').each(function(rd) {  curvyCorners(settings,rd);});

我强烈建议你应该指定须要应用圆角的元素,因为让脚本搜寻整个页面来寻找须要圆角解决的元素是一个很耗CPU的过程,而且这个过程是每个页面加载时都会执行。

根本的所有浏览器都反对CSSborder-radius属性,包含IE,火狐,Safari,谷歌浏览器和Opera。这个小小的性能能让你的页面体现出齐全别样的成果。