我在修改一個有幾個塊的部分時遇到了一個奇怪的問題。基本上,我想在已經存在的部分中添加一個新的塊。我已經建立了模式,這部分工作正常。但問題是,我不能使用a & ltstyle & gt或者{% style %}標記。但是這些設置在HTML行中運行良好。注意:部分設置在樣式標簽中起作用,只是塊設置不起作用。
示例1(不起作用):
<style>
.custom_box {
background: {{block.settings.box_color_from_block}};
}
</style>
例2(作品):
<div class="custom_box" style="background: {{block.settings.box_color_from_block}};"> </div>
例3(作品):
<style>
.custom_box {
background: {{section.settings.box_color_from_section}};
}
</style>
注意:在我用id & quotbox _ color _ from _ block & quot,當它不起作用時,我在id為& quotbox _ color _ from _ section & quot為了測試。而且我發(fā)現(xiàn)了上面的結果。
我在谷歌上搜索了一下,發(fā)現(xiàn)了兩年前的一個類似的StackOverflow帖子。在那里,有人建議在部分中而不是在塊中添加輸入。當然,它可以工作,但是對我來說不可用。我特別需要示例1起作用。
設置是我生成一個& ltdiv & gt對集合中的每個產品使用{% for %}循環(huán)。因此,實施例2中的方法變得不合適。并且每個& ltdiv & gt需要有不同的背景顏色。大概會有5/6個顏色選擇器(根據不同的系列會有所不同)。因此,將它們添加到該部分將使已經擁擠的部分更加擁擠。因此,我想在塊設置中添加顏色選擇器,這是相當空的。
提前感謝你通讀,如果能給我一個答案,我將不勝感激。我的主要問題是,我對這種情況感到困惑。我真的不知道發(fā)生了什么,為什么。
根據您提供的信息,在示例2中它可以工作,因為您在div中使用了block . settings . box _ color _ from _ block,該div位于liquid for循環(huán)中。
在for循環(huán)中,循環(huán)通過section.blocks來獲取每個塊數(shù)據:
{% for block in section.blocks %}
<div class="custom_box" style="background: {{block.settings.box_color_from_block}};"></div>
{% endfor %}
在你的示例1中,你沒有在CSS中循環(huán)liquid for循環(huán),因此{{block}}是未定義的。
解決方案:
循環(huán)需要兩個,HTML需要一個,CSS需要一個。
在HTML循環(huán)中,使用{{block.id}}為每個塊創(chuàng)建具有唯一ID的div。
在CSS中的第二個for循環(huán)中,您使用div ID通過塊設置來定制它
<style>
{% for block in section.blocks %}
#custom_box_{{block.id}}{
background: {{block.settings.box_color_from_block}}
}
{% endfor %}
</style>
{% for block in section.blocks %}
<div id="custom_box_{{block.id}}" class="custom_box"></div>
{% endfor %}