CSS的边框

属性:border-styleborder-widthborder-color

写法:
分开写:E {border-style: solid;border-width: 1px;border-color: alicebule;}
合并写:E {border: 1px solid alicebule;}

注意:

  • border-style是必须属性,其他顺序可以打乱写

  • 如果设定 border:none,浏览器自动解析为border-style:none

  • 边框大小即border-width默认为medium

css3新增:
border-colorborder-imageborder-radius

CSS3:border-color

在css2中,我们可以运用border-color属性给元素的边框整体或者每一条边框上色,但是每条边框最多只能使用一种颜色。

而css3改进的border-color属性为我们提供了同一条边框设置多种颜色(比如说给边框添加一个渐变色,或者说一个彩色)的途径。不过到目前为止只有Firefox 3.0+的浏览支持这个属性。也是因为这一点,css3的border-color应用是相当的少。

上文提到过,css3border-color只有FF支持,故运用或测试时我们需要加上-moz-前缀。

用法:

.box{border:5px solid transparent;-moz-border-top-colors:<color1> <color2> <color3> <color4> <color5>;-moz-border-right-colors:<color1> <color2> <color3> <color4> <color5>;-moz-border-bottom-colors:<color1> <color2> <color3> <color4> <color5>;-moz-border-left-colors:<color1> <color2> <color3> <color4> <color5>;
}

我们这时给每一条边框都设置了5种颜色,且都占据着5px的宽度。这个时候每种颜色的border-width为1px。事实上,如果我们边框设置了x个像素的宽度,并且为每条边框设置了y种颜色,若x>y,则前y-1种颜色每种占据了1px,最后一种颜色占据x-y+1个像素。

实例:立体渐变效果

