IT兄弟连 HTML5教程 CSS3属性特效 边框

通过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属性特效 边框的更多相关文章
- IT兄弟连 HTML5教程 CSS3属性特效 文字描边
用CSS3实现的文字描边效果,一个CSS3文字特效实例,字体可以自己随意改,字体颜色也可以自己改.IE9以下浏览器无效果,所以提醒大家测试时候要使用Google Chrome.-webkit-text ...
- IT兄弟连 HTML5教程 CSS3属性特效 CSS3背景
CSS3规范中对背景这一部分,新加入了一些有用的功能,如可以设置多个背景图片.可以指定背景大小.设置背景渐变等功能.CSS3规范中定义的背景属性新增了background-clip.backgroun ...
- IT兄弟连 HTML5教程 CSS3属性特效 渐变1
渐变背景一直以来在Web页面中都是一种常见的视觉元素.但一直以来,Web设计师都是通过图形软件设计这些渐变效果,然后以图片形式或者背景图片的形式运用到页面中.Web页面上实现的效果,仅从页面的视觉效果 ...
- IT兄弟连 HTML5教程 CSS3属性特效 动画-animation
CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation.前面已经介绍过Transform和Transition了,这里我们来学习Animation动画.通 ...
- IT兄弟连 HTML5教程 CSS3属性特效 小结及习题
本章小结 CSS3新增了许多属性,CSS3样式新增了一种颜色模式rgba用来制作透明色,比CSS的颜色模式多了一个透明度的设置.文字的CSS3特效有文字阴影.文字描边.文字排版和文字省略等.另外,CS ...
- IT兄弟连 HTML5教程 CSS3属性特效 圆角
传统的圆角生成方案,必须使用多张图片作为背景图案.CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,只需要border-radius属性,支持浏览器IE 9.Opera 10.5.Safari ...
- IT兄弟连 HTML5教程 CSS3属性特效 新增颜色模式
对于设计人员和开发人员来说,CSS一直是web设计过程中重要的一部分.网页外观主要由CSS控制,编写CSS代码可以任意改变我们的网页布局以及网页内容的样式.随着CSS3的出现以及越来越多的浏览器对它的 ...
- IT兄弟连 HTML5教程 CSS3属性特效 3D变换3
5 3D旋转 在三维变形中,我们可以让元素在任何轴旋转.为此,CSS3新增了三个旋转函数:rotateX().rotateY()和rotateZ().使用rotateX()函数允许一个元素围绕X轴旋 ...
- IT兄弟连 HTML5教程 CSS3属性特效 3D变换2
3 perspective-origin景深基点 perspective-origin景深基点属性时3D变形中另一个重要属性,主要用来决定perspective属性的源点角度.它实际上设置了X轴和Y ...
随机推荐
- while(cin)?
#include<iostream> #include<utility> using namespace std; int main() { int i; do { cout& ...
- flex布局实现瀑布流排版
网上有很多有关js(jq)实现瀑布流和有关瀑布流的插件很多,例如:插件(Masonry,Wookmark等等).按照正常的逻辑思维,瀑布流的排版(item列表)一般都是 由左到右,上而下排序的结果,单 ...
- 题解 CF1206B 【Make Product Equal One】
感谢 @一个低调的人 (UID=48417) 题目: CodeForces链接 Luogu链接 思路: 这是一个一眼题 我们不妨把所有的数都看做是\(1\)(取相应的花费,如:\(6\) 的花费就是\ ...
- 第二章 Unity Shader基础
[TOC] 1. Unity Shader 的基础: ShaderLab 学习和编写着色器的过程一直是一个学习曲线很陡峭的过程,通常情况下为了自定义渲染效果往往要和很多文件和设置打交道,这些设置很容易 ...
- 小白学 Python 爬虫(15):urllib 基础使用(五)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- syslog日志
Syslog协议 系统日志(Syslog)协议是在一个IP网络中转发系统日志信息的标准,它是在美国加州大学伯克利软件分布研究中心(BSD)的TCP/IP系统实施中开发的,目前已成为工业标准协议,可用它 ...
- github配置ssh key
一 初次安装git配置用户名和邮箱 git config --global user.name "xxx" git config --global user.email " ...
- CoderForces999F-Cards and Joy
F. Cards and Joy time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- Java继承之再谈构造器
目录 Java继承之再谈构造器 初始化基类 默认构造器 带参数的构造器 子类调用父类构造器 Java继承之再谈构造器 初始化基类 前面提到,继承是子类对父类的拓展.<Thinking in Ja ...
- java的传参究竟是按值传递的还是按引用传递的
这里来弄清楚Java的传参究竟是按值传递的还是按引用传递的. 形参和实参 传参的概念里,有形参和实参的区分.形参是定义方法名和方法体的时候使用的参数,目的是用来接收调用该方法的时候传入的参数:实参是调 ...