【问题标题】:CSS Background image not loadingCSS背景图像未加载
【发布时间】:2014-02-17 22:02:11
【问题描述】:

我遵循了所有的教程,这些教程都是说的。我在我的 css 样式表中指定了 body 内部的背景,但页面只显示一个空白的白色背景。图像与 .html 和 .css 页面位于同一目录中。教程说

<body background="image.jpeg">

已弃用,因此我在 css 中使用

body {background: url('image.jpeg');}

没有成功。 这是整个 CSS 样式表:

body 
{
background-image: url('nickcage.jpg');
padding-left: 11em;
padding-right: 20em;
font-family:
Georgia, "Times New Roman",
Times, serif; 
color: red;        
}

【问题讨论】:

  • 你的图片放在哪里了?哪个文件夹? “图像”文件夹?如果你尝试过 jsfiddle?
  • 请检查您的图片扩展...
  • 尝试 [CTRL] + [F5] 在浏览器中硬刷新页面。也许这只是一个缓存问题。就像 Nikhil 说的:一般搜索错别字;)
  • 做 1 件事..在 chrome 中创建一个Inspect element,选择body tag 然后单击body 样式中的img....它是否打开?
  • 那是浏览器的缓存问题...!

标签: html css image background


【解决方案1】:

这是另一个图像 url 结果..工作正常...我只是放了一个图像路径..请检查它..

菲德尔:http://jsfiddle.net/287Kw/

body 
{
background-image: url('http://www.birds.com/wp-content/uploads/home/bird4.jpg');
padding-left: 11em;
padding-right: 20em;
font-family:
Georgia, "Times New Roman",
Times, serif; 
color: red;


}

【讨论】:

  • 好的,你的工作,但我曾尝试过在线网址的图像路径,但之前没有工作。你能想出一个为什么这个特别有效,而其他的无效的原因吗?
  • 可能浏览器缓存(按 ctrl+f5)或图片扩展问题...请检查两个大小写。它会没事的
【解决方案2】:

首先,向那些名言挥手告别:

background-image: url(nickcage.jpg); // No quotes around the file name

接下来,如果您的 html、css 和图像都在同一个目录中,那么删除引号应该可以解决它。 但是,如果您的 css 或图像位于您的 html 所在的子目录中,您需要确保图像的路径正确:

background-image: url(../images/nickcage.jpg); // css and image live in subdorectories

background-image: url(images/nickcage.jpg); // css lives with html but images is a subdirectory

希望对你有帮助。

【讨论】:

  • 我最初在引号之外有它,但它不起作用。刚刚又试了一次;没用。
  • 使用单引号只会在 IE/Mac 上造成问题,甚至无法在现代 Mac 上运行。
  • 行情对我来说没有问题。
  • 引号大部分是可选的;在处理特殊字符和空格时,引号变得必要。引号不是问题,只是不必要的麻烦/无用的字节/潜在的拼写错误。
  • 这些点适用于 css background-image: url()。带有文件系统`Index.html\css\stylesheet.css`和index.html\images\image.png
【解决方案3】:

对我来说,以下行对我有用,我把它放在我身体的 css 中(其中图像在我的 css 和 .html 文件所在的同一文件夹中):

background: url('test.jpg');

您必须关心的另一件事是,请注意图片扩展名,确保您的图片具有 .jpeg 或 .jpg 扩展名。谢谢

