CSS3 border-radius属性与多种圆角效果

border-radius 属性是一个简写属性,用于设置四个 border-*-radius 属性。该属性允许为元素添加圆角边框!

语法:border-radius: 1-4 length|% / 1-4 length|%
/分隔的分别是:水平半径和垂直半径
*注释:每个半径的四个值的顺序是:左上角,右上角,右下角,左下角。
如果只设置三个值,则意味着第四个值与第二个值相同(即左下角与右上角相同);如果只设置两个值,则意味着第三个值与第一个值相同(即右下角与左上角相同)。

当我们为四个角都设置为相同的值30px的时候,可以简写为border-radius:30px

  background-color:#ace;
  width:200px;
  height:200px;
  border-top-left-radius:30px;
  border-top-right-radius:30px;
  border-bottom-right-radius:30px;
  border-bottom-left-radius:30px;

等于

  background-color:#ace;
  width:200px;
  height:200px;
  border-radius:30px;

给四个角分别设置不同的半径值,则可以得到不同的形状:


圆形

当我们给任意一个正方形设置足够大的border-radius就可以把它变成一个圆形。

background-color:#FFF;
width:200px;
height:200px;
border-radius:100px;

实际上,如果圆角设置的长度值大于100px,仍然可以得到一个圆形。规范中指出了其中的原因:

“当任意两个相邻圆角的半径之和超过border-box的尺寸时,用户代理必须按比例减小各个边框半径所使用的值,直到它们不会相互重复为止。”

椭圆

border-radius可以单独指定水平和垂直半径,只要用/分隔两个值即可。
因此,一个200px宽 x 100px高的矩形,只要把圆角的两个半径值分别指定为元素宽高的一半,就能得到一个精准的椭圆:

background-color:#ace;
width:200px;
height:100px;
border-radius:100px/50px;

自适应椭圆

当元素的尺寸随着内容的变化而变化时,我们会希望圆角也能随着一起变化,否则的话,这个椭圆将会变形。
所以要设置一个自适应的椭圆,我们需要用到border-radius的百分比值。

这个百分比值会基于元素的尺寸进行解析,即宽度用于水平半径的解析,高度用于垂直半径的解析。这意味着相同的百分比可能会计算出不同的水平和垂直半径。
因此要创建一个自适应的椭圆,可以把这两个半径值都设置为50%。

即:

border-radius: 50% / 50%;

等同于:

border-radius: 50%;

最终,只需要这一行代码,就可以得到一个自适应的椭圆或者正圆了。

半圆

利用border-radius属性可以画出一个标准的半圆。

  • 首先,它是垂直对称的,这意味着 左上角右上角的半径值应该是相同的;左下角右下角也应该是相同的。
  • 顶部边缘没有平直的线条,整个顶部都是曲线。这意味着左上角右上角的半径之和等于整个形状的宽度。
  • 左半径和右半径在水平方向上的值均是50%;底部完全没有圆角,底部的两个角的水平圆角值是多少就不重要了,因为此时水平圆角总是会被计算为0。
  • 顶部的两个圆角占据了整个元素的高度,底部完全没有圆角,因此,在垂直方向上,合理值应该是:100% 100% 0 0 ;

它们的代码可以简写成:

  background-color:#ace;
  width:200px;
  height:100px;
  border-radius: 50%  / 100% 100% 0 0 

半椭圆
如果此时画一个半椭圆是不是更简单了呢?只要元素的高度大于宽度的1/2就好了:

  background-color:#ace;
  width:200px;
  height:150px;
  border-radius: 50%  / 100% 100% 0 0 

那么画一个在水平方向上对称的半圆也是同样的道理:

  background-color:#ace;
  width:200px;
  height:150px;
  border-radius: 100% 0 0 100%  / 50%

四分之一圆

要创建一个十分之一圆,那么其中有一个角它的水平和垂直半径值都要是100%,而其他三个角不能设置圆角。由于这四个角它们的水平和垂直半径值都是相等的,所以不需要写斜杠和后面的数值了。

background-color:#ace;
width:200px;
height:150px;
border-radius: 100% 0 0 0

*圆角加上阴影可以写出很多button的效果。


参考书籍:Lea Verou《CSS揭秘》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容

  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,610评论 0 7
  • CSS3里border边框属性做了大幅扩展,广受欢迎的就是border-image和border-radius。本...
    张歆琳阅读 3,854评论 3 20
  • 【读经】 伯8章 【金句】 “请你考问前代,追念他们的列祖所查究的。 (约伯记 8:8 和合本) 【感动】 这节经...
    chanor阅读 160评论 0 0
  • 面对面交易适用于短距离交易或者熟人交易;交易前提是买家卖家用户线下交易细节包括购买什么蛋,蛋码,买多少,一件多少钱...
    李先生别来无恙阅读 844评论 0 0