Firefox 3.6 中的 CSS 背景

Firefox 3.6 允许您使用 CSS 背景做更多的事情:您可以使用 渐变、设置背景大小,以及指定多个背景。

自定义背景大小

在 Firefox 3.6 中,您可以使用 -moz-background-size 指定背景图像的大小,将其按元素大小的 百分比 或特定 长度 进行缩放。

-moz-background-size:  [, ]*

百分比。 在此示例中,您可以看到使用百分比设置大小的效果。左侧大小设置为自动,它保持背景图像的原始大小。在中间,大小设置为 100%,它将背景图像缩放到区域的 100%(水平),即使原始图像小于背景定位区域。右侧大小设置为 10%,它将图像缩放到区域的 10%。默认情况下,背景图像会重复。

css_bgsize_autoto10_fxlogo

 .bg_example_left {
  background: url(http://demos.hacks.mozilla.org/openweb/resources/images/logos/firefox-48.png);
  -moz-background-size: auto;
}
 .bg_example_center {
  background: url(http://demos.hacks.mozilla.org/openweb/resources/images/logos/firefox-48.png);
  -moz-background-size: 100%;
}
 .bg_example_right {
  background: url(http://demos.hacks.mozilla.org/openweb/resources/images/logos/firefox-48.png);
  -moz-background-size: 10%;
}

以下是一样的示例(自动 - 100% - 10%),使用不同的背景图像。在本例中,原始图像大于背景区域。因此,指定“自动”只显示原始图像的一部分,您需要将大小设置为 100% 才能使整个图像可见。

css_bgsize_autoto10_flowers

水平和垂直缩放。 可以为水平和垂直缩放分别定义大小。只指定一个大小会设置水平缩放(如上面的示例所示),而垂直缩放默认值为“自动”。如果指定第二个大小,它将用于垂直缩放,如下面的示例所示。在左侧,您可以看到一个水平缩放为 100%、垂直缩放默认为“自动”的图像。在右侧,水平设置为 100%,垂直设置为 30%,由于比例的改变,改变了图像的原始外观。

css_bg_size_vert

  -moz-background-size: 100%;
  -moz-background-size: 100% 30%;

自定义大小演示。 试用我们的 交互式演示:动态选择背景的大小。 您需要 Firefox 3.6 的最新测试版

多个背景

Firefox 3.6 还允许您叠加多个背景。这使您可以通过将 渐变 叠加在图像之上来创建很酷的效果。

定义。 要定义多个背景,只需使用 background CSS 属性按如下方式列出它们。

.foo {
  background: background1, background2, ..., backgroundN;
}

您列出背景的顺序很重要:列表中的第一个将显示为顶层,最后一个将显示为底层。

设置属性。 对于多个背景,您可以设置与单个背景相同的属性,例如 background-position 或 background-repeat。通过为每个属性指定一个值来定义每个背景的行为。这些值需要按您最初列出背景的顺序列出。

因此,如果您定义了

  background: background1, background2, background3;

按相同的顺序为每个属性列出值

  background-position: background1_position, background2_position, background3_position;
  background-repeat: background1_repeat, background2_repeat, background3_repeat;

示例。 以下是如何叠加三个不同的背景:Firefox 徽标、线性渐变 和带有花的图像。如果您正在运行 Firefox 3.6 测试版,您可以在我们的 交互式演示 中打开或关闭任何或所有三个背景。

css_multibg

 .multi_bg_example {
  background: url(http://demos.hacks.mozilla.org/openweb/resources/images/logos/firefox-48.png), -moz-linear-gradient(left, rgba(255, 255, 255, 0),  rgba(255, 255, 255, 1)), url(http://demos.hacks.mozilla.org/openweb/resources/images/patterns/flowers-pattern.jpg);
  background-repeat: no-repeat, no-repeat, repeat;
  background-position: bottom right, left, right;
}

关于 Alix Franquet

Alix Franquet 的更多文章…


18 条评论

  1. Colby Russell

    本文中的代码示例乱了。如何将它们格式化为 70 列(或者 80 列,只是不要为 hacks.mozilla.org 使用固定宽度)?

    2009 年 12 月 2 日 下午 1:23

  2. kwinch

    太棒了。等待其他人实现这些功能。

    2009 年 12 月 2 日 下午 2:20

  3. semper

    非常感谢,我们开发者一直在等待这个功能。

    但是,像往常一样,喜忧参半。济基尔博士:真是太棒了,它真的让 CSS 的功能提高了一倍!而海德先生:没错,赶快在生产环境中使用它吧;)

    2009 年 12 月 3 日 上午 1:26

  4. Jason

    这是扩展 CSS 功能的又一妙招。当然,这在其他浏览器中没有任何影响,但这并不是重点。为什么要用 UX 增强来奖励 FF 用户呢?我认为时机已到,而且我认为我会在我的下一个项目中以某种方式使用它。

    2009 年 12 月 3 日 上午 2:51

  5. Neil Rashbrook

    你又把背景和背景图像搞混了;background 是一个简写属性,它允许您在一个方便的规则中指定 background-image、background-repeat、background-attachment、background-position 和 background-color;如果您希望使用您未指定的所有上述属性的默认值,加上 -moz-background- 扩展 clip origin 和 size,这将很方便。因此,例如,您的 -moz-background-size 示例应该只使用 background-image,而您的多个背景示例可以这样写(通过向 Gecko 请求您的样式规则的规范序列化获得)

    .multi_bg_example {
    background: url(“http://demos.hacks.mozilla.org/openweb/resources/images/logos/firefox-48.png”) no-repeat scroll right bottom, -moz-linear-gradient(left center , rgba(255, 255, 255, 0), rgb(255, 255, 255)) no-repeat scroll left center, url(“http://demos.hacks.mozilla.org/openweb/resources/images/patterns/flowers-pattern.jpg”) repeat scroll right center transparent;
    }

    虽然您可以通过省略默认值(即 repeat scroll center transparent)来缩短它

    .multi_bg_example {
    background: url(“http://demos.hacks.mozilla.org/openweb/resources/images/logos/firefox-48.png”) no-repeat scroll right bottom, -moz-linear-gradient(left center , rgba(255, 255, 255, 0), rgb(255, 255, 255)) no-repeat left, url(“http://demos.hacks.mozilla.org/openweb/resources/images/patterns/flowers-pattern.jpg”) right;
    }

    2009 年 12 月 3 日 上午 3:23

  6. […] hacks.mozilla.org 上的 Firefox 3.6 中的 CSS 背景 […]

    2009 年 12 月 3 日 下午 4:02

  7. David Hammond

    “在 Firefox 3.6 中,您可以指定背景图像的大小,将其按原始图像的百分比进行缩放”

    百分比值表示元素大小的百分比,而不是原始图像的百分比。

    2009 年 12 月 3 日 下午 4:38

  8. Dave

    伙计们,我太爱你们了,感谢你们的实现!

    2009 年 12 月 24 日 上午 7:48

  9. Ant

    唯一不好的地方是,没有机制可以单独定位第一个、第二个、第三个或第四个背景。

    如果您只想更改其中一个背景,则需要输入所有背景。

    2010 年 1 月 16 日 上午 9:08

  10. […] -moz-element() 图像与普通 url() 图像的工作方式相同。这意味着它会受到所有熟悉的背景属性的影响,例如 background-position、background-repeat,甚至 background-size。[…]

    2010 年 8 月 24 日 下午 1:44

  11. sammy doddy

    我不明白

    2010 年 10 月 26 日 下午 4:06

  12. sammy doddy

    如何获得背景?

    2010 年 10 月 26 日 下午 4:08

  13. Viktor

    -moz-background-size 在 FireFox 5 上不起作用,为什么?

    2011 年 8 月 13 日 上午 2:00

    1. louisremi

      它已被弃用,转而使用非前缀版本:background-size

      2011 年 8 月 13 日 中午 12:07

  14. […] https://hacks.mozilla.ac.cn/2009/12/css-backgrounds-firefox-36/ […]

    2011 年 8 月 19 日 下午 1:37

  15. […] https://hacks.mozilla.ac.cn/2009/12/css-backgrounds-firefox-36/ […]

    2011 年 8 月 20 日 上午 3:03

  16. Amit

    我有一个 png 图像,它在 y 方向上重复。但是当我增加宽度时,它保留了原始图像。我在 mozilla 中遇到了这个问题。我的版本是 11。在 chrome 中,它运行良好。需要了解该怎么做

    2012 年 4 月 20 日 上午 11:15

  17. daep996

    完美运行,谢谢。(work perfectly, thanks)

    2013 年 3 月 9 日 下午 4:35

本文评论已关闭。