Rumah > Artikel > hujung hadapan web > css3的用法整理(一)_html/css_WEB-ITnose
首先,这篇文章只说css3的属性,在不支持这些属性的浏览器里怎么实现这些效果不在这篇文的考虑范围之内。
语法:-moz-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )
示例:-moz-linear-gradient(top,#fff,#000);
这个示例的意思是,从上往下实现渐变,从上往下实现由白色变为黑色的渐变top也能写成top left表示从左上角开始实现渐变
语法:-webkit-radial-gradient([<bg-position> || <angle>,]? [<shape> || <size>,]? <color-stop>, <color-stop>[, <color-stop>]*);
可以接收的参数:起始位置、方向、颜色,径向梯度,渐变的形状(圆形或椭圆形),大小(最近端,最近角,最远端,最远角,包含或覆盖 (closest-side, closest-corner, farthest-side, farthest-corner, contain or cover))
示例:
-webkit-radial-gradient(bottom left,ellipse closest-side,#f90 5%,#f00 30%,#2e9900 80%)
从这个示例来说,便是:起始位置是左下角bottom left,渐变形状是椭圆ellipse,百分比表示径向梯度,三个颜色值表示起始颜色值,closest-side表示的就是渐变的大小
径向渐变现在还不支持Opera浏览器
repeating-linear-gradient根据我的测试,这个在火狐可以显示,在webkit内核浏览器并不能正常显示repeating-radial-gradient这个可以在firefox,chrome正常显示
示例代码:
-webkit-repeating-linear-gradient(top left -45deg,#ace,#ace 5px,#2e9900 5px,#2e9900 10px);
我的demo:http://codepen.io/superSnail/pen/jWwxpP
语法:background:url(...),url(...),url(...)举个例子~假设背景图有1.jpg,2.jpg,3.jpg那么我们可以这样写
background:url("1.jpg") 0 0 no-repeat, url("2.jpg") 200px 0 no-repeat, url("3.jpg") 400px 201px no-repeat;
也可以这样写
background-image:url("1.jpg"),url("2.jpg"),url("3.jpg");background-repeat: no-repeat, no-repeat, no-repeat; background-position: 0 0, 200px 0, 400px 201px;
在没有border-radius这个属性之前,实现圆角的方式一般使用背景图。精通css上介绍了两种用图片实现的方式,其一是用两个带圆角的长条作为顶部和底部,中间可以平铺。其二是将四个角切图,然后其他区域填充来实现圆角的框
语法:border-radius : none | <length>{1,4} [/ <length>{1,4} ]?
border-radius是一种缩写的方法
示例:border-radius:10px 10px 5px 5px /5px 5px 10px 10px;
这样的写法/前面的表示水平方向的四个弧度,/后面表示垂直方向的四个弧度
另外需要特别注意的是,border-radius一定要放置在-moz-border-radius和-webkit-border-radius后面
border-radius的demo:http://codepen.io/superSnail/pen/QyMNZv
首先,border-image不支持IE。支持的浏览器为Firefox3.5+,chrome或Safari3+
语法:border-image:source slice repeat
分别表示,边框背景图片地址,图片裁切方式,图片重复方式
切九宫格的时候,数值默认单位是px,千万不能直接把px写上去,会出错!slice可以有1~4个参数,其方位顺序和margin,padding等一致,按照上右下左顺时针所以上图应该写为30% 35% 40% 30%或者30% 35% 40%
slice 将背景图切为九块之后,首先四个角上得图仍然放在四个角,然后四边的中间部分,将会按照你设定的重复模式开始描绘边框,默认就是拉伸的,如果你想要用重复或者平铺就要自己设置啦。
说一下重复和平铺的区别:重复就是按照原来的大小repeat,如果到最边上放不下了就直接切掉,所以会出现半块的情况平铺的意思就是,不一定按照原来的大小去重复,为了铺满需要的长度且不出现半块的情况,改变需重复单元的宽度,以实现平铺。(但是我的测试结果是,平铺和重复的展示效果是一样的,详细见demo)理解了以上,再看border-image的实现方式就会轻松很多。举个例子~http://codepen.io/superSnail/pen/adyJEp
详细的内容可以参考大大的文章,这是我详细学习border-image的教程http://www.zhangxinxu.com/wordpress/2010/01/css3-border-image详解、应用及jquery插件/
语法:box-shadow:type xoffset offset blur-radius spread-radius,color
分别是指:阴影类型,横向偏移,纵向偏移,模糊半径,扩展半径,颜色
dropShadow效果demo:http://codepen.io/superSnail/pen/XXajKm
语法:text-shadow:offset,offset,blur,color
text-shadow可以根据模糊半径的不同一层一层叠加实现各种文字效果
例如:
text-shadow:40px #ff00de, 0 0 70px #ff00de;
这样样式的叠加,模糊半径都是从中心点开始算的,具体见demo
文字阴影的demohttp://codepen.io/superSnail/pen/QyMjBV
首先RGBA表示红,绿,蓝和透明四个通道所以背景白色可以表示为background:rgba(255,255,255,1);就是红绿蓝三个通道值为255,透明度为1,也就是不透明。如果要半透明效果可以将透明通道的值设为小数。
其次,用opacity实现透明,白色背景不透明,应该写成background:#fff;opacity:1;
以上两种方法按照这样的规律类推。
opacity的缺点是,如果父元素设为半透明,那么它的子元素都会继承这个半透明。然而rgba的表示方法就不会有这个问题。比如要实现一个半透明的弹出层,用opacity的话,就将导致这个层里的文字都会以半透明显示。为了解决这样问题就不得不用两层,将文字以定位的方式显示。