gpt4 book ai didi

php - Magento:在产品页面中将产品选项显示为两列中的列表元素

转载 作者:行者123 更新时间:2023-11-28 00:54:41 24 4
gpt4 key购买 nike

有实际的 Magento 1.9.3 情况...

在产品页面中有很多配置选项。需要节省空间,所以需要将一列垂直产品选项列表变成两列列表,以将空间减少到 50%。

已经尝试了几种方法,也是这个: https://magento.stackexchange.com/questions/70857/display-product-options-change-layout-of-in-block-after-info-column

结合 Css Styling list elements in two columns

还有这个 https://csswizardry.com/2010/02/mutiple-column-lists-using-one-ul/

但是真的没弄明白。停在结果上,只在一条水平线上显示所有内容。问题是,如果有 10 个属性可供选择,该行会变得非常紧,无法识别任何内容。

有没有人可以调整代码?

代码如下:

/template/catalog/product/view/type/options/configurable.phtml

    <?php
$_product = $this->getProduct();
$_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes());
$_jsonConfig = $this->getJsonConfig();
$_renderers = $this->getChild('attr_renderers')->getSortedChildren();
?>
<?php if ($_product->isSaleable() && count($_attributes)):?>
<div class="items">
<dl>
<?php foreach($_attributes as $_attribute): ?>
<?php
$_rendered = false;
foreach ($_renderers as $_rendererName):
$_renderer = $this->getChild('attr_renderers')->getChild($_rendererName);
if (method_exists($_renderer, 'shouldRender') && $_renderer->shouldRender($_attribute, $_jsonConfig)):
$_renderer->setProduct($_product);
$_renderer->setAttributeObj($_attribute);
echo $_renderer->toHtml();
$_rendered = true;
break;
endif;
endforeach;

if (!$_rendered):
?>
<dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
<dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
<div class="input-box">
<select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
<option><?php echo $this->__('Choose an Option...') ?></option>
</select>
</div>
</dd>
<?php endif; ?>
<?php endforeach; ?>
</dl>
</div>
<script type="text/javascript">
var spConfig = new Product.Config(<?php echo $_jsonConfig ?>);
</script>
<?php echo $this->getChildHtml('after') ?>
<?php endif;?>

最佳答案

如果没有看到输出,很难知道您到底想要什么,但如果您希望选项位于 2 列中,这应该可行。

.items dl {
display:flex;
flex-wrap: wrap;
}

.items dl .options-wrapper{
width: 50%;
}

//If you want on smaller screens to make them 1 row.

@media screen and (max-width: 768px) {
.items dl .options-wrapper{
width: 100%;
}
}
   <?php
$_product = $this->getProduct();
$_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes());
$_jsonConfig = $this->getJsonConfig();
$_renderers = $this->getChild('attr_renderers')->getSortedChildren();
?>
<?php if ($_product->isSaleable() && count($_attributes)):?>
<div class="items">
<dl>
<?php foreach($_attributes as $_attribute): ?>
<?php
$_rendered = false;
foreach ($_renderers as $_rendererName):
$_renderer = $this->getChild('attr_renderers')->getChild($_rendererName);
if (method_exists($_renderer, 'shouldRender') && $_renderer->shouldRender($_attribute, $_jsonConfig)):
$_renderer->setProduct($_product);
$_renderer->setAttributeObj($_attribute);
echo $_renderer->toHtml();
$_rendered = true;
break;
endif;
endforeach;

if (!$_rendered):
?>
<div class="options-wrapper">
<dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
<dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
<div class="input-box">
<select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
<option><?php echo $this->__('Choose an Option...') ?></option>
</select>
</div>
</dd>
</div>

<?php endif; ?>
<?php endforeach; ?>
</dl>
</div>
<script type="text/javascript">
var spConfig = new Product.Config(<?php echo $_jsonConfig ?>);
</script>
<?php echo $this->getChildHtml('after') ?>
<?php endif;?>

关于php - Magento:在产品页面中将产品选项显示为两列中的列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53010310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com