背景愿望

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

thebackground属性是使当今令人惊叹的 CSS 设计成为可能的关键因素。它由以下几个属性组成background-color, background-image, background-position, background-repeat,以及background-attachment。非常简单,非常强大。我还有几个其他想法,在我看来很有道理background-opacity以及background-anchor.

我们现在拥有的功能

  • background-color:使用关键字、十六进制代码、rgb 或 rgba 设置纯色背景。
  • background-image:指定要应用于背景的单个图像。
  • background-position:将背景的位置移动到与顶部或底部、左侧或右侧或任一侧的中间对齐。或者,从左上角偏移特定距离。
  • background-repeat:如果将图像设置为背景,并且图像小于元素的可视区域,则此属性设置是否应水平重复该图像 (repeat-x)、垂直重复 (repeat-y)、两者都重复 (repeat) 或根本不重复 (no-repeat)。
  • background-attachment:这将设置元素的背景是否应像正常一样附加到元素 (scroll) 或附加到页面本身 (fixed)。

我们在 CSS3 中获得的功能

CSS3 引入了多个背景。换句话说,指定要用于单个元素并在不同位置放置的不同图像。简单而强大的功能。想象一下一个blockquote您希望在左上角使用引号开头图像,并在右下角使用引号结尾图像。通常,您需要使用额外的div在内部并为每个元素应用一个背景。在 CSS3 中不再需要。

background:
         url(images/openquote.png) top left no-repeat,
         url(images/closequote.png) bottom right no-repeat;

最新的 WebKit 浏览器(Chrome 和 Safari)、Firefox 3.6+ 和 Opera 10.5+ 中支持多个背景。

CSS3 还引入了background-origin以及background-clip。这两个属性都处理盒模型如何与背景相关联。通常,背景图像将覆盖填充,但不覆盖边框。因此,如果您有 10px 底部边框和 100px 底部填充,则背景将在 100px 填充中,但不会在 10px 边框中。background-origin指定“左上角”的确切位置(内容顶部、边框顶部或填充顶部)。background-clip指定背景应停止的位置(边框、填充或内容)。它们的值为padding-box, border-box,或content-box.

我认为很酷的功能

background-opacity: 0.0 – 1.0

此设置将更改背景的透明度级别(0 表示完全透明,1 表示完全不透明)。这将影响纯色背景、图像或两者的组合。我们已经可以在 RGBa 中设置背景颜色,并且我们已经可以使用 alpha 透明背景图像,因此也许从表面上看,这似乎并不是一个重大的补充。但是,能够在 CSS 级别设置背景图像的透明度将使我们能够通过 JavaScript 或新的 CSS 过渡来设置动画级别。例如,您可以通过调整 background-opacity 级别来淡入表单标签上的红色感叹号图形,而无需使用其他元素来执行此操作。还可以考虑预加载。将背景图形设置为background-opacity: 0;仍将在页面加载时加载图像,并在需要时立即显示。

background-anchor: anc-topleft | anc-topright | anc-bottomleft | anc-bottomright

这将是一个与background-positon属性配对的属性。如果background-anchor设置为右上角,并且background-position设置为 10px 10px,则background-image将定位在元素右上角向下 10px 和向内 10px 的位置。目前无法做到这一点。您可以将背景图像与顶部/底部左侧/右侧或任一侧的中心对齐,但无法与除左上角以外的任何位置设置一定的距离。

如果background-position要使用关键字,background-anchor将被忽略。

请注意值的奇怪名称,例如“anc-bottomleft”。我知道这很奇怪,并且可能不是执行此操作的方式。我没有使用标准选择(如“左上角”),因为这将与在使用 background 的简写语法时与background-position一起使用的相同关键字冲突。

锚定背景图像将使某些操作更容易,例如,在不先进行高度计算的情况下,从元素底部向上滑动背景图像。

现在全部放在一起

background:
         white url(images/openquote.png) anc-topleft 10px 10px no-repeat 0.5,
         white url(images/closequote.png) anc-bottomright 10px 10px no-repeat 0.5;

以上代码纯属假设,并且按原样**无法工作**。