【问题标题】:which is best way to set background url in css?在css中设置背景网址的最佳方法是什么?
【发布时间】:2014-04-18 16:31:04
【问题描述】:

我是 mvc 应用程序和在 aspx 视图引擎中创建站点的新手。 我在 mycss/style.css 中有一个 css 文件,图像在 images/img1.jpg 中。 有什么区别

 background: url("../images/img1.jpg") no-repeat;
 and background: url("~/images/img1.jpg") no-repeat;

在 style.css 中

【问题讨论】:

  • 我不认为 ~/ 可以在 css 文件中使用。
  • 文件路径中的点(./Images)和双点(../Images)有什么区别?
  • ../Images 表示上一个目录,然后下到Images 文件夹。 ./Images 表示进入当前目录下的Images 文件夹。
  • 你是说这两种方式都适合你吗?
  • 这个thread 解释了css url是如何在后台工作的[1]:

标签: html css asp.net-mvc


【解决方案1】:
background: url("../images/img1.jpg") no-repeat;

以上是相对于当前位置的。上一个文件夹,再下到 images 文件夹,最后得到图片文件。

background: url("~/images/img1.jpg") no-repeat;

以上内容无效。波浪号表示从站点根目录开始。但是 CSS 不支持这种语法。相当于background: url("/images/img1.jpg") no-repeat;

根据您的网站布局,两者都可以使用。我倾向于使用根相对路径,因为如果您将 CSS 文件移动到不同的文件夹,它可能会因相对于当前位置的路径而中断。

关于相对与站点相对与绝对的良好讨论,see this article

【讨论】:

    【解决方案2】:

    你也可以这样写background: url("images/img1.jpg") no-repeat; 没有任何“前缀”,表示“images 文件夹中的图像。

    【讨论】:

    • 这是假设 images 文件夹与 CSS 位于同一文件夹中。从问题中发布的代码来看,情况可能并非如此。
    【解决方案3】:

    这是正确的方法。

    background: url("../images/img1.jpg") no-repeat;
    

    【讨论】:

    • 如何解释为什么带有~ 的版本也不正确?
    猜你喜欢
    • 2021-04-16
    • 1970-01-01
    • 2015-11-23
    • 2020-09-16
    • 2010-09-09
    • 2013-07-22
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    相关资源
    最近更新 更多