Skip to main content

使用CSS3创建跨浏览器线性渐变

零基础html5+div+css+js网页开发教程第058期 深入理解css3线性渐变 (六月 2025)

零基础html5+div+css+js网页开发教程第058期 深入理解css3线性渐变 (六月 2025)
Anonim
04年01月

使用CSS3创建跨浏览器线性渐变

线性梯度

您将看到的最常见的渐变类型是两种颜色的线性渐变。这意味着渐变将沿直线移动,沿着该直线从第一颜色逐渐变化到第二颜色。此页面上的图像显示从#999(深灰色)到#fff(白色)的简单从左到右的渐变。

线性渐变是最容易定义的,并且在浏览器中得到最多的支持。 Android 2.3 +,Chrome 1 +,Firefox 3.6 +,Opera 11.1+和Safari 4+支持CSS3线性渐变。 Internet Explorer可以使用a添加渐变 过滤 并支持他们回到IE 5.5。这不是CSS3,但它是跨浏览器兼容性的选项。

定义渐变时,需要定义几个不同的东西:

  • 它是什么类型的梯度 - 线性 要么 径向
  • 应该开始渐变的位置
  • 渐变应该停止的地方
  • 渐变中的颜色以及它们应该从哪里开始和停止

要使用CSS3定义线性渐变,请编写:

线性梯度(角度 要么 侧面或角落, 颜色停止, 颜色停止)
  • 首先,使用名称定义渐变的类型 线性 -梯度.
  • 然后,您可以通过以下两种方式之一定义渐变的起点和终点: 角度 以0到359为单位的线条,0度指向上方。或者使用“侧面或角落”功能,例如 剩下, , 底部,和 最佳。这些将在下一页详细解释。如果将它们保留,则渐变将从元素的顶部流向底部。
  • 然后定义颜色停止。您可以使用颜色代码和可选百分比定义颜色停止。百分比告诉浏览器在该行的哪个位置以该颜色开始或结束。默认设置是沿着线均匀放置颜色。您将在第3页了解有关色标的更多信息。

因此,要使用CSS3定义上述渐变,您可以编写:

