关闭

CSS3圆角详解

标签: cssfirefox浏览器safarichromeopera
1945人阅读 评论(0) 收藏 举报

作者: 阮一峰

日期: 2010年12月 9日

CSS3是样式表(style sheet)语言的最新版本,它的一大优点就是支持圆角。

网页设计大师Nicholas Zakas最新文章,清晰易懂地解释了CSS3圆角的各个方面,非常值得学习。以下就是我翻译的中文版。

=========================================

CSS3圆角详解

作者:Nicholas Zakas

译者:阮一峰

原文:http://msdn.microsoft.com/en-us/scriptjunkie/gg508841.aspx

发表日期:2010年12月8日


一、CSS3圆角的优点

传统的圆角生成方案,必须使用多张图片作为背景图案。CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,而且还有其他多个优点:

  * 减少维护的工作量。图片文件的生成、更新、编写网页代码,这些工作都不再需要了。

  * 提高网页性能。由于不必再发出多余的HTTP请求,网页的载入速度将变快。

  * 增加视觉可靠性。某些情况下(网络拥堵、服务器出错、网速过慢等等),背景图片会下载失败,导致视觉效果不佳。CSS3就不会发生这种情况。

二、border-radius属性

CSS3圆角只需设置一个属性:border-radius(含义是"边框半径")。你为这个属性提供一个值,就能同时设置四个圆角的半径。所有合法的CSS度量值都可以使用:em、ex、pt、px、百分比等等。

比如,下面是一个div方框:

现在设置它的圆角半径为15px:

  border-radius: 15px;

这条语句同时将每个圆角的"水平半径"(horizontal radius)和"垂直半径"(vertical radius)都设置为15px。

border-radius可以同时设置1到4个值。如果设置1个值,表示4个圆角都使用这个值。如果设置两个值,表示左上角和右下角使用第一个值,右上角和左下角使用第二个值。如果设置三个值,表示左上角使用第一个值,右上角和左下角使用第二个值,右下角使用第三个值。如果设置四个值,则依次对应左上角、右上角、右下角、左下角(顺时针顺序)。

  border-radius: 15px 5px;

  border-radius: 15px 5px 25px;

  border-radius: 15px 5px 25px 0px;

(左下角的半径为0,就变成直角了。)

border-radius还可以用斜杠设置第二组值。这时,第一组值表示水平半径,第二组值表示垂直半径。第二组值也可以同时设置1到4个值,应用规则与第一组值相同。

  border-radius: 15px 5px / 3px;

  border-radius: 15px 5px 25px / 3px 5px;

  border-radius: 15px 5px 25px 5px / 3px 5px 10px 15px;

三、单个圆角的设置

除了同时设置四个圆角以外,还可以单独对每个角进行设置。对应四个角,CSS3提供四个单独的属性:

  * border-top-left-radius
  * border-top-right-radius
  * border-bottom-right-radius
  * border-bottom-left-radius

这四个属性都可以同时设置1到2个值。如果设置1个值,表示水平半径与垂直半径相等。如果设置2个值,第一个值表示水平半径,第二个值表示垂直半径。

  border-top-left-radius: 15px;

  border-top-left-radius: 15px 5px;

四、浏览器支持

IE 9、Opera 10.5、Safari 5、Chrome 4和Firefox 4,都支持上述的border-radius属性。早期版本的Safari和Chrome,支持-webkit-border-radius属性,早期版本的Firefox支持-moz-border-radius属性。

目前来看,为了保证兼容性,只需同时设置-moz-border-radius和border-radius即可。

  -moz-border-radius: 15px;
  border-radius: 15px;

(注意:border-radius必须放在最后声明,否则可能会失效。)

另外,早期版本Firefox的单个圆角的语句,与标准语法略有不同。

  * -moz-border-radius-topleft(标准语法:border-top-left-radius)
  * -moz-border-radius-topright(标准语法:border-top-right-radius)
  * -moz-border-radius-bottomleft(标准语法:border-bottom-left-radius)
  * -moz-border-radius-bottomright(标准语法:border-bottom-right-radius)

五、注意事项

