#html #css #shopify #liquid
#HTML #css #Shopify #жидкость
Вопрос:
Каким образом было бы лучше иметь блоки в 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 -%}
Ответ №1:
Применяется только последний стиль, потому что вы переопределяете стили в классе. Либо добавьте встроенные стили, либо создайте уникальный класс для каждого блока, используя id. Я создаю отдельный класс для каждого блока, используя идентификатор блока в приведенном ниже коде.
<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 %}
Комментарии:
1. Большое вам спасибо, решил мою проблему на 100%. Я читал в шпаргалке Shopify
block.id
, но не знал, как правильно ее использовать. Еще раз спасибо