我在rails应用程序的ruby中使用了image_tag两个不同的图像,现在我想为每个图像指定不同的CSS属性。我只有一个img {}标签。那么,我该怎么做呢?
答案 0 :(得分:0)
def image_tag(source, options = {})
options = options.symbolize_keys
check_for_image_tag_errors(options)
skip_pipeline = options.delete(:skip_pipeline)
options[:src] = resolve_image_source(source, skip_pipeline)
if options[:srcset] && !options[:srcset].is_a?(String)
options[:srcset] = options[:srcset].map do |src_path, size|
src_path = path_to_image(src_path, skip_pipeline: skip_pipeline)
"#{src_path} #{size}"
end.join(", ")
end
options[:width], options[:height] = extract_dimensions(options.delete(:size)) if options[:size]
tag("img", options)
end
在那里看看options参数,如果你传递src,srcset,width和/或选项,它们将由方法本身处理,然后你试图构建的任何东西都会被传递给helper方法{{3 }}:
def tag(name = nil, options = nil, open = false, escape = true)
if name.nil?
tag_builder
else
"<#{name}#{tag_builder.tag_options(options, escape) if options}#{open ? ">" : " />"}".html_safe
end
end
因此,如果您需要指定CSS规则,内联或通过类,则可以将它们添加为图像标记中的选项,因为标记方法会在呈现的“img”HTML标记中添加每个规则。
<%= image_tag 'image', class: 'class', id: 'identifier', style: 'width: 360px; height: 280px' %>
变为
<img class="class" id="identifier" style="width: 360px; height: 280px" src="image">