Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 有没有一种方法可以直接在css背景中使用图像数据?_Html_Css - Fatal编程技术网

Html 有没有一种方法可以直接在css背景中使用图像数据?

Html 有没有一种方法可以直接在css背景中使用图像数据?,html,css,Html,Css,我已经了解了如何将图像数据嵌入img标记中(感谢下面的回答),但我一直很难将图像数据作为cssbackground嵌入div标记中 如果我获取相同的图像数据并将其放入背景url属性中,它将不再工作 <style> #myDiv { background-url(image-data); } </style> <div id="myDiv" > </div> #myDiv{ 背景url(图像数据); } 这是我的测试html和css

我已经了解了如何将图像数据嵌入
img
标记中(感谢下面的回答),但我一直很难将图像数据作为css
background
嵌入
div
标记中

如果我获取相同的图像数据并将其放入
背景url
属性中,它将不再工作

<style>
#myDiv {
    background-url(image-data);
}
</style>

<div id="myDiv" >

</div>

#myDiv{
背景url(图像数据);
}
这是我的测试html和css

在Mac上的Firefox中,我看不到任何图像

试试这个

#myDiv{
背景:url(图像数据)无重复
}

尝试使用此

#myDiv{
背景:url(图像数据)无重复
}

这是可能的,但不推荐使用。你可以在这里读到

CSS

#myDiv {
  background: url(data:image/gif;base64,IMAGE-DATA-GOES-HERE) no-repeat;
}
话虽如此,您应该考虑将图像嵌入css的利弊:

专业人士

#myDiv {
  background: url(data:image/gif;base64,IMAGE-DATA-GOES-HERE) no-repeat;
}
  • 减少对服务器的请求
  • 图像与CSS代码一起缓存
缺点

#myDiv {
  background: url(data:image/gif;base64,IMAGE-DATA-GOES-HERE) no-repeat;
}
  • css文件变得更大,加载时间也更长
  • 它更难维护,因为在css文件中,您甚至看不到图像的名称,所以您需要“记住”每个css属性中嵌入的图像
  • 页面加载需要更长的时间,因为浏览器等待完成CSS加载-这比不加载图像需要更长的时间
  • 图像和CSS文件请求不能并行加载,因为它们位于单个请求中

如果你有少量的图片,可能是你网站的基本图标,那就可以了。如果您想将其用于高质量的图像,它只会使您的页面加载waaaaaayyyyy toooo slooowww…

这是可能的,但不推荐使用。你可以在这里读到

CSS

#myDiv {
  background: url(data:image/gif;base64,IMAGE-DATA-GOES-HERE) no-repeat;
}
话虽如此,您应该考虑将图像嵌入css的利弊:

专业人士

#myDiv {
  background: url(data:image/gif;base64,IMAGE-DATA-GOES-HERE) no-repeat;
}
  • 减少对服务器的请求
  • 图像与CSS代码一起缓存
缺点

#myDiv {
  background: url(data:image/gif;base64,IMAGE-DATA-GOES-HERE) no-repeat;
}
  • css文件变得更大,加载时间也更长
  • 它更难维护,因为在css文件中,您甚至看不到图像的名称,所以您需要“记住”每个css属性中嵌入的图像
  • 页面加载需要更长的时间,因为浏览器等待完成CSS加载-这比不加载图像需要更长的时间
  • 图像和CSS文件请求不能并行加载,因为它们位于单个请求中

如果你有少量的图片,可能是你网站的基本图标,那就可以了。如果您想将其用于高质量图像,它只会使您的页面加载waaaaaayyyyyy toooo slooowww…

问题在于换行

我以为换行符是编码的一部分

下面是(看看这些线是如何均匀地断开的-看起来是正确的,对吗?)

以下是:

在这里,它正确地呈现了

问题是线路断了

我以为换行符是编码的一部分

下面是(看看这些线是如何均匀地断开的-看起来是正确的,对吗?)

以下是:

在这里,它正确地呈现了

您指的是图像数据base64。您可以引用您的意思是图像数据base64。你可以参考我刚刚更新的代码,不使用
背景url
。我发布了一个在线示例的链接。我刚刚更新了代码,使其不使用
背景url
。我发了一个链接到一个在线例子。谢谢你的提醒。这些都将被嵌入并在客户端运行,并用于比较。因此,不要过线。@1.21gigawatts“嵌入并在客户端运行”是什么意思?浏览器不需要第一次加载HTML(和css)吗?这是一个移动应用程序(嵌入了所有资源)?我正在编码到Base64,并将设计的快照放在后台。开发人员将在顶部看到设计快照和HTML元素。这将是一种洋葱剥皮技术。我将整个html页面(即标记)传递给内部web控件。所以没有在线资源。都是本地的。这是设计师查看其html标记是否与设计匹配的一种方法。这是一个桌面应用程序。@1.21gigawatts好的,有意义:-)谢谢你的提醒。这些都将被嵌入并在客户端运行,并用于比较。因此,不要过线。@1.21gigawatts“嵌入并在客户端运行”是什么意思?浏览器不需要第一次加载HTML(和css)吗?这是一个移动应用程序(嵌入了所有资源)?我正在编码到Base64,并将设计的快照放在后台。开发人员将在顶部看到设计快照和HTML元素。这将是一种洋葱剥皮技术。我将整个html页面(即标记)传递给内部web控件。所以没有在线资源。都是本地的。这是设计师查看其html标记是否与设计匹配的一种方法。这是一个桌面应用程序。@1.21gigawatts好的,有意义:-)