`
cugbmao09
  • 浏览: 34460 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CSS3渐变各内核实现

    博客分类:
  • CSS3
 
阅读更多

 

Webkit

尽管Mozilla和Webkit通常对CSS3属性采取同样的语法,但是对于渐变,他们的实现方式并不一样。Webkit是第一个支持渐变的浏览器内核,它使用下面的结构:

 

1
2
3
4
/* 语法,参考自: http://webkit.org/blog/175/introducing-css-gradients/ */
-webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*)
/* 实际用法... */
background: -webkit-gradient(linear, 0 0, 0 100%, from(red), to(blue));

Webkit

这些语法看起来很复杂,因此需要用一个逗号来隔开这个参数组。

  • 渐变的类型? (linear)
  • 渐变开始的X Y 轴坐标(0 0 – 或者left-top)
  • 渐变结束的X Y 轴坐标(0 100% 或者left-bottom)
  • 开始的颜色? (from(red))
  • 结束的颜色? (to(blue))

Mozilla

Firefox,从3.6版本才开始支持渐变,使用和Webkit略微不同的语法。

1
2
3
4
5
/* 语法,参考自: http://hacks.mozilla.org/2009/11/css-gradients-firefox-36/ */ -moz-linear-gradient( [
<point> || <angle>,]? <stop>, <stop> [, <stop>]* )
 
/* 实际用法*/
background: -moz-linear-gradient(top, red, blue);

Mozilla

  • 注意渐变的类型——linear——放到了属性前缀中了
  • 渐变从哪里开始? (top – 我们也可以使用度数,比如-45deg)
  • 开始的颜色? (red)
  • 结束的颜色? (blue)

Color-Stops

如果不需要从一个颜色到另一个颜色的100%渐变怎么办?这就是color stop起作用的时候了。一个普遍的设计技术是使用一个较短而细微的渐变,比如:

Subtle Gradients
注意顶部的浅灰色到白色的细小的渐变

在过去,标准的做法就是制作一个图片,并将其设为一个元素的背景图片,然后让其水平平铺。然而使用CSS3,这是个小Case。

1
2
3
4
background: white; /* 为较旧的或者不支持的浏览器设置备用属性 */
background: -moz-linear-gradient(top, #dedede, white 8%);
background: -webkit-gradient(linear, 0 0, 0 8%, from(#dedede), to(white));
border-top: 1px solid white;

这次,我们让渐变结束于8%,而不是默认的100%。请注意我们也在头部采用了一个边框,以形成对比。这很常用。

如果我们想要添加多一种(几种)颜色,我们可以这样做:

1
2
3
background: white; /* 备用属性 */
background: -moz-linear-gradient(top, #dedede, white 8%, red 20%);
background: -webkit-gradient(linear, 0 0, 0 100%, from(#dedede), color-stop(8%, white), color-stop(20%, red);
  • 对于-moz 版本,从元素的20%的高度的地方开始是红色。
  • 而对于-webkit,使用color-stop,采用两个参数:哪里开始停止,使用哪种颜色。
在css3渐变上,webkit小组宣布将采用Mozilla的语法,但由于以下语法在08年提出,已经较为广泛的使用,所以在新的Webkit引擎中,保留了下列语法,但是建议使用Mozilla语法。
-webkit-gradient(type, start_point, end_point, / color-stop...)
-webkit-gradient(type, inner_center, inner_radius, outer_center, outer_radius, / color-stop...)

IE

IE并不支持CSS渐变,但是提供了渐变滤镜,可以实现最简单的渐变效果:

1
2
filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ff0000'); /* IE6,IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ff0000')"; /* IE8 */
分享到:
评论

相关推荐

    CSS3中线性颜色渐变的一些实现方法

    主要介绍了CSS3中线性颜色渐变的一些实现方法,包括分Safari和Chrome的webkit内核与Firefox的Gecko内核两种情况,需要的朋友可以参考下

    css3实现背景颜色渐变让图片不再是唯一的实现方式

    对于网页设计师而言,颜色渐变在网页设计中十分常见,而对于网页制作者来说,通常的方法就是把渐变切...伴随着css3的出现,实现背景颜色渐变,图片不再是唯一的实现方式,在这里面,我分别就这两种内核的浏览器进行讲解

    CSS3线性渐变简单实现以及该属性在浏览器中的不同

    在本文中,我们将展示CSS渐变的简单实现以及该属性在Mozilla和webkit内核浏览器中的不同。 PS:本文原文本来提供了一个视频,但是由于众所周知的原因,我们无法观看这个在Youtube上的视频,想看的同学请自己想办法...

    CSS3,线性渐变(linear-gradient)的使用总结

    《CSS3 经典教程系列》的前一篇文章向大家详细介绍了 text-shadow 文本阴影特性的用法,今天这篇文章我们在一起来看看 CSS3 中实现渐变效果的 Gradient 属性的具体用法。在以前,渐变效果和阴影、圆角效果一样都是做...

    CSS3条纹背景制作的实战攻略

    mozilla内核浏览器制作background背景渐变 1、制作一个简单的橫条纹渐变背景 -mozilla内核的浏览器css样式: CSS Code复制内容到剪贴板 body { background-color: #aaa; background-image:-moz-linear-...

    CSS中背景的Linear Gradients(线性渐变)应用

    webkit内核的safari、 Chrome的Linear Gradients (线性渐变);webkit内核的Linear Gradients (线性渐变) 第一组参数type(类型)为 linear;第二组参数是“x1 y1, x2 y2”,颜色开始点和颜色结束点的坐标, 感兴趣的...

    CSS3实现iPhone滑动解锁功能代码

    该效果的主要实现思路是给文字添加渐变的背景,然后对背景进行裁剪,按文字裁剪(目前只有webkit内核浏览器支持该属性),最后给背景添加动画,即改变背景的位置,背景动画效果如下(GIF录制时有卡顿,代码实现时不...

    详解css3 mask遮罩实现一些特效

    遮罩mask的功能就是使用透明的图片或渐变遮罩元素的背景。于是,遮罩mask与背景background非常类似,除了没有color子属性,背景background剩下的6个子属性,mask都有 遮罩mask是一个复合属性,包括mask-image、mask-...

    CSS3样式linear-gradient的使用实例

    1.linear-gradient是CSS3中新增的样式,主要用于颜色的渐变效果。 2.linear-gradient在不同内核下使用方式不同。 实用栗子(在Chrome下) 1.缺角效果  先看效果图 这是内容 .div1 { width: 100px; height: 40...

    CSS3 Notes: -webkit-box-reflect实现倒影的实例

    在使用webkit内核的浏览器中(chrome,safari,移动端浏览器),可以使用-webkit-box-reflect属性来实现倒影,语法如下所示 [ above | below | right | left ]? &lt;length&gt;? &lt;image&gt;? 该值包涵了三部分:方位+偏移量+遮罩...

    javascript线性渐变一

    canvas首次在Mac OS X中的Dashboard中被引入,之后又被苹果公司的Safari浏览器所支持,紧接着就成为HTML5的标准,被IE内核以外的标准浏览器所支持。苹果做的好事还不止这一桩,它认为SVG太笨重了,于是它把SVG里的...

    code-stand:向上融科前端代码规范

    渐进退化,产品在 Chrome 及国内的 Chromium 内核浏览器上的体验应该做到最好,包括对圆角、阴影、渐变的支持,在 IE8 上可渐进退化,不建议通过 hack 的方式支持 CSS3 属性。HTMLDoctype使用标准的 ...

Global site tag (gtag.js) - Google Analytics