Joomla 3: скрыть класс на домашней странице

#php #html #css #joomla #content-management-system

#php #HTML #css #joomla #content-management-system

Вопрос:

Я хотел бы скрыть класс только на домашней странице.

 <div class="search-wrapper">

.search-wrapper {
    background: none repeat scroll 0 0 #3d4895;
    height: 50px;
    margin-top: 10px;
    width: 100%;
}
  

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

Я создал пункт меню ДОМАШНЕЙ СТРАНИЦЫ, чтобы иметь класс страницы, но все еще не могу настроить таргетинг.seacrh-оболочка только на домашней странице.

Комментарии:

1. является ли seacrh-оболочка внутри класса item ?

2. Разве вы не можете просто обернуть эту версию div в условие нахождения на странице по умолчанию?

Ответ №1:

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

В противном случае добавьте в свой шаблон следующее:

 <?php
$pageclass="";
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
       $pageclass="homepage";
}
?>
  

А затем в вашем теге body…

 <body class="<?php echo $pageclass; ?>">
  

Это добавит класс «домашняя страница» к тегу body на домашней странице. Затем стили могут быть добавлены на домашнюю страницу только таким образом…

 .homepage .search-wrapper {
    display:none;
}
  

Нет необходимости в javascript.

Ответ №2:

Вы должны использовать jquery, используйте следующую строку:

 //Here you check if the user is on the homepage
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
    //This line makes it hide the class
    $('.search-wrapper').css('display','none');
}
  

Комментарии:

1. Вы смешали php и jquery, и не все сайты Joomla используют jquery. Это не сработает.

2. @Richard B спасибо, действительно, я был перепутан с joomla и обычными сайтами, потому что я всегда использую jquery 🙂

3. Кроме того, использование Javascript для выполнения таких базовых элементов CSS кажется чрезмерно сложным и неправильным разделением контента, макета и стиля.

Ответ №3:

Самый простой метод — создайте пользовательский HTML-модуль, который вы публикуете только на главной странице. Расширения -> Диспетчер модулей -> Создать -> Пользовательский HTML

В этом модуле переключитесь на просмотр кода вместо редактора wysiwyg и создайте стиль «блок». Все, что вам нужно сделать, это использовать более конкретное правило CSS, чтобы отменить css в ваших таблицах стилей.

Предполагая, что ваши таблицы стилей в настоящее время ссылаются только на один класс, тогда предварительное ожидание селекторов с идентификатором одного элемента из любого родительского контейнера будет более «конкретным».

 <style type="text/css">
#some-id .search-wrapper {display:none;}
</style>
  

Очевидно, замените ‘some-id’ на фактический идентификатор родительского / родительского / etc элемента.