我们知道border-radius允许您为元素添加圆角边框!

而border-radius 属性是一个简写属性,用于设置四个 border-*-radius 属性。

如果省略 bottom-left,则与 top-right 相同。如果省略 bottom-right,则与 top-left 相同。如果省略 top-right,则与 top-left 相同。

先看个例子。

如果将有个正方形元素设置一个border-radius值为边长的一半,则可以得到一个圆形。

width: 200px;height: 200px;border-radius: 100px;background: brown;

效果图:

这里宽高是固定的且相等,如果宽高不相等则显示为一个椭圆。

宽高不等效果图:

自适应椭圆

由于根据实际情况出发,我们希望它能根据实际的内容自动调整并适应。

解决方案:

一个鲜为人知的秘密,border-radius可以单独设置水平和垂直的半径,只需要用一个斜杠(/)分隔这二个值就行。此外我们还要知道border-radius不仅可以接受长度值还可以接受百分比值。

width: 150px;height: 100px;border-radius: 50%/50%;    //简写属性:border-radius:50%
background: brown;

只需这一行简单的代码就可以完成自适应的椭圆了。很神奇吧。

半椭圆

我们知道border-radius是个简写属性,它得展开式:

border-top-left-radius

border-top-right-radius

border-bottom-right-radius

border-botom-left-radius

这四个字如上的顺序,从左上角开始顺时针应用到元素其他三个角上。

但是真正简介的写法还是使用border-radius这个简写属性,只需对应上面的规则,用空格分开多个值,也能达到展开式的效果。

如果只提供了三个值:1 2 3 则第4个值和第2个值相同。如果只提供了二个值:1 2 则1 3相同,2 4值相同。

我们甚至可以为四个角设置不同的水平和垂直半径,方法就是在斜杠前指定一到四个值,斜杠后指定一到四个值。

    width: 150px;height: 100px;border-radius:  50%/0 0 100% 100%;background: brown;

变换一下:

    width: 150px;height: 100px;border-radius:  50%/100% 100% 0 0;background: brown;

来一个小红帽:

    width: 150px;height: 100px;border-radius:  50%/50% 50% 0 0;background: brown;

    width: 150px;height: 100px;border-radius:   100% 0  0 100%/ 50%;background: brown;//沿着纵轴切开的椭圆

同理,可以得出:

    width: 150px;height: 100px;border-radius: 0  100% 100% 0/ 50%;background: brown;

四分之一的椭圆

那么,有办法得到四分之一椭圆呢?我们从效果图看出,创建一个四分之一的椭圆,只要一个角的水平和垂直半径值都需要是100%,

而其他三个角都不能设圆角。因为四个角的水平和垂直半径方向上是相同的,所以不需要用斜杠语法了。

所以

    width: 150px;height: 100px;border-radius:0 0 100% 0;background: brown;

效果如下:

css border-radius的用法及自适应的椭圆的更多相关文章

  1. CSS预处理器之SASS用法指南

    CSS预处理器之SASS用法指南 一.什么是SASS Sass是是一种基于ruby编写的CSS预处理器,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 诞生于200 ...

  2. CSS无序列实现表宽度自适应的表格

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 一个CSS中Z-index的用法

    一个CSS中Z-index的用法 CSS教程:彻底掌握Z-index属性     大多数的CSS属性都很容易使用.常常,当您对标记语言的元素使用CSS属性时,产生的结果会随着您刷新页面而立即呈现.而另 ...

  4. CSS选择器的新用法

    前面的话 现在,预处理器(如sass)似乎已经成为开发CSS的标配,正如几年前jQuery是开发JS的标配一样.JS的querySelector借鉴了jQuery的选择器思想,CSS选择器也借鉴了预处 ...

  5. CSS border三角、圆角图形生成技术简介

    http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题, ...

  6. css before after基本用法【转】

    <HTML><HEAD> <meta http-equiv="content-Type"content="text/html;charset ...

  7. CSS border边框属性教程(color style)

    CSS 边框即CSS border-border边框样式颜色.边框样式.边框宽度的语法结构与应用案例教程篇 一.CSS 边框基础知识 CSS 边框即CSS border是控制对象的边框边线宽度.颜色. ...

  8. css border

    CSS border用于设置HTML元素(如div)的边框,包括边框的宽度.颜色和样式.本文章向码农介绍CSS border边框属性详细内容,感兴趣的码农可以参考一下. CSS 边框即CSS bord ...

  9. CSS学习笔记(9)--详解CSS中:nth-child的用法

    详解CSS中:nth-child的用法 前端的哥们想必都接触过css中一个神奇的玩意,可以轻松选取你想要的标签并给与修改添加样式,是不是很给力,它就是“:nth-child”. 下面我将用几个典型的实 ...

随机推荐

  1. docker下ubutun没有ifconfig命令问题

    解决: apt-get update #更新apt-get apt install net-tools       # ifconfig apt install iputils-ping     # ...

  2. POJ_2478 Farey Sequence 【欧拉函数+简单递推】

    一.题目 The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbe ...

  3. CodeForces - 1110C-Meaningless Operation(打表找规律)

    Can the greatest common divisor and bitwise operations have anything in common? It is time to answer ...

  4. SPOJ - FAVDICE 简单期望

    dp[0]=0; // rep(i,1,n) dp[i]=(double)(n-i)/n*dp[i-1]+1+(double)(i)/n*dp[i]; // (n-i)/n dp[i]= n-i / ...

  5. js 方法总结

    1. 格式化时间 function format(str,fmt) { var usedDate = new Date(usedDay); var o = { "M+": used ...

  6. 【网络】访问控制列表(ACL)

    目的:172.16.12.1可以telnet到172.16.12.254,但是无法ping通172.16.12.254 Router0配置: 配置enable密码(必须,否则无法进入特权模式): r1 ...

  7. telnet出现Connection closed by foreign host

    2018-10-26 执行命令: telnet smtp.exmail.qq.com 出现信息: [root@pengman Desktop]# telnet Tring Connected to 1 ...

  8. PIE SDK打开静止卫星数据

    1. 功能简介 静止卫星是位于地球赤道上空约3.58万km处,与地面始终保持相对静止的卫星,静止卫星的特点是覆盖区域广,具有很强的机动灵活性,能够对特定区域进行分钟级高重复观测,可快速监测灾害目标的动 ...

  9. java se系列(二) 关键字、注释、常量、进制转换、变量、数据类型转换、运算符

    1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 1.2 常见的关键字 备注 ...

  10. oracle 查看一个表中的记录是否被锁住

    SELECT a.object_id, a.session_id, b.object_nameFROM v$locked_object a, dba_objects bWHERE a.object_i ...