虽然各大浏览器都支持border-radius,但是在某些细节上,实现都不一样。当四个角的颜色、宽度、风格(实线框、虚线框等)、单位都相同时,所有浏览器的渲染结果基本一致;一旦四个角的设置不相同,就会出现很大的差异。比如,下面这段代码在不同的浏览器中,渲染结果就相差很大。

  border-color: black;
  border-style: solid dashed;
  border-width: 1px 2px 3px;
  border-top-color: red;
  border-radius: 5%;

另外,并非所有浏览器,都支持将圆角半径设为一个百分比值。

因此,目前最安全的做法,就是将每个圆角边框的风格和宽度,都设为一样的值,并且避免使用百分比值。

(完)

0
0
查看评论

无需图片,使用CSS3实现圆角按钮[转]

首先来看看效果:   事例HTML代码: a href="#" class="button green">buttona> a href="#" class="button blue&quo...
  • xiongnanbin
  • xiongnanbin
  • 2014-04-27 12:43
  • 597

CSS3圆角

div{ width:100px; height:100px; border:2px red solid; } div:nth-of-type(1){/*:nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素.*/ border-r...
  • luman1991
  • luman1991
  • 2017-01-30 16:25
  • 93

CSS3黑科技 - 内凹圆角

CSS3 黑科技 - 内凹圆角 - 径向渐变实现圆角,大家一定都会做,border-radius, 内凹圆角如何实现?可以拿个白色圆盒子盖住方形盒子的大半边实现,但是这样,是不透明的,背景发生改变时,就要改遮盖盒子的颜色,或者背景是渐变,改起来更麻烦,或背景是图片等等,就直接不太好改了,这种方法就有...
  • qq_16415157
  • qq_16415157
  • 2016-10-14 21:02
  • 4591

让IE9以下的浏览器支持圆角及CSS3新特性

在网上有同学问我:如何在IE9以下版本的浏览器支持圆角的特性。为了让大家在以后的工作中能够更快、更有效的解决这种问题,现在把一种最简单、最有效的解决方案总结给大家,希望能够帮助到你!【就两步搞定!】 第一步:下载一个重要的文件   ie-css3.htc,这种类型的文件只要IE...
  • lxcao
  • lxcao
  • 2016-11-16 22:01
  • 2320

CSS3 圆角和阴影效果

<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame Remove this if you use the .htaccess --> index ...
  • boonyaxnn
  • boonyaxnn
  • 2017-03-11 23:25
  • 189

CSS3 圆角详解

这篇文章是我在学习圆角的时候找到的,附上原文地址:点击打开链接~ CSS3圆角详解 作者:Nicholas Zakas 译者:阮一峰 原文:http://msdn.microsoft.com/en-us/scriptjunkie/gg508841.aspx 发表...
  • u012265444
  • u012265444
  • 2017-04-06 10:06
  • 215

CSS3圆角详解

http://www.ruanyifeng.com/blog/2010/12/detailed_explanation_of_css3_rounded_corners.html CSS3是样式表(style sheet)语言的最新版本,它的一大优点就是支持圆角。 网页设计大师Nich...
  • mituan1234567
  • mituan1234567
  • 2013-09-01 19:12
  • 366

css3-边框 圆角 阴影 等属性

右上——》右下--》左下*/-->
  • gyq04551
  • gyq04551
  • 2016-11-21 20:26
  • 174

CSS3圆角详解第一辑

有很多人都知道圆角怎么写,加一个border-radius就可以,但是对于用圆角的一些细节却并不是很清楚,那么我们今天就来聊一聊这个圆角。 CSS3是样式表(style sheet)语言的最新版本,它的一大优点就是支持圆角。 一.CSS3圆角的优点 在没有出现圆角属性之前,传统的制作圆角的...
  • qq_40041074
  • qq_40041074
  • 2017-12-28 16:45
  • 52

CSS3 圆角(border-radius)详解

CSS3 经典教程系列:CSS3 圆角(border-radius)详解   《CSS3 入门教程系列》前一篇文章详细介绍了 CSS3 RGBA 特性的用法,今天这篇文章我们在一起来看看 CSS3 中用于实现圆角效果的 bord...
  • pingguonjb
  • pingguonjb
  • 2014-10-26 12:22
  • 316
    个人资料
    • 访问:6375839次
    • 积分:61344
    • 等级:
    • 排名:第52名
    • 原创:333篇
    • 转载:1720篇
    • 译文:19篇
    • 评论:178条
    博客专栏
    网上乐园
    最新评论