gpt4 book ai didi

ruby-on-rails - 使用带有srcset属性的image_tag吗?

转载 作者:行者123 更新时间:2023-12-04 05:09:05 30 4
gpt4 key购买 nike

我尝试在srcset中使用image_tag属性,但无法使其正常工作。

我不确定这是语法错误还是在image_tag中通常不起作用。

是否可以在image_tag中使用srcset属性?

如果是,怎么办?,如果不是,为什么呢?有没有解决的办法?

<%= link_to(image_tag("logo.png", alt: "logo", :id => "logo"), root_path) %>

最佳答案

无需将image_tag添加到link_to“name”选项,您可以使用open block并在其中传递图像。

如果要使用srcset属性,则可以通过创建帮助程序来扩展image_tag的功能:

def image_set_tag(source, srcset = {}, options = {})
srcset = srcset.map { |src, size| "#{path_to_image(src)} #{size}" }.join(', ')
image_tag(source, options.merge(srcset: srcset))
end

它以逗号连接每个大小,因此您可以执行以下操作:
<%= link_to root_path do %>
<%= image_set_tag 'logo.jpg', {
'logo_640.jpg' => '640w',
'logo_1024.jpg' => '1024w',
'logo_1980.jpg' => '1980w'
}, sizes: '100vw', alt: 'logo', id: 'logo' %>
<% end %>

如您所见,5.2.1 Rails版本中 ActionView::Helpers::AssetTagHelper#image_tag中引入的更改使您可以传递 srcset选项,其中包含包含图像的不同响应版本的哈希或2D数组的数组:
image_tag("icon.png", srcset: { "icon_2x.png" => "2x", "icon_4x.png" => "4x" })
# => <img src="/assets/icon.png" srcset="/assets/icon_2x.png 2x, /assets/icon_4x.png 4x">

image_tag("pic.jpg", srcset: [["pic_1024.jpg", "1024w"], ["pic_1980.jpg", "1980w"]], sizes: "100vw")
# => <img src="/assets/pic.jpg" srcset="/assets/pic_1024.jpg 1024w, /assets/pic_1980.jpg 1980w" sizes="100vw">

因此,如果您使用的是Rails的最新版本,则可以只使用 image_tag而不是编写自己的实现。

关于ruby-on-rails - 使用带有srcset属性的image_tag吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45360050/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com