问题描述
shopify中的
动态部分具有在渲染过程中分配的动态生成的ID和类。由于这些属性可能会随渲染的变化而变化,因此ID和类都不能用作CSS选择器。我想设置某个节的特定实例的样式,该节在我的页面上出现几次,但是由于它们都是从同一模板生成的,因此唯一的选择器是动态ID和动态Class。但是这些不是静态的,因此具有风险。在shopify文档中或与shopify支持人员交谈后,我没有找到任何答案。是否有针对CSS中动态部分的特定实例的方法?
解决方法
是的,Shopify将动态ID添加到部分中,这些ID的前缀为shopify-section-
,然后在其上附加一个数字,例如shopify-section-1582309868874
,但是使用此简洁代码shopify-section-{{ section.id }}
,您应该重新生成该ID。
您还可以在部分中添加唯一的类名,可以在部分设置中添加这些类名,例如:
{% schema %}
{
"name": "Slideshow","class": "slideshow-xyz"
}
{% endschema %}
<div id="shopify-section-[id]" class="shopify-section slideshow-xyz">
[output of the section template]
</div>
要定位页面中的特定部分,您可以在该部分内添加<style type="text/css">
–通常,我会在标记之后和部分设置(aka {% schema %}
)之前– style
标签通过动态生成的ID #shopify-section-{{ section.id }}
来引用部分ID,下面是一个示例:
<style type="text/css">
#shopify-section-{{ section.id }} {
{% if section.settings.background_color != blank %}
background-color: {{section.settings.background_color}};
{% endif %}
}
</style>