我们知道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. 微信小程序之页面之间传递值

    页面之间传值有三种方式 1.url传值 2.本地存储传值 3.全局变量传值 1.url传值: 通过url传值的需要通过option来获取参数值. 更多详情可以访问小程序-navigateTo章节. A ...

  2. 如何在Qt Creator 创建一个.pri文件

    如何在Qt Creator 创建一个.pri文件 2013年10月09日 ⁄ 综合 ⁄ 共 254字 ⁄ 字号 小 中 大 ⁄ 评论关闭   这个问题很少人写,因为比较简单,但是让却让我花了好大功夫才 ...

  3. LeetCode记录之35——Search Insert Position

    这道题难度较低,没有必要作说明. Given a sorted array and a target value, return the index if the target is found. I ...

  4. CDQZ Day1

    #include<cassert> #include<cstdio> #include<vector> using namespace std; ,maxt=,ma ...

  5. C# 关于Grid下动态删除行列的操作

    假设我们有以下布局 <Grid x:Name="Grid" ShowGridLines="True"> <Grid.RowDefinition ...

  6. [原创]Aop之使用Autofac+Castle 自动注入服务且动态代理服务实现拦截(非MVC控制器拦截)

    public static class AutofacComponentManualRegister { /// <summary> /// 注册 /// </summary> ...

  7. Apache Shiro(六)-基于URL配置权限

    数据库 先准备数据库啦. DROP DATABASE IF EXISTS shiro; CREATE DATABASE shiro DEFAULT CHARACTER SET utf8; USE sh ...

  8. Oracle的pipelined函数实现高性能大数据处理

    从Oracle 8开始,我们就可以从一个collection类型的数据集合中查询出数据,这个集合称之为"虚拟表".它的方法是"SELECT FROM TABLE(CAST ...

  9. nginx-图片资源代理

    location ~ .*\.(gif|jpg|jpeg|png|bmp|mp3)$ { root E:/xx/Uploads/; } 记得放在根目录下面

  10. java将list<T>导出为xls文件

    一.action层 /** * 导出list */ @SuppressWarnings("unchecked") public void exportBatch() { reque ...