Shopify - 具有不同样式的重复块
Shopify - Duplicate Blocks with separate style
在 Shopify 中使用相同样式语法的块的最佳方式是什么?
如果我在 Shopify 模版编辑器中选择同一个块两次,则会应用第二个块的样式。我怎样才能让两个块都有自己的风格?
我的是这样的:
风格:
<style>
{%- for block in section.blocks -%}
.announce {
font-size: {{ block.settings.announce_text_size | append: 'px'}};
font-weight: {{ block.settings.announce_text_weight }};
{%- if block.settings.announce_text_align == 'left' -%}
padding-left: 45px;
{%- endif -%}
{%- if block.settings.announce_text_align == 'right' -%}
padding-right: 45px;
{%- endif -%}
color: {{ block.settings.announce_text_color }};
}
{%- endfor -%}
</style>
内容:
{%- for block in section.blocks -%}
{%- if block.type == 'announcement' -%}
<div class="announce">
{%- if block.settings.announce_text != blank -%}
{{ block.settings.announce_text }}
{%- endif -%}
</div>
{%- endif -%}
{%- endfor -%}
仅应用最后一个样式,因为您正在覆盖 class 上的样式。要么添加内联样式,要么使用 id 为每个块创建唯一的 class。我在下面的代码中使用块 ID 为每个块创建不同的 class。
<div class="page-width" data-section-id="{{ section.id }}">
<style>
{% for block in section.blocks %}
.announcement-{{block.id}} {
font-size: {{block.settings.fontSize | append: "px"}};
}
{% endfor %}
</style>
{% if section.blocks.size > 0 %}
{% for block in section.blocks %}
<div class="announcement-{{block.id}}">
{{block.settings.announcementText}}
</div>
{% endfor %}
{% endif %}
</div>
{% schema %}
{
"name": "Test Section",
"class": "test-section",
"max_blocks": 5,
"blocks": [
{
"type": "sample-block",
"name": "Block",
"settings": [
{
"type": "text",
"id": "announcementText",
"label": "Announcement Text"
},
{
"type": "range",
"id": "fontSize",
"min": 10,
"max": 50,
"step": 4,
"unit": "px",
"label": "Font Size",
"default": 10
}
]
}
]
}
{% endschema %}
在 Shopify 中使用相同样式语法的块的最佳方式是什么? 如果我在 Shopify 模版编辑器中选择同一个块两次,则会应用第二个块的样式。我怎样才能让两个块都有自己的风格?
我的是这样的:
风格:
<style>
{%- for block in section.blocks -%}
.announce {
font-size: {{ block.settings.announce_text_size | append: 'px'}};
font-weight: {{ block.settings.announce_text_weight }};
{%- if block.settings.announce_text_align == 'left' -%}
padding-left: 45px;
{%- endif -%}
{%- if block.settings.announce_text_align == 'right' -%}
padding-right: 45px;
{%- endif -%}
color: {{ block.settings.announce_text_color }};
}
{%- endfor -%}
</style>
内容:
{%- for block in section.blocks -%}
{%- if block.type == 'announcement' -%}
<div class="announce">
{%- if block.settings.announce_text != blank -%}
{{ block.settings.announce_text }}
{%- endif -%}
</div>
{%- endif -%}
{%- endfor -%}
仅应用最后一个样式,因为您正在覆盖 class 上的样式。要么添加内联样式,要么使用 id 为每个块创建唯一的 class。我在下面的代码中使用块 ID 为每个块创建不同的 class。
<div class="page-width" data-section-id="{{ section.id }}">
<style>
{% for block in section.blocks %}
.announcement-{{block.id}} {
font-size: {{block.settings.fontSize | append: "px"}};
}
{% endfor %}
</style>
{% if section.blocks.size > 0 %}
{% for block in section.blocks %}
<div class="announcement-{{block.id}}">
{{block.settings.announcementText}}
</div>
{% endfor %}
{% endif %}
</div>
{% schema %}
{
"name": "Test Section",
"class": "test-section",
"max_blocks": 5,
"blocks": [
{
"type": "sample-block",
"name": "Block",
"settings": [
{
"type": "text",
"id": "announcementText",
"label": "Announcement Text"
},
{
"type": "range",
"id": "fontSize",
"min": 10,
"max": 50,
"step": 4,
"unit": "px",
"label": "Font Size",
"default": 10
}
]
}
]
}
{% endschema %}