.box {width: 200px;height: 100px;border: 10px solid transparent;border-radius: 15px 0 15px 0;-moz-border-top-colors:#a0a #909 #808 #707 #606 #505 #404 #303;-moz-border-right-colors:#a0a #909 #808 #707 #606 #505 #404 #303;-moz-border-bottom-colors:#a0a #909 #808 #707 #606 #505 #404 #303;-moz-border-left-colors:#a0a #909 #808 #707 #606 #505 #404 #303;}

效果:

CSS3:border-radius

border-radius相信很多前端ers都很熟悉了,就是元素圆角效果。这个属性兼容了ie9+以及其他主流现代浏览器。

基本写法:

  • 设置统一半径的圆角:border-radius:<length>

  • 设置多个半径的圆角: border-radius:<top-left> <top-right> <bottom-right> <bottom-left>

  • 设置水平垂直半径不统一的圆角:border-radius:<horizontal-length> / <vertical-length>

  • 分开设置:

    border-top-left-radius:<length> / <length>
    border-top-right-radius:<length> / <length>
    border-bottom-left-radius:<length> / <length>
    border-bottom-left-radius:<length> / <length>

    为兼容其他老版本的的浏览器,需要为其加上前缀,并且写法有点区别:

    FF:-moz-border-radius-topleft
    Chrome:-webkit-border-top-left-radius

    图解CSS3中提到webkit内核浏览器下图片没有圆角效果,经过测试(基于当前本人的chrome 44+的版本)webkit内核较新版本的浏览器已经修正了这个问题。如下图

Chrome下:

FF下:

border-radius还可以做出如圆、半圆、四分之一圆、椭圆的效果:

  • 圆:

    .box {

       height: 100px;     width: 100px;     border-radius:100px;/*或者50%*/     background: aliceblue;     margin: 20px; 

    }

  • 半圆:

    .box {

       height: 100px;width: 50px;border-radius: 50px 0 0 50px;/*分表表示左上角 右上角 右下角 左下角*/background: aliceblue;

    }

  • 四分之一圆:

    .box {

       height: 100px;width: 50px;border-radius: 50px 0 0 0;/*分表表示左上角 右上角 右下角 左下角*/background: aliceblue;

    }

  • 椭圆:

    .box {

       height: 100px;width: 50px;border-radius: 25px / 50px;/*分表表示水平半径 垂直半径。或者50% / 50%;*/background: aliceblue;

    }

CSS3:border-image

border-image属性用以给任何元素(除border-collapse属性为collapsetable元素)设置图片效果边框,可以用来制作圆角按钮效果,渐变tabs效果等。border-image允许你使用一张小图片,并且将它分割成九个小部分, 然通过延伸这个小部分使其构成一个更大的元素。

注意 ie并不支持border-image

写法:

border-image: url top right bottom left x-repeat y-repeat
  • url:采用的图片的路径

  • top,right,bottom,left:图片的切割方法,注意是不需要加单位的(加了会失效)。默认是px,但可以使用百分比

如图:

图片切割方式:
这里通过两个实例来说明图片切割方式:


通过切割左边的小图片,使其延展+拼接成右边的大图。
若是我们进行如下的分割:

这样图片的切割长度分别为:0(上) 30(右) 0(下) 30(左)
现在的情况就等于用4、6两块小图进行拼接和延伸:

很容易发现,只要我们在水平和垂直方向进行延展就会达成效果图的样子了。

如果图片切割成这样:


就会发现实际效果中,会多出上下边框的宽度。其他没有变化。

图片铺排方式:


左图水平和垂直方向都是stretch,右图水平是stretch,垂直是round


图一水平和垂直均为round,图二水平和垂直均为stretch,图三均为repeat

参考文章:Click

CSS3:box-shadow

box-shadow用来定义元素的盒子阴影。
IE8及以前的浏览器不支持box-shadow

用法:

border-shadow: 阴影类型 水平位移 垂直位移 模糊半径 阴影扩展半径 颜色
  • 阴影类型默认为: 外阴影,可设定唯一值:inset

  • 水平位移:x-offset。可取正负值,正值阴影在元素右方。

  • 垂直位移:y-offset。可取正负值,正值阴影在元素下方。

  • 模糊半径:值只能为正,取值越大,阴影边缘越模糊。

  • 阴影扩展半径:可取正负值。若无模糊半径,设置了扩展半径和为元素设置边框的效果一致。

多层阴影:
box-shadow可以多层阴影同时使用,每层阴影之间使用“,”隔开。设置在最前的阴影将显示在最顶层,所以一定要注意阴影的大小取值。
若阴影的设置为:0 0 0 20px lime, 0 0 0 10px yellow, 0 0 0 8px green
则这时第一层阴影的扩展半径为20,显示在最顶层;第二层阴影显示在第一层阴影之下,此时因为第一层阴影的扩展半径>第二层阴影的扩展半径,所以第一层阴影会把第二层阴影覆盖掉。

<End>

图解CSS3 读书笔记——边框相关推荐

  1. 图解HTTP读书笔记(十)

    图解HTTP读书笔记(十) Web的攻击技术 HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用资源才是攻击目标. ...

  2. 《算法图解》读书笔记

    这是一本很入门的算法书,介绍的东西还算简单明了,大体补充了一些自己没理解的东西. 粗略地看了一下,感觉还是"纸上得来终觉浅,绝知此事要躬行!" <<算法图解>&g ...

  3. 《算法图解》读书笔记—像小说一样有趣的算法入门书

    前言 学习算法课程的时候,老师推荐了两本算法和数据结构入门书,一本是<算法图解>.一本是<大话数据结构>,<算法图解>这本书最近读完了,读完的最大感受就是对算法不再 ...

  4. 《TCP/IP图解》读书笔记

    看这本书的目的: 了解计算机之间是怎么通信的 熟悉TCP/IP协议 后面就这两个目的进行展开,要达到这两个目的,读这本书,学到了哪些知识. 一.计算机之间是怎么通信的 先来了解下面几个概念,中继器,二 ...

  5. CSS篇 《图解CSS3》笔记 Flex

    Flexbox模型的三个规范: 1. 旧版本 2009年 display: box.inline-box 2. 混合版本 2011年 display: flexbox.inline-flexbox 3 ...

  6. 图解机器学习读书笔记-CH6

    鲁棒学习 最小二乘法易受异常值影响 异常值处理: 提前剔除异常值再训练 提高异常值的鲁棒性--鲁棒学习算法 1. \(L_1\)损失最小化 第\(r_i\)个样本的残差: L2损失随残差呈平方级增长: ...

  7. C#图解教程读书笔记(第3章 类型、存储及变量)

    1.C#的中的数值不具有bool特性. 2.dynamic在使用动态语言编写的程序集时使用,这个不太明白,看到后面需要补充!! 动态化的静态类型 3.对于引用类型,引用是存放在栈中,而数据是存放在堆里 ...

  8. C#图解教程读书笔记(结构)

    结构是值类型 分别声明一个类和一个结构,实例化后,结构直接保存在堆中. 所以当用一个对象给另一个对象赋值时会有不同: 在赋值后类类型是指向堆里同样的部分,所以cs2和cs1本质上是一样的.而结构类型则 ...

  9. C#图解教程读书笔记(数组)

    数组的类型 交错数组每个子数组的长度可以不同 数组是对象 数组是引用类型,因而数组的内容存储在堆上. 一维数组或矩形数组声明及其实例化 int[] arr2 = new int[4]; MyClass ...

  10. C#图解教程读书笔记(深入理解类)

    类的实例化 类的静态成员 静态成员可以从类的外部访问:D.Mem2,D为类名.而且静态成员即使实例销毁依然存在且可访问. 静态函数成员 不能访问实例成员,但能访问静态成员. 成员常量 成员常量类似与静 ...

最新文章

  1. SAP PM创建多语言文本
  2. Java 7并发编程实战手册
  3. bzoj 2457 [BeiJing2011]双端队列 模拟+贪心
  4. wince6.0 编译报错:error C2220: warning treated as error - no 'object' file generated的解决办法...
  5. mysql double 使用_mysql使用double的坑
  6. 开放医疗交通大数据技术 服务于公共便民领域
  7. 计算机网络运输层的概述,计算机网络_运输层
  8. Ubuntu 16.04: 开启wifi设置 How To Enable WiFi In Ubuntu 16.04
  9. Scala go java_Java、Scala和Go语言多线程并发对比测试结果和结论
  10. 【IDEA】IDEA 下一些 编码技巧
  11. python - 接口自动化测试 - MysqlUtil - 数据库操作封装
  12. 指针c语言教学,C语言指针的指针
  13. 关于DNF的多媒体包NPK文件的那些事儿(2)
  14. 全链路异步Rest客户端 ESA RestClient
  15. MapGIS 数据管理——数据管理与显示模型架构
  16. Linux Shell学习-第二讲(进阶篇)
  17. mysql答案_MySQL练习(一)参考答案
  18. python搭建轻服务,实现上传下载文件
  19. 微信小程序 云开发之数据库-查找记录
  20. python listdir 忽略 隐藏文件_忽略特殊文件

热门文章

  1. linux的vi编辑器中如何查找内容(关键字)
  2. mysql查询成绩表中课程编号升序_数据库的常见题型--------------(查询)
  3. LinuxDNS域名解析
  4. 对多媒体框架的几点看法
  5. vim中使用color_coded为c/cpp文件配色
  6. /*CS5460_Note_1*/
  7. 【学习笔记】通过雷达获取某一角度的距离信息
  8. 如何查出一个表中重复的名字
  9. WPF如何实现跨线程更新UI控件
  10. java apex_Apex简介