CSS3 (border-radius)深度探析
border-radius
为元素添加圆角边框
<div class = "demo"></div>
.demo{
width:100px;
height:100px;
background-color:red;
border-radius:50%;
}

50%???设置的是哪???
还记得在css中margin属性,如下:
margin:10px;
展开来:margin-top:10px;
margin-right:10px;
margin-bottom:10px;
margin-left:10px;
相似的还有padding\border等
Border-radius也是其中一类
50%--> border-top-left-radius:50%; /*上左角*/
border-top-right-radius:50%; /*上右角*/
border-bottom-right:50%; /*下右角*/
border-bottom-left:50%; /*下左角*/
/*要注意定义的顺序:上左、上右、下右、下左,我们习惯于说左上右上右下坐下,但是border-radius属性表示的时候先说明上下,在说明左右*/
四类情况
1.order-radius:50% 0 0 0 ;

还没有明白的话,下图:
左50px;竖直方向50px为圆心50px为半径画圆,与左上角的重叠部分

2.border-radius:0 50px 0 0;

3.border-radius: 0 0 50px 0;
4.border-radius: 0 0 0 50%;
以上实例就能说明50%设置的底层原理,以所在位置为起点,以水平50%/50px,垂直50%/50px的点为圆心,50%/50px为半径画圆。与原本div的起点的重叠部分。
那么这个圆是怎么画出来的呢?

当然不是直接在50%的位置以50%的长度画圆啦
是四个圆心画出来的四个圆与原来的div对应方向重叠成的圆
拓展问题
1.可以为负值吗?
圆的半径还有负值 ???
结论就是没有负值
2.boeder-radius的最大值是多少??? (width:100px;height:100px;backgeound-color:red;)
情况1> border-top-left-radius:100px ; /*100%*/

情况2> border-top-left-radius:150px;

width=height时 值最大为宽高值
那如果是长方形呢????
假如(width:200px;height:100px;background-color:red;)
情况1> 根据上述结论我们直接设置
border-top-left-radius:200px;

嗯 ~~~ 貌似是选取了width与height的较小一个值呢
情况2> 大胆一点两个值都设置
border-top-left-radius:200px 100px;

这个情况??补充一个小知识点:border-top-left-radius:x y;
nanana也就是x轴平移200px,y轴平移100px(由左往右)
情况3>更大胆一点
border-top-left-
radius:2000px 100px

当分开写的时候,最大值超过宽高的最大值,会按照比例,宽高的最大等比进行缩放
(当图片过大GPU渲染会发生偏差,可能不一样)
3.如果有border设置又是什么情况呢???
.demo{
width:100px;
height:100px;
border:20px solid blue;
background-color:red;
border-radius:20px 0 0 0 ;
}


idea来源于“渡一教育”
CSS3 (border-radius)深度探析的更多相关文章
- 中文分词工具探析(二):Jieba
1. 前言 Jieba是由fxsjy大神开源的一款中文分词工具,一款属于工业界的分词工具--模型易用简单.代码清晰可读,推荐有志学习NLP或Python的读一下源码.与采用分词模型Bigram + H ...
- 中文分词工具探析(一):ICTCLAS (NLPIR)
1. 前言 ICTCLAS是张华平在2000年推出的中文分词系统,于2009年更名为NLPIR.ICTCLAS是中文分词界元老级工具了,作者开放出了free版本的源代码(1.0整理版本在此). 作者在 ...
- 深入探析koa之中间件流程控制篇
koa被认为是第二代web后端开发框架,相比于前代express而言,其最大的特色无疑就是解决了回调金字塔的问题,让异步的写法更加的简洁.在使用koa的过程中,其实一直比较好奇koa内部的实现机理.最 ...
- Emmet 语法探析
Emmet 语法探析 Emmet(Zen Coding)是一个能大幅度提高前端开发效率的一个工具. 大多数编辑器都支持Snippet,即存储和重用一些代码块.但是前提是:你必须先定义 这些代码块. E ...
- 开源中文分词工具探析(三):Ansj
Ansj是由孙健(ansjsun)开源的一个中文分词器,为ICTLAS的Java版本,也采用了Bigram + HMM分词模型(可参考我之前写的文章):在Bigram分词的基础上,识别未登录词,以提高 ...
- 开源中文分词工具探析(四):THULAC
THULAC是一款相当不错的中文分词工具,准确率高.分词速度蛮快的:并且在工程上做了很多优化,比如:用DAT存储训练特征(压缩训练模型),加入了标点符号的特征(提高分词准确率)等. 1. 前言 THU ...
- 开源中文分词工具探析(五):FNLP
FNLP是由Fudan NLP实验室的邱锡鹏老师开源的一套Java写就的中文NLP工具包,提供诸如分词.词性标注.文本分类.依存句法分析等功能. [开源中文分词工具探析]系列: 中文分词工具探析(一) ...
- Erlang调度器细节探析
Erlang调度器细节探析 Erlang的很多基础特性使得它成为一个软实时的平台.其中包括垃圾回收机制,详细内容可以参见我的上一篇文章Erlang Garbage Collection Details ...
- 开源中文分词工具探析(五):Stanford CoreNLP
CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger).命名实体识别(named entity recognizer ...
随机推荐
- php array_pop()函数 语法
php array_pop()函数 语法 作用:删除数组中的最后一个元素.博智达 语法:array_pop(array) 参数: 参数 描述 array 必需.规定数组. 说明:返回数组的最后 ...
- 【bzoj2502】清理雪道
题目描述: 滑雪场坐落在FJ省西北部的若干座山上. 从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降的方向. 你的团队负责每周定时清理雪道.你们拥有一架直升 ...
- 1.Windows下安装nginx
1. 到nginx官网http://nginx.org/上下载相应的安装包 下载进行解压,将解压后的文件放到自己心仪的目录下,我的解压文件放在了d盘根目录下,如下图所示: 进入window的cm ...
- 大数据笔记(一)——Hadoop的起源与背景知识
一.大数据的5个特征(IBM提出): Volume(大量) Velocity(高速) Variety(多样) Value(价值) Varacity(真实性) 二.OLTP与OLAP 1.OLTP:联机 ...
- Python学习笔记(二)Sublime Text 3 安装Package Control
原来Subl3安装Package Control很麻烦,现在简单的方法来了 一.简单的安装方法 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码: ...
- laravel5.6 邮件队列database驱动简单demo
一: 邮件初始参数配置 配置 .env (demo示例是163邮箱,开启POP3和SMTP服务,获取授权密码) MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAI ...
- mui初级入门教程(六)— 模板页面实现原理及多端适配指南
文章来源:小青年原创发布时间:2016-07-26关键词:mui,webview,template,os,多端适配转载需标注本文原始地址: http://zhaomenghuan.github.io. ...
- c# 用DotNetZip来解压/压缩文件
//https://archive.codeplex.com/?p=dotnetzip //最新在Nuget 下载DotNetZip using Ionic.Zip; private void but ...
- mysql转化时间戳毫秒到秒
其实我感觉都不值得写一篇随笔的,但是呢,我就是想写 其实就是截取毫秒时间戳的前十位就是我们是秒时间戳啦 update 表 set 表字段 = substr(表字段,1,10) 好简单 嫌弃中
- git 还原、恢复、回退
通过git revert来实现线主干代码的回滚.如下命令 对于 merge类型的commit对象,还需要"-m"参数 git revert -m 1 commit-id 对于普通 ...