一部のページにカスタムCSSスタイルを追加する


16

いくつかのページにカスタムCSSスタイルを追加して、独自のスタイルを与え、デフォルトのテンプレートスタイルをオーバーライドしたいと思います。

Joomlaでこれをどのように達成できますか?

回答:


15

特定のページにカスタムCSSコードを追加するには、いくつかの方法があります。いくつかの選択肢があります。

Alt。1-ページクラスページクラスを
使用します。メニュー項目エディターの[ページ表示]タブの下に、[ページクラス]というフィールドがあります。これにより、テンプレートの構成方法に応じて、<body>タグ(または<div class="YOURCLASS">...</div>コンテンツの周囲)にクラスが追加されます。

ここに画像の説明を入力してください

次に、指定したクラスを使用して、テンプレートのCSSファイルに新しいルールを作成します。

たとえばmycustomclass、メニュー項目の「ページクラス」フィールドに追加し、これをCSSファイルに配置します。

.mycustomclass p {font-color:red;} // Make text red on this particular page

Alt。2-カスタムCSSモジュール
この目的で使用できるモジュールがいくつかあります。1つの例はカスタムCSSです。これは、CSSコードを追加して、スタイルを設定するページに公開できるモジュールです。

同様のオプションは、HTML、JavaScript 、CSSをページに追加できるモジュール、Custom HTML Advancedです。コードはタグに自動的に追加できます。<head>

Alt 3-追加のCSSスタイルシートをロードする
別の方法は、テンプレートのindex.phpファイルで現在のメニュー項目IDを確認し、必要に応じて別のCSSスタイルシートをロードすることです。

<?php 
   $currentMenuId = JSite::getMenu()->getActive()->id ;
   if ($currentMenuId == "14") {
       echo '<link rel="stylesheet" type="text/css" href="mystyle.css">';
   }
?>

最初の選択肢(ページクラス)を使用しますが、エディターでこれらのスタイルを適用する方法を知っていますか?たとえば、タイトルは所属するカテゴリによっては同じフォントを持っていませんが、表示されるページに応じてエディター内でフォントを適用するにはどうすればよいですか?
web-tiki

9

私のお気に入りのアプローチの1つは、body要素の動的クラスを作成することです。

そう:

<?php
  $app    = JFactory::getApplication();
  $menu   = $app->getMenu();
  $active = $menu->getActive();
  $class  = $active->alias . " pageid-" . $active->id;
?>
<body class="<?php echo $class; ?>">

上記のコードが生成するものの例を次に示します。

ホームページ:

<body class="home pageid-13">

私達についてのページ:

<body class="about-us pageid-15">

上記のクラスを使用して、ページごとにカスタム固有のスタイルを作成できるようになりました。


私はこのソリューションが好きです。とても便利で、簡単に実装できます。+1
johanpw 14年

4

これは、同じことを行う別の方法です。

Doctypeの上に移動します。

<?php
  $app = JFactory::getApplication();
  $menu = $app->getMenu()->getActive();
  $pageclass = '';

  if (is_object($menu))
    $pageclass = $menu->params->get('pageclass_sfx');
?>

ボディクラスがあるインデックスに移動します。

<body id="<?php echo $pageclass ? htmlspecialchars($pageclass) : 'default'; ?>">

これで、メニュー項目のページクラスに追加したものはすべて、ボディIDに表示されます。クラスのないメニュー項目はすべて、自動的にbody id = "default"になります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.