线性渐变(左,#999999 0%,#fffffff 100%);

并将其设置为背景 DIV 你写:

div {background-image:线性渐变(左,#999999 0%,#fffffff 100%;}

CSS3线性渐变的浏览器扩展

要使梯度跨浏览器工作,您需要为大多数浏览器使用浏览器扩展和a 过滤 Internet Explorer 9及更低版本(实际上是2个过滤器)。所有这些都采用相同的元素来定义渐变(除了你只能在IE中定义2色渐变)。

Microsoft筛选器和扩展-Internet Explorer是最具挑战性的,因为您需要三条不同的行来支持不同的浏览器版本。要获得上面的灰色到白色渐变,您可以写:

/ * IE 5.5-7 * /filter:progid:DXImageTransform.Microsoft.gradient(startColorstr ='#999999',endColorstr ='#ffffff',GradientType = 1);/ * IE 8-9 * /-ms-filter:“progid:DXImageTransform.Microsoft.gradient(startColorstr ='#999999',endColorstr ='#ffffff',GradientType = 1)”;/ * IE 10 * /-ms-linear-gradient(左,#999999 0%,#fffffff 100%);

Mozilla扩展-The -moz- 扩展工作就像CSS3属性一样,只需要 -moz- 延期。要获得Firefox的上述渐变,请写入:

-moz-linear-gradient(左,#999999 0%,#fffffff 100%);

Opera扩展-The -O- 扩展为Opera 11.1+添加了渐变。要获得上述渐变,请写入:

-o-linear-gradient(左,#999999 0%,#fffffff 100%);

Webkit扩展-The -webkit- 扩展工作很像CSS3属性。要为Safari 5.1+或Chrome 10+定义上述渐变,请编写:

-webkit-linear-gradient(左,#999999 0%,#fffffff 100%);

还有一个旧版本的Webkit扩展可与Chrome 2+和Safari 4+配合使用。在其中,您将渐变的类型定义为值,而不是在属性名称中。要使用此扩展名获得灰色到白色渐变,请写入:

-webkit-gradient(线性,左上,右上,颜色停止(0%,#999999),颜色停止(100%,#ffffff));

完整的CSS3线性渐变CSS代码

要获得完全跨浏览器支持以获得上面的灰色到白色渐变,您应该首先为不支持渐变的浏览器包含后备纯色,最后一项应该是完全兼容的浏览器的CSS3样式。所以,你写道:

背景:#999999;background:-moz-linear-gradient(左,#999999 0%,#fffffff 100%);background:-webkit-gradient(线性,左上,右上,颜色停止(0%,#999999),颜色停止(100%,#ffffff));background:-webkit-linear-gradient(左,#999999 0%,#fffffff 100%);background:-o-linear-gradient(左,#999999 0%,#fffffff 100%);background:-ms-linear-gradient(左,#999999 0%,#fffffff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr ='#999999',endColorstr ='#ffffff',GradientType = 1);-ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr ='#999999',endColorstr ='#ffffff',GradientType = 1);背景:线性渐变(左,#999999 0%,#fffffff 100%);

本教程的下一页将更详细地解释渐变的各个部分,最后一页指向一个工具,这是一种自动创建CSS3渐变的绝佳方法。

仅使用CSS即可查看此线性渐变。

04年02月

创建对角线渐变 - 渐变的角度

起点和终点确定渐变的角度。大多数线性渐变是从上到下或从左到右。但是可以构建一条在对角线上移动的渐变。此页面上的图像显示了一个简单的渐变,从右到左以45度的角度在图像上移动。

用于定义渐变线的角度

该角度是元素中心的假想圆上的线。 0deg 点, 90度 指向右边, 180deg 指向下方 270deg 指向左侧。您可以定义0到359度之间的任何角度。

您应该注意,在正方形中,45度角从左上角移动到右下角,但在矩形中,起点和终点稍微偏离形状,如图中所示。

定义对角线渐变的更常见方法是定义一个角,例如 右上 并且渐变将从该角移动到对角。您可以使用以下关键字定义起始位置:

  • 最佳
  • 底部
  • 剩下
  • 中央

它们可以结合起来更具体,例如:

  • 右上
  • 左上方
  • 顶级中心
  • 右下角
  • 左下方
  • 底部中心
  • 正确的中心
  • 离开中心

这是一个类似于图中的渐变的CSS,从右上角到左下角的红色到白色:

背景:## 901A1C;background-image:-moz-linear-gradient(右上角,#901A1C 0%,#FFFFFF 100%);background-image:-webkit-gradient(线性,右上,左下,颜色停止(0,#901A1C),颜色停止(1,#FFFFFF));background:-webkit-linear-gradient(右上角,#901A1C 0%,#fffffff 100%);background:-o-linear-gradient(右上角,#901A1C 0%,#fffffff 100%);background:-ms-linear-gradient(右上角,#901A1C 0%,#fffffff 100%);背景:线性渐变(右上角,#901A1C 0%,#fffffff 100%);

您可能已经注意到此示例中没有IE过滤器。这是因为IE只允许两种类型的过滤器:从上到下(默认)和从左到右(使用 GradientType = 1 开关)。

仅使用CSS即可查看此对角线性渐变。

03年3月

颜色停止

使用CSS3线性渐变,您可以为渐变添加多种颜色,以创建更加漂亮的效果。要添加这些颜色,请在属性末尾添加其他颜色,以逗号分隔。你应该在线上包括颜色应该开始或结束的位置。

Internet Explorer过滤器仅支持两个色标,因此在构建此渐变时,应仅包含要显示的第一种和第二种颜色。

以下是上述3色渐变的CSS:

背景:#ffffff;背景:-moz-linear-gradient(左,#fffffff 0%,#901A1C 51%,#fffffff 100%);background:-webkit-gradient(线性,左上,右上,颜色停止(0%,#ffffff),颜色停止(51%,#901A1C),颜色停止(100%,#ffffff));背景:-webkit-linear-gradient(左,#fffffff 0%,#901A1C 51%,#ffffff 100%);background:-o-linear-gradient(左,#fffffff 0%,#901A1C 51%,#ffffff 100%);background:-ms-linear-gradient(左,#fffffff 0%,#901A1C 51%,#ffffff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr ='#ffffff',endColorstr ='#ffffff',GradientType = 1);背景:线性渐变(左,#fffffff 0%,#901A1C 51%,#ffffff 100%);

只使用CSS,可以看到这个线性渐变,其中有三个颜色停止。

04年04月

使建筑梯度更容易

我建议有两个站点可以帮助你构建渐变,它们各有利弊,我还没有找到一个渐变构建器来完成所有工作。

终极CSS渐变生成器这种渐变生成器非常受欢迎,因为它以与Photoshop等程序中的渐变构建器类似的方式执行。我也喜欢它,因为它为你提供了所有的CSS扩展,而不仅仅是Webkit和Mozilla。这台发生器的问题在于它只支持水平和垂直渐变。如果你想做对角线渐变,你必须去我推荐的另一台发生器。

CSS3梯度生成器这台发电机比第一台发电机需要更长的时间才能理解,但它确实支持将方向改为对角线。

如果你知道另一个你喜欢的CSS Gradient Generator,请告诉我们。