Как я могу скрыть CSS div, используя php, если в div нет информации? - PullRequest
2 голосов
/ 01 марта 2012

Я уже спрашивал об этом, но я не думаю, что я был достаточно конкретен!

Я ищу очень простой способ скрыть div, когда в нем нет никакой информации.Это.- Это должно быть просто для клиента, чтобы он не беспокоился об этом.

В Div есть информация, помещенная в него с помощью Joomla в определенных категориях.

Например, в моем основном шаблоне у меня может быть div под моей навигацией слева, я могу выбирать, на каких страницах он отображает модули, но когда он не используется, он все равно отображает свои границы.

Я также не хочу использовать много разных шаблонов для сайта, просто имею возможность использовать много позиций модулей, но когда они не используются, они скрыты.

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

Посмотрите под моей навигацией слева.

Если это поможет, вот код, который я бы попробовалскрыть, если Joomla не выводит никаких данных на этой странице:

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

Заранее спасибо

Ответы [ 5 ]

4 голосов
/ 01 марта 2012

В Joomla! шаблоны, которые вы можете использовать countModules, чтобы определить, установлен ли модуль для данной позиции. Таким образом, ваш код может быть упакован так:

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

Таким образом, <div id="lnav2"> отображается только при наличии активного модуля для позиции.

4 голосов
/ 01 марта 2012

Проверьте 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 соответственно, в зависимости от того, что вы пытаетесь обнаружить.

2 голосов
/ 01 марта 2012

Вы можете разместить код jQuery на странице. Что-то вроде:

$(function() {
    $('div').each(function() {
        if($(this).html() == '') {
            $(this).css('display','none');
        }
    }
});
0 голосов
/ 01 марта 2012

Несмотря на то, что скрывать div при загрузке страницы - это хорошо, лучше по умолчанию установить для div значение display: none и показать его, если у него есть содержимое. Кроме того, все равно следует обернуть это в .ready, чтобы убедиться, что весь контент загружен.

jQuery( function( ) {
    jQuery( '#divid:not(:empty)' ).css( 'display', 'block' );
});
0 голосов
/ 01 марта 2012

вы можете сделать следующее внутри ваших тегов, которые вы не хотите отображать, если они пусты:

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

Просто добавив стиль css = "display: none;"избавиться от этого блока.

...