通过CSS3,我们能够创建圆角边框,向矩形添加阴影,使用图片来绘制边框。并且不需使用设计软件,比如photoshop。

1  边框图片border-image

border-image为边框应用图片,顾名思义就是为图片应用背景图片。它和我们常用的background属性比较相似,但是又比背景图片复杂一些。例如:

background: url(“image.jpg”) 10px 20px no-repeat;      

border-image属性是一个简写属性,用于设置以下属性,具体描述如表1:

表1  CSS3 border-image属性说明

想象一下:一个矩形,有四个边框。如果应用了边框图片,图片该怎么分布呢?图片会自动被分隔成四等分,用于四个边框。

可以理解border-image是一个切片工具,会自动把用作边框的图片切割。怎么切割呢?为了方便理解,下面有一张特殊的图片,有9个正方形(对角线的长度为70像素)拼成的一张图(210*210像素),并标注好序号,就如传说中的九宫格,如下:

将该图片应用于一个矩形的边框,并让边框图片的延伸方式设为重复,代码如下:

运行上面的代码,我们可以看到该矩形的边框变成了图片。如图1所示:

图1  图片边框

从序号可以看出div的四个角分别对应了背景图片的四个角1,3,9,7。而2,4,6,8被重复在四个边。因为是从四周向中心切割图片的,所以5不显示出来。上述例子中border-image包含三个参数,第一个参数“url(border.png) ”表示边框图片的引入路径;第二个参数“70”表示切割图片的宽度,单位为像素,但一般省略单位,也可以使用百分比,当四边宽度相等时可以使用一个值,当设置四个值时遵循顺时针的规律来分别设置;第三个参数“repeat”表示图片的延伸方式为重复,有三个可选参数round(平铺)、repeat(重复)、stretch(拉伸)。

repeat的意思就是重复,因为上述例子中的边框宽度正好数字块宽度,效果不能很好地体现出来,下面改变div的宽度,再看看repeat的效果,修改后CSS的样式如下:

这里我们将div的宽度缩小了30px变为180px,在浏览器中查看效果如图2所示:

图2  边框图片repeat重复

在图2里,我们可以看出矩形的边角部分被裁掉了,repeat就是从边框的中间一直重复并且超出部分被裁掉。

再来设置为div的border-image-repeat设置round,round可以理解为圆满的铺满,为了实现圆满所以会压缩(或拉伸),将上述例子的延伸方式改变,修改的CSS代码如下:

这里我们将边框图片的延伸方式修改为round,在浏览器中查看效果如图3所示:

图3  背景图片平铺(round)

对比repeat的效果,我们可以发现round的图片被压缩了,并没有被截取。

接下来设置为div的border-image-repeat设置stretch,stretch是拉伸,将上述例子的延伸方式改变,修改的CSS代码如下:

将CSS替换后,运行上述代码,可以发现边框图片被拉伸,而不是重复。在浏览器中查看效果如图4所示:

图4 边框图片拉伸(stretch)

2  自适应的圆角效果

实现该效果时使用的图片如下:

此图片的剪裁宽度为20像素,基本上就是此图的圆角大小。div的边框宽度为10像素,代码如下:

运行上述代码,div的边框实现了上面图片制作的圆角效果。在浏览器中查看效果如图5所示:

图5  自适应圆角效果

同样地,我们还可以使用图片来实现多边框效果,投影效果和选项卡效果等。

1.使用下面图片实现多边框效果

使用上面的代码,修改边框图片,在浏览器中查看效果如图6所示:

图6  多边框效果

2.投影效果

使用下面图片实现投影效果,投影可以控制剪裁宽度和边框宽度。

使用border-image实现的效果如图7所示:

图7  投影效果

border-image可以说是CSS3中非常重要的部分,将来一定会大放光彩,其应用潜力真的非常惊人,可惜目前支持的浏览器有限,仅FireFox,chrome浏览器,Safari3+支持。

