仅当启用 user1 模块时才会显示以下代码
<?php if($this->countModules('user1')) : ?>
<div id="ja-main">
<jdoc:include type="modules" name="user1" />
</div>
<?php endif; ?>
一切都进展顺利。但关键问题是:如果 user1 模块被禁用,则会显示很高的空间。这意味着 div 仍然可以编写脚本。为什么会这样?我怎样才能删除那个空间?
检查父 div 是否也需要在“if”条件内。你也可以试试:
if($this->countModules('user1')>0)
<?php if($this->countModules('user1')) : ?>
<div id="ja-main">
<jdoc:include type="modules" name="user1" />
</div>
<?php else if($this->countModules('user1')):?>
<div style="display: block;">
/* Content */
</div>
<?php endif; ?>
尝试这个:
<?php if($this->countModules('user1')>0) : ?>
<div id="ja-main">
<jdoc:include type="modules" name="user1" />
</div>
<?php endif; ?>
<?php if($this->countModules('user1')<1) : ?>
<div style="display: none;"></div>
<?php endif; ?>
听起来周围仍然有一个具有指定高度的 div。您需要识别该 div 并确保在没有用户模块的情况下不会显示该 div。
您能否在浏览器工具包中使用某种检查元素(chrome 有一个不错的)并告诉我们哪些 div 仍在徘徊?
<?php if($this->countModules('user1')>0) : ?>
<div id="ja-main">
<jdoc:include type="modules" name="user1" />
</div>
<?php endif; ?>
<?php if($this->countModules('user1')<1) : ?>
<div style="display: block;"></div>
<?php endif; ?>
显示应该是块