样式属性中的内联背景图像的WebP回退

时间:2018-10-20 作者:Superfein

我开发了一个主题,它有一个称为项目的自定义帖子类型。在单个项目页面上,有一个具有高质量滚动背景图像的视差样式部分。我正在使用一个自定义字段(通过ACF插件)将此背景图像添加到项目页面,并且此自定义字段被编码到单个项目模板文件中。这意味着我的所有项目页面只需要一个模板。

这个背景图像质量很高,因此是一个相当大的图像文件(对我来说保持图像质量很重要)。我想将WebP图像作为背景图像添加到此视差部分。但我当然需要为不支持WebP图像格式的浏览器提供后备支持。我看过很多关于如何为通过<img> 标记,或通过CSS文件中的“背景图像”属性。但我还没有看到一篇文章提到如何通过style属性为背景图像输出提供回退。

我无法通过CSS文件或CSS类输出背景图像,因为ACF只需要在PHP文件中使用,所以自定义字段需要直接在模板文件中编码(在必要的<div>)

总之,如何为通过style属性输出的图像提供WebP图像格式的回退?如何为内联背景图像CSS提供回退?

代码示例:

<section class="parallaxSection parallaxWide">          
    <div class="parallaxWide--wrap">
        <div class="parallaxWide--elementWrap">
            <div class="parallaxWide--element" style="background-image:url(<?php if( get_field(\'parallax_bgimage\' )) { the_field(\'parallax_bgimage\'); } ?>);">
            </div>
        </div>
    </div>
</section>  
或者,是否有其他解决方案可以输出我丢失的这些背景图像?

1 个回复
SO网友:Antti Koskinen

如果你有冒险精神的话,这里有几个疯狂的想法,你可以试试。

1) 编写一些条件逻辑$_SERVER 要检测用户的浏览器类型是否正确,版本是否足够高,可能需要支持WebP格式。

尝试使用$_SERVER [\'HTTP_USER_AGENT\'] 另请参见https://stackoverflow.com/questions/13252603/how-does-http-user-agent-work

2) 将WebP和回退映像URL添加为data attributes 并使用js进行浏览器检测,并将WebP或回退图像设置为背景图像。

e、 g。<div data-webp-bg="some-img-url" data-fallback-bg="another-img-url"></div>

p、 我不知道这些能起到多大的作用,但我现在感觉很有创意

EDIT 22.10.2018如果你想为我的疯狂想法想出有效的解决方案,这里有两条线索,你可以遵循并研究更多。

对于php,请看https://github.com/hisorange/browser-detect我想最初是为拉雷维尔设计的,但我想你也可以在其他地方使用)或者https://github.com/cbschuld/Browser.php 例如

对于js来说,这个旧线程可能很有用https://stackoverflow.com/questions/5916900/how-can-you-detect-the-version-of-a-browser. 另请参见https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator

几分钟的谷歌搜索给了我这些相关的文章,https://artisansweb.net/detect-browser-php-javascript/https://medium.com/creative-technology-concepts-code/detect-device-browser-and-version-using-javascript-8b511906745

p、 很抱歉,所有的链接都没有代码。这里的链接只是为了推动正确的方向,并促进自己的研究和学习。这对我来说也是一次学习经历

结束

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication:

样式属性中的内联背景图像的WebP回退 - 小码农CODE - 行之有效找到问题解决它

样式属性中的内联背景图像的WebP回退

时间:2018-10-20 作者:Superfein

我开发了一个主题,它有一个称为项目的自定义帖子类型。在单个项目页面上,有一个具有高质量滚动背景图像的视差样式部分。我正在使用一个自定义字段(通过ACF插件)将此背景图像添加到项目页面,并且此自定义字段被编码到单个项目模板文件中。这意味着我的所有项目页面只需要一个模板。

这个背景图像质量很高,因此是一个相当大的图像文件(对我来说保持图像质量很重要)。我想将WebP图像作为背景图像添加到此视差部分。但我当然需要为不支持WebP图像格式的浏览器提供后备支持。我看过很多关于如何为通过<img> 标记,或通过CSS文件中的“背景图像”属性。但我还没有看到一篇文章提到如何通过style属性为背景图像输出提供回退。

我无法通过CSS文件或CSS类输出背景图像,因为ACF只需要在PHP文件中使用,所以自定义字段需要直接在模板文件中编码(在必要的<div>)

总之,如何为通过style属性输出的图像提供WebP图像格式的回退?如何为内联背景图像CSS提供回退?

代码示例:

<section class="parallaxSection parallaxWide">          
    <div class="parallaxWide--wrap">
        <div class="parallaxWide--elementWrap">
            <div class="parallaxWide--element" style="background-image:url(<?php if( get_field(\'parallax_bgimage\' )) { the_field(\'parallax_bgimage\'); } ?>);">
            </div>
        </div>
    </div>
</section>  
或者,是否有其他解决方案可以输出我丢失的这些背景图像?

1 个回复
SO网友:Antti Koskinen

如果你有冒险精神的话,这里有几个疯狂的想法,你可以试试。

1) 编写一些条件逻辑$_SERVER 要检测用户的浏览器类型是否正确,版本是否足够高,可能需要支持WebP格式。

尝试使用$_SERVER [\'HTTP_USER_AGENT\'] 另请参见https://stackoverflow.com/questions/13252603/how-does-http-user-agent-work

2) 将WebP和回退映像URL添加为data attributes 并使用js进行浏览器检测,并将WebP或回退图像设置为背景图像。

e、 g。<div data-webp-bg="some-img-url" data-fallback-bg="another-img-url"></div>

p、 我不知道这些能起到多大的作用,但我现在感觉很有创意

EDIT 22.10.2018如果你想为我的疯狂想法想出有效的解决方案,这里有两条线索,你可以遵循并研究更多。

对于php,请看https://github.com/hisorange/browser-detect我想最初是为拉雷维尔设计的,但我想你也可以在其他地方使用)或者https://github.com/cbschuld/Browser.php 例如

对于js来说,这个旧线程可能很有用https://stackoverflow.com/questions/5916900/how-can-you-detect-the-version-of-a-browser. 另请参见https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator

几分钟的谷歌搜索给了我这些相关的文章,https://artisansweb.net/detect-browser-php-javascript/https://medium.com/creative-technology-concepts-code/detect-device-browser-and-version-using-javascript-8b511906745

p、 很抱歉,所有的链接都没有代码。这里的链接只是为了推动正确的方向,并促进自己的研究和学习。这对我来说也是一次学习经历

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: