「Border-radius」的八个值

知识往往随时间淡忘,沉心在开发中时间长了,发现好些知识已经又模糊了,一些很好用的属性,其本身就有,却忘了,然后绕个大圈子自己实现了一套,究其原因,还是因为一开始没有掌握牢固和透彻

# 都知道是圆角

border-radius 属性是一个简写属性,用于设置四个 border-*-radius 属性。他用于向 block 级别元素增加圆角

语法
border-radius: 1-4 length|% / 1-4 length|%;

按此顺序设置每个 radii 的四个值。如果省略 bottom-left,则与 top-right 相同。如果省略 bottom-right,则与 top-left 相同。

# 实现一个圆

  在不使用 canvassvg 的情况下,用 border-radius 就能简单实现一个圆

<div>
   <p></p>
</div>
div {
  width: 100px;
  height: 100px;
}

p {
  width: 100%;
  height: 100%;
  background: lightgreen;
  border-radius: 50&;
}


  为什么定义一层 '多余' 的 <div> ? 居然说我多余,不解释,自己理解去。╭(╯^╰)╮

# 实现一个圆环

  给圆加一个边框,然后不绘制圆的背景颜色就好了?是的,就是这样

p {
  width: 100%;
  height: 100%;
  border: solid 3px lightgreen;
  border-radius: 50%;
}

什么?你觉得这样宽度超出了原本的宽度?你怎么辣么多问题呢!我想婧婧

box-sizing: border-box;   // 规定元素的宽高包含了元素边框的大小

将上述样式加入到p的样式中,唉,瘦了一圈,好神奇

给p元素增加box-sizing属性

# 实现一个 半圆

  砍掉一半就好了,不过这时候就不能用 border-radius 的简写形式了

p {
  width: 100%;
  height: 50%;
  background-color: lightgreen;
  border-top-left-radius: 50px;
  border-top-right-radius: 50px;
}

# 实现一个 小房子 ?

  上方一个半圆,下方一个“半方”

p {
  width: 100%;
  height: 100%;
  border: solid 6px lightgreen;
  box-sizing: border-box;
  border-top-left-radius: 50%;
  border-top-right-radius: 50%;
}

好吧,他更像一个窗户

# 认真点好吧,说好的八个值呢?

如果我们想写一个能直接调用的具有自适应功能的半圆,假如我们直接改成百分比,如下

p {
  width: 100%;
  height: 50%;
  background: lightgreen;
  border-top-left-radius: 50%;
  border-top-right-radius: 50%;
}

这是什么东西,感觉和上面那个房子好像啊,难道是设置50%不行?试试100%?

  border-top-left-radius: 100%;
  border-top-right-radius: 100%;

我去,怎么还是和上面的一样?先设置一个试试?

 border-top-left-radius: 100%;
/*   border-top-right-radius: 100%; */


这是什么鬼,等等,想想,设置了border-top-left-radius: 100%; 也就是说,圆角按边长的100%来设置,长和宽不一样的情况下,圆角的两侧依然严格按边长来设置,难道可以写两个值? 如果我这么写呢?

border-top-left-radius: 50% 100%;
/*   border-top-right-radius: 100%; */


咦,居然不报错,真的可以这么写啊!可是谁先谁后呢?左边和上边谁的优先级高呢?唉,border的定义顺序有奥秘,居然是先 topleft,对的,果然是先上边再左边。依照这个规律,增加上右角效果呢?

border-top-left-radius: 50% 100%;
border-top-right-radius: 50% 100%;

半圆实现了!那如果我想简写呢?这样?

border-radius: 50% 100% 0 0;

我去,怎么又坏了,怎么办怎么办! 唉,不对,我这么写的话相当于是:

border-top-left-radius: 50%;
border-top-right-radius: 100%;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;

这明显不对啊,难道简写的时候一条边只能设置一个值?感觉不科学啊!

再看看定义?中间那个斜杠是什么鬼,难道!!!

border-radius: 50% 50% 0 0 / 100% 100% 0 0;

哇哦,实现了。祝大家大吉大利新年快乐新婚快乐吉祥如意撒花~

# 拓展

  1. IE 的标签页卡片
p {
  width: 100%;
  height: 50%;
  background: lightgreen;
  border-radius: 25% 25% 0 0 / 50% 50% 0 0;
}
  1. google 的标签页卡片
    对不起,实现不了,为什么?你咋又辣么多问题呢!
    因为border-radius是实现圆角的属性,无法实现梯形绝对角度效果,这里补充一下怎么实现梯形
p {
  height: 0;
  width: 100px;
  border-bottom: 50px solid lightgreen;
  border-left: 25px solid transparent;
  border-right: 25px solid transparent; 
}
  1. 对角圆角
p {
  width: 100%;
  height: 50%;
  background: lightgreen;
  border-radius: 100% 50%/ 0 100%;
}
  1. 一片叶子
p {
  width: 100%;
  height: 50%;
  background: lightgreen;
  border-radius: 0 100% / 0 100%;
}

# 推荐一个测试网页

来自张鑫旭大牛的测试工具 圆角效果测试

# 后语

  利用border-radius的八个值进行调节,还能得到很多的漂亮的图形,如果有兴趣,欢迎交流一起进步。另外,我的下一篇文章【利用简单的css实现各种漂亮的形状】,如果觉得我的写作对您有帮助,欢迎关注哦。

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

推荐阅读更多精彩内容

  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,509评论 0 8
  • 原文地址http://www.mark.ah.cn 定义 简写属性是可以让你同时设置其他几个 CSS 属性值的 C...
    markahcn阅读 1,125评论 0 1
  • 文章摘要:1、BOOT_COMPLETED在ActivityManagerService中由系统发送。2、应用可以...
    Android那些事儿阅读 47,815评论 2 56
  • 今天的这节课是全电路欧姆定律的第二节课,但是由于上节课中有几个学生外出没有上,同时上节课同学们掌握的情况不是很好,...
    无名之米8阅读 421评论 0 0