zoukankan      html  css  js  c++  java
  • CSS3属性BorderRadius详解[圆角]

    qdgcs.co.cc前端攻城记又一讲。

    上一次我们了解了css3的属性animation,这次我们回头看一下Border-Radius这个属性,这个属性目前被各大浏览器广泛支持,属于一个基本普及的属性。

    支持情况如下:

    下面我们来看一下它的使用方法

    [css]

    /*语法:border-radius : none | <length>{1,4} [/ <length>{1,4} ]? <length>: 由浮点数字和单位标识符组成的长度值。不可为负值。*/
    .p1
    {
    border-radius: 15px;/*它的是border-radius: 15px/15px;的省略*/
    }

    [/css]

    其实以上包括注释都还是border-radius的缩写方法。如果“/”前后的值都存在,那么“/”前面的值设置其水平半径,“/”后面值设置其垂直半径。如果没有“/”,则水平和垂直半径相等。另外其四个值是按照top-left、top-right、bottom-right、bottom-left的顺序来设置的其主要会有下面几种情形出现:

    1、border-radius: [ <length>{1,4} ]; //这里只有一个值,那么top-left、top-right、bottom-right、bottom-left四个值相等

    2、border-radius:[ <length>{1,4} ]  [ <length>{1,4} ] ; //这里设置两个值,那么top-left等于bottom-right,并且取第一个值;top-right等于bottom-left,并且取第二个值

    3、border-radius:[ <length>{1,4} ]   [ <length>{1,4} ]   [ <length>{1,4} ];//如果有三个值,其中第一个值是设置top-left;而第二个值是top-right和bottom-left并且他们会相等,第三个值是设置bottom-right

    4、border-radius:[ <length>{1,4} ]   [ <length>{1,4} ]  [ <length>{1,4} ]   [ <length>{1,4} ];//如果有四个值,其中第一个值是设置top-left;而第二个值是top-right,第三个值bottom-right,第四个值是设置bottom-left

    现在我们来看一下更完整的写法,其实border-radius和border属性一样,还可以把各个角单独拆分出来,他们都是先Y轴在X轴,具体看下面:

    border{

    border-top-left-radius: <length>  <length> /*左上角*/
    border-top-right-radius: <length>  <length> /*右上角*/
    border-bottom-right-radius:<length>  <length> /*右下角*/
    border-bottom-left-radius:<length>  <length> /*左下角*/
    }

    这里说一下,各角拆分出来取值方式:<length> <length>中第一个值是圆角水平半径,第二个值是垂直半径,如果第二个值省略,那么其等于第一个值,这时这个角就是一个四分之一的圆角,如果任意一个值为0,那么这个角就不是圆角。请看图示:

    我们来看一下综合写法

    [css]

    .demo { border-radius: 10px 15px 20px 30px / 20px 30px 10px 15px; }
    /*这个等同于*/
    .demo {
    border-top-left-radius: 10px 20px;
    border-top-right-radius: 15px 30px;
    border-bottom-right-radius: 20px 10px;
    border-bottom-left-radius: 30px 15px;
    }
    /*由此我们可以看到他们的对应关系*/

    [/css]

    这个例子的效果如图:

    对于border-radius还有一个内半径和外半径的区别,它主要是元素 边框值较大时,效果就很明显,当我们border-radius半径值小于或等于border的厚度时,我们边框内部就不具有圆角效果,例如下面的实例

    .border-big { border: 15px solid green; border-radius: 15px; }

    效果:

    我们接着上面这个例子,把 border-radius半径值改成比边框值大一点:

    .border-small { border: 15px solid green; border-radius: 25px; }

    效果:

    为何当border-radius的半径小于元素边框的厚度时,内部没有圆角效果?我在这里说一下,因为我们的border-radius的内径值是等于外径值减去边框厚度值,当他们的值为负时,内径默认为0,最前面讲border-radius取值时就说过其值不能为负值。同时也说明border-radius的内外曲线的圆心并不一定是一致的。只有当边框厚度为0时,我们内外曲线的圆心才会在同一位置。

    最后我们来说一下利用border-radius画一个圆,代码如下:

    [css]

    /*圆形*/
    .p3
    {
    100px;
    height: 100px;
    border: 2px solid orange;
    /*比例知识:当宽高相等,border-radius属性设置为它们的一半市,我们就得到了一个圆形*/
    border-radius:50px;
    }

    [/css]

    最后我们看一下本章出现的部分实例 DEMO实例

    最后感谢大家阅读,转载烦请注明出处 qdgcs.co.cc前端攻城记

  • 相关阅读:
    node js的模块
    前端学习ES6
    产品相关
    linux命令
    【jmeter】对于返回结果中文显示?问题
    MAC 本用pip3命令安装openpyxl插件(或者其他插件)后,在Pycharm依然找不到
    pip3版本已经是最新,安装openxl失败,Could not find a version that satisfies the requirement openxl
    MAC本安装python3.8后,pip3命令无法更新问题
    mac安装python环境
    nodejs安装步骤
  • 原文地址:https://www.cnblogs.com/babyisun/p/2413545.html
Copyright © 2011-2022 走看看