css - 获取背景图像尺寸(未设置时)

标签 css background-image

我需要获取背景图片的宽度和高度,我见过一些示例,其中只有在 CSS 中设置了属性才能轻松检索这些内容。

如果没有在 CSS 中内联或在 CSS 文件中设置宽度和高度,是否仍然可以获取宽度和高度?

这就是我要处理的所有...

element.style {
    background-image: url(generated-by-cms.jpg);
}

谢谢!

最佳答案

如果您没有设置该属性,我认为您无法通过 CSS 获取它。由于图像是从外部加载的,因此 CSS 文件不知道大小。此外,如果您尝试通过背景图像进行设置,图像将受到元素大小的限制。

然而,您可以做的是通过 Javascript 加载图像(因为您已经有了 url),然后将您的元素设置为您想要的尺寸。例如,假设您的 HTML 文件包含一个 id 为“myimg”的 img 标签

<img id="myimg"></img> <!-- an empty image -->

然后您可以像这样设置您的 Javascript:

var img = new Image(); // an empty image object
img.src = 'someurl';   // image url

// this is fired after 'someurl' is loaded.
img.onload = function() {
    document.getElementById('myimg').src    = img.src;
    document.getElementById('myimg').width  = img.width;
    document.getElementById('myimg').height = img.height;
}

请注意,如果您不想,则不必设置空图像或其属性。您可以操纵 img.width 和 img.height 属性,并在需要时在其他地方使用它。

关于css - 获取背景图像尺寸(未设置时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46959175/

相关文章:

css - 整个部分位于一页上的分页符

javascript - 如何在弹出窗口中显示日历

html - 如何定位直接文本而不是标签内的文本?

html - 背景图像位于 '0% 0%' w.r.t 屏幕而不是父元素,为什么?

CSS background-image 和 safari 不能很好地播放,甚至不会出现在调试器中

html - CSS `background-repeat` 属性

css - 背景尺寸 : cover versus background-size: contain

css - 制作整个 CSS 表!重要

javascript - 我的 toggleclass 有问题

php - 从 Wordpress 自定义插件 php 文件内部链接的 CSS 背景图像