Odpowiedzi:
Istnieje kilka sposobów dodawania niestandardowego kodu CSS do określonej strony. Oto kilka alternatyw:
Alt. 1 - Klasa
strony Użyj klas strony. W edytorze pozycji menu, w zakładce „Wyświetlanie strony” znajduje się pole o nazwie „Klasa strony”. Spowoduje to dodanie klasy do <body>
tagu (lub <div class="YOURCLASS">...</div>
wokół treści), w zależności od konfiguracji szablonu.
Następnie po prostu utwórz nową regułę w pliku CSS szablonu, używając określonej klasy.
Np. Dodaj mycustomclass
do pola „Klasa strony” w elemencie menu i umieść to w pliku CSS:
.mycustomclass p {font-color:red;} // Make text red on this particular page
Alt. 2 - Niestandardowe moduły CSS
Do tego celu dostępnych jest kilka modułów. Jednym z przykładów jest Custom CSS , moduł, który pozwala dodać dowolny kod CSS i opublikować go na stronach, które chcesz stylizować.
Podobną opcją jest Custom HTML Advanced , moduł, który pozwala dodawać HTML, JavaScript i CSS do stron. Kod można dodać <head>
automatycznie do tagu.
Alt 3. - załaduj dodatkowy arkusz stylów CSS
Inną alternatywą jest sprawdzenie bieżącego identyfikatora pozycji menu w index.php
pliku szablonu i w razie potrzeby załadowanie innego arkusza stylów CSS:
<?php
$currentMenuId = JSite::getMenu()->getActive()->id ;
if ($currentMenuId == "14") {
echo '<link rel="stylesheet" type="text/css" href="mystyle.css">';
}
?>
Jednym z moich ulubionych podejść jest tworzenie dynamicznych klas dla elementu body.
Więc:
<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
$active = $menu->getActive();
$class = $active->alias . " pageid-" . $active->id;
?>
<body class="<?php echo $class; ?>">
Oto niektóre przykłady tego, co wygeneruje powyższy kod:
Strona główna:
<body class="home pageid-13">
O nas strona:
<body class="about-us pageid-15">
Teraz możesz tworzyć niestandardowe style na stronie, korzystając z powyższych klas.
To kolejna metoda robienia tego samego.
Wykracza ponad typ dokumentu:
<?php
$app = JFactory::getApplication();
$menu = $app->getMenu()->getActive();
$pageclass = '';
if (is_object($menu))
$pageclass = $menu->params->get('pageclass_sfx');
?>
Wchodzi do twojego indeksu, gdzie twoja klasa ciała to:
<body id="<?php echo $pageclass ? htmlspecialchars($pageclass) : 'default'; ?>">
Teraz wszystko, co dodasz do klasy strony elementu menu, pojawi się w identyfikatorze treści. Każdy element menu bez klasy będzie automatycznie miał body id = „default”.
Możesz także wypróbować to rozszerzenie, aby przypisać różne arkusze stylów do pozycji menu: http://extensions.joomla.org/extensions/extension/style-a-design/templating/css2switch-basic
Pozdrowienia.