Magento media.phtml产品<img/>的style =“top:”?

时间:2013-03-25 08:38:49

标签: php css magento templates

我想从左栏中的product.info.media移动catalog.xml块以获取所有产品视图。

要实现这一点,我已在我的local.xml文件中添加了两行:

<catalog_product_view>
    <reference name="left">
        <block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/>
    </reference>
    <reference name="product.info">
        <action method="unsetChild"><child>media</child></action>
    </reference>
</catalog_product_view>

media.phtml与1.7.0.2版magento中的默认文件二进制相同。

奇怪的是,网页上的产品图片有以下代码:

<img id="image" src="path/to/image.jpg" alt="" title="" style="position: relative; left: 0px; width: 220px; top: 215px;">

为什么要为顶部定义样式?!由于此样式在元素内定义,我甚至无法用css更改它。有人能解释一下magento的这种行为吗?

media.phtml中创建此内容的行如下所示:

    $_img = '<img id="image" src="'.$this->helper('catalog/image')->init($_product, 'image').'" alt="'.$this->htmlEscape($this->getImageLabel()).'" title="'.$this->htmlEscape($this->getImageLabel()).'" />';
    echo $_helper->productAttribute($_product, $_img, 'image');

他们引导我到app/code/core/Mage/Catalog/Helper/Output.php定义了productAttribute函数。但为什么天堂缘故是最顶级的风格?这根本没有意义。如果我想设置它,我会使用css。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我刚刚花了3个小时的时间来解决这个问题...解决方案?元素样式(包括“top”)设置在(drumroll) /js/product.js 中。这是默认图像缩放操作的一部分。希望这能帮助那些像我一样通过谷歌发布这篇文章的人。

在magento 1.7.2中, /js/product.js 的第263行显示:

this.imageEl.style.top = this.imageY+'px';

作为一个快速黑客,您可以对其进行评论,但我强烈建议您调整适合您需要的缩放JavaScript功能。