当div中没有​​信息时,如何使用php隐藏CSS div?

时间:2012-02-29 20:23:58

标签: php css joomla joomla-template

我已经问过了,但我认为我不够具体!

我正在寻找一种非常简单的方法,可以在没有任何信息时隐藏div。 - 它需要对客户来说很简单,所以他们不必担心它。

该部门在某些类别中使用joomla提供信息。

例如,在我的主模板上,我左边的导航栏下面可能有一个div,我可以选择显示模块的页面,但是当它不在使用时,它仍会显示它的边框。

我也不想为网站使用许多不同的模板,只能使用许多模块位置,但是当它们没有被使用时,它们就被隐藏了。

http://msc-media.co.uk/

看一看,在我左边的导航栏下。

如果有帮助,如果joomla没有在该页面上输出任何数据,这里是我试图隐藏的代码:

    <div id="lnav2">
    <jdoc:include type="modules" name="left2" />
    </div>

提前致谢

5 个答案:

答案 0 :(得分:4)

查看jquery:空选择器

http://api.jquery.com/empty-selector/

<script>$("div:empty").css('display', 'none');</script>

将最新的jquery库加载到

<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>

并将代码放在<script>$("div:empty").css('display', 'none');</script>上方的头部或html的结束标记之前。这将检测所有空标签的实例。根据您要检测的内容,相应地更改div。

答案 1 :(得分:4)

在Joomla!模板,您可以使用countModules来确定是否为该位置设置了一个模块。所以你的代码可以像这样包装:

<?php if ($this->countModules('left2')): ?>
    <div id="lnav2">
        <jdoc:include type="modules" name="left2" />
    </div>
<?php endif; ?>

这样,只有当该位置有一个活动模块时才会呈现<div id="lnav2">

答案 2 :(得分:2)

您可以在页面上放置一个jQuery代码。类似的东西:

$(function() {
    $('div').each(function() {
        if($(this).html() == '') {
            $(this).css('display','none');
        }
    }
});

答案 3 :(得分:0)

您可以在不想显示的标签内执行以下操作,如果为空:

<div id="rnav1a" <?php if(empty($variable)||!isset($variable)) echo 'style="display: none;"'; ?>>   <jdoc:include type="modules"
 name="right1" />
</div>

只需添加css style =“display:none;”摆脱那个障碍。

答案 4 :(得分:0)

虽然在页面加载时隐藏div是好的,但默认情况下将div设置为display: none会更清晰,如果它确实有内容则显示它。此外,仍应将其包装在.ready中,以确保所有内容都已加载。

jQuery( function( ) {
    jQuery( '#divid:not(:empty)' ).css( 'display', 'block' );
});