【讨论】:

    【解决方案4】:

    试试这个

    background-image: url("/yourimagefolder/yourimage.jpg"); 
    

    我在使用background-image: url("yourimagefolder/yourimage.jpg");时遇到了同样的问题

    请注意造成差异的斜线。文件夹的级别是我无法加载图像的原因。我猜你也遇到了同样的问题

    【讨论】:

    • 如果您可以编辑您的答案并解释您显示的代码的作用,以及该代码为何/如何回答问题,它真的很有帮助。
    【解决方案5】:

    我发现问题是您不能为图片“img/image.jpg”使用短网址

    你应该使用完整的 URL “http://www.website.com/img/image.jpg”,但我不知道为什么!!

    【讨论】:

    • 你不需要这样做。相对路径很好。
    【解决方案6】:

    我已经更改了安装 wamp-server 的 apache web 服务器的文档根目录。所以使用相对 url 即 (images/img.png) 不起作用。我必须使用绝对网址才能使其正常工作,即

    背景图片:url("http://localhost/project_x/images/img.png");

    【讨论】:

      【解决方案7】:

      我遇到了同样的问题。问题最终成为图像文件的路径。确保图像路径是相对于 CSS 文件的位置而不是 HTML。

      【讨论】:

        【解决方案8】:

        我遇到了同样的问题,在阅读后发现问题,是斜线。 窗口路径: 图片\green_cup.png

        有效的 CSS: 图片/green_cup.png

        images\green_cup.png 不起作用。

        菲尔

        【讨论】:

          【解决方案9】:

          以下代码对我有用,我将图像放置在 somefolder/assets/img/background_some_img.jpg 中

          background-image: url('../img/background_some_img.jpg');
          background-size: cover;
          background-repeat: no-repeat;
          

          【讨论】:

            【解决方案10】:

            如果您将图像和 css 文件夹放在父目录中,假设资产,那么以下代码可以完美运行。双引号或没有双引号都可以正常工作。

            body{
               background: url("../image/bg.jpg");
            }

            在其他情况下,例如,如果您调用一个类并尝试将背景图像放在特定位置,那么您还必须提及高度和宽度。

            【讨论】:

              【解决方案11】:

              图像的路径应该是相对的,这意味着如果 css 文件在 css 文件夹中,则应该以 ../ 开头,例如

              body{
                 background-image: url(../images/logo.jpg);
              }

              这是因为您必须通过 ../ 路径返回主目录,然后通过图像文件的 /images/logo.jpg 路径返回主目录。 如果您在 html 本身中包含 css 文件

              body{
                 background-image: url(images/logo.jpg);
              }
              这段代码可以正常工作。

              【讨论】:

                【解决方案12】:

                我想分享我的调试过程,因为我被这个问题困扰了至少一个小时。运行本地主机时找不到图像。为了添加一些上下文,我在以下目录中的 rails 应用程序中进行样式设置:

                apps/assets/stylesheets/main.scss
                

                我想在标题标签中呈现背景图像。以下是我的原始实现。

                header {
                    text-align: center;
                    background: linear-gradient(90deg, #d4eece, #d4eece, #d4eece),
                              url('../images/header.jpg') no-repeat;
                              background-blend-mode: multiply;
                              background-size: cover;
                }
                

                ...因此,我在 Rails 服务器和 Chrome 开发工具的控制台中分别收到以下错误:

                ActionController::RoutingError (No route matches [GET] "/images/header.jpg")
                GET http://localhost:3000/images/header.jpg 404 (Not Found)
                

                我尝试了不同的 url 变体:

                url('../images/header.jpg') # DID NOT WORK
                url('/../images/header.jpg') # DID NOT WORK
                url('./../images/header.jpg') # DID NOT WORK
                

                它仍然没有工作。那时,我很困惑……我决定将图片文件夹从 assets 目录(这是默认目录)移动到 stylesheets 目录中,并尝试了以下 url 的变体:

                url('/images/header.jpg') # DID NOT WORK
                url('./images/header.jpg') # WORKED
                url('images/header.jpg') # WORKED
                

                我不再收到控制台和 Rails 服务器错误。但是由于某种原因,图像仍然没有显示。暂时放弃后,我发现解决这个问题的方法是添加一个 height 属性以便显示图像...

                header {
                    text-align: center;
                    height: 390px;
                    background: linear-gradient(90deg, #d4eece, #d4eece, #d4eece),
                              url('images/header.jpg') no-repeat;
                              background-blend-mode: multiply;
                              background-size: cover;
                }
                

                不幸的是,我仍然不确定为什么使用“../images/header.jpg”的 3 次初始 url 尝试在 localhost 上不起作用,或者我什么时候应该或不应该在开头添加句点网址。

                这可能与如何在 application.html.erb 中设置默认链接标签有关,或者它可能是 .scss 与 .css 的事情。或者,也许这就是带有 url() 的背景属性的工作方式(图像需要与 css 文件位于同一目录中)?无论如何,这就是我解决 CSS 背景图像未在 localhost 上加载的问题的方法。

                【讨论】:

                  【解决方案13】:

                  我遇到了同样的问题。 如果您在文件夹中有图像,请尝试此操作

                  background-image: url(/resources/img/hero.jpg);
                  

                  不要忘记将反斜杠放在第一个文件夹的前面。

                  【讨论】:

                    【解决方案14】:

                    我可以在这里带来一点帮助......似乎当你使用 say background-image: url("/images/image.jpg");或背景图像: url("images/image.jpg");或背景图像: url("../images/image.jpg");不同的浏览器似乎对此有不同的看法。第一个浏览器似乎将其视为 domain.com/images/image.jpg.... 第二个浏览器在 domain.com/css/images/image.jpg.... domain.com/PathToImageFile/image.jpg...希望这会有所帮助

                    【讨论】:

                    • 您自己尝试过吗?抱歉,我认为您的解决方案不准确。
                    • 使用谷歌开发者工具自己尝试,检查...您可以将鼠标悬停在 ("../images/image.jpg") 链接上,它会为您提供 url 名称...试用错误告诉我发生了什么。
                    • 对不起你是正确的第一个和第二个被切换了......“images/images.jpg”被视为/css/images/image.jpg和“/images/images.jpg”只是/images/image.jpg... 对不起
                    【解决方案15】:

                    在chrome开发者工具中,可以查看图片是否加载。查看检查并使用 css 样式选项卡。如果图像在那里加载,那么有一段时间你还没有添加 css

                    高度:500px;

                    图像的属性。

                    yourselector {
                    background-image: url("photographer.jpg"); /* The image used */
                      background-color: #cccccc; /* Used if the image is unavailable */
                      height: 500px; /* You must set a specified height */
                      background-position: center; /* Center the image */
                      background-repeat: no-repeat; /* Do not repeat the image */
                      background-size: cover; /* Resize the background image to cover the entire 
                                              container */
                    }
                    

                    【讨论】:

                      【解决方案16】:

                      在我的例子中,我使用双引号 "" 而不是单引号 ''

                        const styling = {                
                      //      backgroundImage: `url('${backgroundSrc}')`,  <------ HERE
                              backgroundRepeat: "no-repeat",
                              backgroundPosition: "center",
                              backgroundSize: "cover"        
                          }
                      

                      一些链接中的引号没有被转义,所以它们搞砸了。

                      请改用双引号 ""。像这样 backgroundImage: `url("${backgroundSrc}")`,

                      【讨论】:

                        【解决方案17】:

                        这是因为background: url('image.jpeg'); 在空白&lt;div&gt; 中不起作用 在属于图像&lt;div&gt;的类中使用padding

                        body 
                        {
                        background-image: url('../../nickcage.jpg');
                        padding: 30%;
                        font-family:
                        Georgia, "Times New Roman",
                        Times, serif; 
                        color: red;        
                        }
                        

                        【讨论】:

                          【解决方案18】:

                          在我的例子中,它最终成为具有 0px 高度和宽度的 div。我调整了 div 的大小并看到了我的图像。

                          【讨论】:

                            猜你喜欢
                            • 2017-05-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2023-01-26
                            • 2015-02-28
                            • 2011-11-03
                            • 1970-01-01
                            相关资源
                            最近更新 更多