#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 элемента.