IT兄弟连 HTML5教程 CSS3属性特效 边框的更多相关文章

  1. IT兄弟连 HTML5教程 CSS3属性特效 文字描边

    用CSS3实现的文字描边效果,一个CSS3文字特效实例,字体可以自己随意改,字体颜色也可以自己改.IE9以下浏览器无效果,所以提醒大家测试时候要使用Google Chrome.-webkit-text ...

  2. IT兄弟连 HTML5教程 CSS3属性特效 CSS3背景

    CSS3规范中对背景这一部分,新加入了一些有用的功能,如可以设置多个背景图片.可以指定背景大小.设置背景渐变等功能.CSS3规范中定义的背景属性新增了background-clip.backgroun ...

  3. IT兄弟连 HTML5教程 CSS3属性特效 渐变1

    渐变背景一直以来在Web页面中都是一种常见的视觉元素.但一直以来,Web设计师都是通过图形软件设计这些渐变效果,然后以图片形式或者背景图片的形式运用到页面中.Web页面上实现的效果,仅从页面的视觉效果 ...

  4. IT兄弟连 HTML5教程 CSS3属性特效 动画-animation

    CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation.前面已经介绍过Transform和Transition了,这里我们来学习Animation动画.通 ...

  5. IT兄弟连 HTML5教程 CSS3属性特效 小结及习题

    本章小结 CSS3新增了许多属性,CSS3样式新增了一种颜色模式rgba用来制作透明色,比CSS的颜色模式多了一个透明度的设置.文字的CSS3特效有文字阴影.文字描边.文字排版和文字省略等.另外,CS ...

  6. IT兄弟连 HTML5教程 CSS3属性特效 圆角

    传统的圆角生成方案,必须使用多张图片作为背景图案.CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,只需要border-radius属性,支持浏览器IE 9.Opera 10.5.Safari ...

  7. IT兄弟连 HTML5教程 CSS3属性特效 新增颜色模式

    对于设计人员和开发人员来说,CSS一直是web设计过程中重要的一部分.网页外观主要由CSS控制,编写CSS代码可以任意改变我们的网页布局以及网页内容的样式.随着CSS3的出现以及越来越多的浏览器对它的 ...

  8. IT兄弟连 HTML5教程 CSS3属性特效 3D变换3

    5  3D旋转 在三维变形中,我们可以让元素在任何轴旋转.为此,CSS3新增了三个旋转函数:rotateX().rotateY()和rotateZ().使用rotateX()函数允许一个元素围绕X轴旋 ...

  9. IT兄弟连 HTML5教程 CSS3属性特效 3D变换2

    3  perspective-origin景深基点 perspective-origin景深基点属性时3D变形中另一个重要属性,主要用来决定perspective属性的源点角度.它实际上设置了X轴和Y ...

随机推荐

  1. HTML 5 中的textarea标签

    HTML 5 中的textarea标签 定义和用法 定义一个文本区域 (text-area) (一个多行的文本输入区域).用户可在此文本区域中写文本.在一个文本区中,您可输入无限数量的文本.文本区中的 ...

  2. 小白都会用的免配置 Aria2 图形界面版免费开源下载软件PDM

    如今的迅雷真的越发让人失望,好好的下载软件变成了广告浏览器,最近又关停了“远程下载”功能,就算花钱加入会员,很多资源现在也不允许下载了,鸡肋的很. 然而除了 IDM.Folx.qBitorrent 等 ...

  3. 使用PaintCode便捷地实现动画效果

    // // ViewController.m // paintCodeTestOC //gif // Created by LongMa on 2019/7/25. // #import " ...

  4. Python爬虫实战之爬取糗事百科段子

    首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致之前的代码没法用了,会导致无法输出和CPU占用过高的 ...

  5. Object类和@Data注解

    特别说明:若是有不对的地方欢迎指正 简要概述: Object类是java中所有类默认继承的一个类.下面介绍一下Object类中的一些重要的方法,面试中也是经常会被问到的.尤其是==和equals的区别 ...

  6. 如何利用 Open Live Writer 在本地发布WordPress博客文章

    [导读] Open Live Writer是由Windows Live WriterWriter更名而来,是由微软推出的一款能够免费使用的博客写作软件. Open Live Writer 可以支持大多 ...

  7. 第一节:Shiro HelloWorld 实现

    1.新建maven工程,pom配置maven jar包 <dependency> <groupId>org.apache.shiro</groupId> <a ...

  8. mui 顶部选项卡的两种切换方式

    mui 顶部选项卡的两种切换方式 第一种main页面 <!DOCTYPE html> <html> <head> <meta charset="ut ...

  9. Java instanceof 和 Class.isInstance()区别与应用

    一.instanceof 关键字 instanceof 关键字用于判断某个实例是否是某个类的实例化对象,形如: String.class instanceof Class "test&quo ...

  10. Java并发编程系列-(6) Java线程池

    6. 线程池 6.1 基本概念 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理.如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题:如果并发的请求数 ...