等高Joomla模块连续到最高的一个

时间:2011-11-22 14:08:06

标签: html css joomla module height

网上有几种方法可以将列的高度设置为相等。我认为最好的一个是“Equal Height Columns with Cross-Browser CSS”。

但是在joomla模块结构上应用该方法存在问题,我无法确定其工作正常。

我在jooomla模板源上使用 rounded module chrome (模块的一个主背景和内部DIV的另一个背景图像来封装模块底部),因此每个模块都以这种方式呈现:

<div class="module_menu">
  <div>
    <div>
      <div>
        <h3>Main Menu</h3>
        <ul class="menu">
          <li><!-- various menu items --></li>
        </ul>
      </div>
    </div>
  </div>
</div>

我连续使用包含在父DIV中的3个模块。这是代码:

<div style="width:904px; margin:20px; float:left; overflow:hidden; position:relative;">
    <div style="width:904px; float:left; position:relative;">
        <div style="width:904px; float:left; position:relative;">
            <div style="float:left; width:288px; height:100%; margin-right:20px;">
                <jdoc:include type="modules" name="user4" style="rounded" />
            </div>
            <div style="float:left; width:288px; height:100%; margin-right:20px;">
                <jdoc:include type="modules" name="user5" style="rounded" />
            </div>
            <div style="float:right; width:288px; height:100%;">
                <jdoc:include type="modules" name="user6" style="rounded" />
            </div>
        </div>
    </div>
</div>

最后还有与Joomla模块风格相关的Css:

div.module-gallery, div.module, div.module_menu {
    width:291px;
    background:url(../images/module-bg.png) no-repeat 50% bottom;
}
div.module div div div, div.module_menu div div div {
    padding-right:15px;
    padding-left:15px;
    background:url(../images/module-bg-bottom.png) no-repeat 50% 100%;
    padding-bottom:15px;
    min-height:230px;
}
div.module div div div div, div.module_menu div div div div {
    background:none;
}

如何通过保存模块背景样式来设置模块高度等于自动/动态。

由于

1 个答案:

答案 0 :(得分:2)

您需要查看templates/system/html/modules.php

然后,您可以创建module chrome的副本以输出您的模块结构,这将更有益,因为您的代码有点令人难以阅读,并且不是非常语义。即。

function modChrome_myModuleName($module, &$params, &$attribs)
{
    $doc =& JFactory::getDocument();
    $css  = ".moduleOuter { your style }";
    $css .= ".moduleInner{ your style }";

    $doc->addStyleDeclaration($css);

    ?>
    <div class="moduleOuter">
       <div class="moduleInner">
        <?php if ($module->showtitle != 0) : ?>
             <h3><?php echo $module->title; ?></h3>
        <?php endif; ?>
        <?php echo $module->content; ?>
        </div>
     </div>
    <?php
}

然后猜测用模式调用模块,如下:

<jdoc:include type="modules" name="left" style="myModuleName" />

从那时起,您将拥有一种更加语义的方式来调用模块,并使您更轻松地获得CSS高度。