CSS background-image-正确的用法是什么?


145

CSS background-image属性的正确用法是什么?我想了解的关键是

  1. 是否需要用引号引起来,即: background-image: url('images/slides/background.jpg');
  2. 可以是相对路径(如上所述)还是必须是完整URL?
  3. 我应该注意的其他事项,以确保它在符合标准的浏览器中正常运行。


只需注意一下:在Netbeans 7中,如果未在url()内保留路径的引用,则会收到警报“意外值令牌url”。如果将路径用单引号或双引号引起来,则警报将消失。
kante 2012年


Answers:


157

路径可以是完整路径,也可以是相对路径(当然,如果映像来自另一个域,则必须是完整路径)。

您不需要在URI中使用引号;语法可以是:

background-image: url(image.jpg);

要么

background-image: url("image.jpg");

但是,从W3

出现在未加引号的URI中的某些字符,例如括号,空格字符,单引号(')和双引号(“),必须用反斜杠转义,以便得到的URI值是URI标记:'\(', '\)'。

因此,在此类情况下,有必要使用引号或双引号,或者转义字符。


48
  1. 不,您不需要引号。

  2. 是的你可以。但是请注意,相对URL是从样式表的URL解析的。

  3. 最好不要使用引号。我认为有些客户不了解他们。


28

1)引号是一个好习惯

2)它可以是相对路径,例如:

background-image: url('images/slides/background.jpg');

将在从中加载css的文件夹中查找images文件夹。因此,如果图像在另一个文件夹中或不在CSS文件夹树中,则应使用绝对路径或相对于根路径(以/开头)

3)您应该对背景图片使用完整的声明,以使其在符合标准的浏览器中始终如一地运行:

background:blue url('/images/clouds.jpg') no-repeat scroll left center;

1
你不是要background代替background-image吗?
浓汤

2
因为有时您在图像名称或路径名称中有空格,这可能会导致问题。
TheVillageIdiot 2014年

@TheVillageIdiot仍然在第三行的background-image不说,应该是background由@Gumbo建议
克伦民族联盟

5

相对路径很好,不需要引号。可以提供帮助的另一件事是background,如果图像由于某些原因而无法加载或不可用,则可以使用“速记” 属性指定背景色。

#elementID {
    background: #000 url(images/slides/background.jpg) repeat-x top left;
}

还要注意,您可以指定图像是否重复以及向哪个方向重复(如果未指定,默认为水平和垂直重复),还可以指定图像相对于其容器的位置。


4

如果图像位于css文件的单独目录中,并且您希望相对路径从网站的根开始:

background-image: url('/Images/bgi.png');

我来这里并不是在寻找可以使用相对路径的...我正在寻找如何使用相对路径的... +1以明确路径的起始位置。
me_

1

只需检查确切图像所在的目录结构,假设您在css文件夹之外有一个css文件夹和imagess文件夹,那么您将不得不使用“ ../images/image.jpg”,它将像对我一样工作,只需确保目录结构。




0

查看有关背景图像URI的各个站点参考页面

  1. 它不一定要用引号引起来,但可以根据需要使用它们。(我认为IE5 / Mac不支持单引号)。
  2. 相对和绝对都可以;相对路径是相对于CSS文件的路径。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.