0

好的,

我确信这已经得到了回答,而且我相信这个链接可以帮助我http://docs.joomla.org/Hide_column_to_avoid_width_issues

我对语法或 php 编码不是很熟悉,所以我在尝试做的事情时遇到了麻烦..

我正在构建一个 joomla 2.5 模板,并且当那里没有发布任何模块时,我正在使用 countmodules 来隐藏“div”或整个位置。我的问题是假设在我的 100% 宽度的主列中,有时我想在主内容框中的内容右侧显示一个模块,该模块仅占整个列宽度的 25%。好的,这行得通。

但是,我想将内容浮动到左侧,这个 25% 宽度的模块我们将称为“right1”,它浮动到右侧,所以我需要将主要内容设置为 75% 左右的宽度,以使所有内容都能很好地浮动并正确显示确实如此!我的问题是,如果“right1”不存在,我不明白如何使我的主要内容为 100% 宽度。如果我在“right1”中没有显示任何模块,那么它不会显示我将如何更改我的主要内容的 css 以调整到 100% 而不是缩小到 75% 以弥补缺少的 right1 位置。

我可能真的很愚蠢,我不记得有一个简单的解决方案摆在我面前。提前致谢!

-编辑-

它是这样的

<div id="contentcontainer">
<jdoc:include type="message" /><jdoc:include type="component" />
<?php if ($this->countModules( 'right1' )) : ?>
<div id="right1"><jdoc:include type="modules" name="right1" style="xhtml" /></div>
<div class="clearfix"></div><?php endif; ?><?php if ($this->countModules('right2')): ?>
<div id="right2"><jdoc:include type="modules" name="right2" style="xhtml" /></div>
<div class="clearfix"></div>
<?php endif; ?>

</div></div></div>

我刚刚添加了 contentcontainer 以确保它们在 100% 宽度的容器内可以使用

#contentcontainer{
width:100%;
position:relative;
}

#right1, #right2 {
border: 1px solid #990000;
border-radius: 18px 18px 18px 18px;
box-shadow: 5px 3px 5px #990000;
display: block;
float: right;
height: auto;
width: 25%;
}

我将内容使用的任何标签放在浮动:左;我尝试做的是对主要内容使用“最小宽度:”,而最小宽度似乎不起作用。那么什么可能是一个解决方案,希望我不必像曾经建议的那样求助于 jQuery。这是足够的信息吗?

-编辑-

4

1 回答 1

0

您可以使用一些简单的 PHP 和内联样式来完成。我不是 PHP 方面的专家,所以这可能不像它可能的那样优雅,但是我相信有人会纠正它。

   <div id="contentcontainer">

    <?php 
    //column calculation
    $columns == 0;
    if($this->countModules( 'right1' )) {$columns++;}
    if($this->countModules( 'right2' )) {$columns++;}
    $centercolumnwidth = 100 - (25 * $columns);
    ?>

    <jdoc:include type="message" />

    <div id="maincolumn" style="width:<?php echo $centercolumnwidth ?>%">
        <jdoc:include type="component" />
    </div><!--/maincolumn-->

    <?php if ($this->countModules( 'right1' )) : ?>
    <div id="right1">
        <jdoc:include type="modules" name="right1" style="xhtml" />
    </div><!--/right1-->
    <div class="clearfix"></div>
    <?php endif; ?>

    <?php if ($this->countModules('right2')): ?>
    <div id="right2">
        <jdoc:include type="modules" name="right2" style="xhtml" />
    </div><!--/right2-->
    <div class="clearfix"></div>
    <?php endif; ?>

</div><!--/contentcontainer-->

我刚刚在没有测试的情况下输入了这个,但它应该将#maincolumn 的宽度设置为 100%、75% 或 50%,具体取决于是否发布了 right1 和/或 right2。您还需要在 CSS 中将 #maincolumn 浮动到左侧。

于 2013-04-12T15:51:07.490 回答