2
See this FAQ:
How can I display different images or include different stylesheets according to the currently viewed module?The following modification will change the theme stylesheet depending on the module in use.
Make and name a copy of the theme's stylesheet (themes/yourtheme/style.css) for each module you want to customize (ie: newsstyle.css, newbbstyle.css, etc.). Make your color/format changes in the renamed stylesheets.
Modify the HEAD of your themes/yourtheme/theme.html under the existing stylesheet links:
Replace this:
<link rel="stylesheet" type="text/css" media="all" href="<{$xoops_themecss}>" />
With this:
<{if $xoops_dirname == "news"}>
<link rel="stylesheet" type="text/css" media="all" href="<{$xoops_imageurl}>newsstyle.css" />
<{elseif $xoops_dirname == "newbb"}>
<link rel="stylesheet" type="text/css" media="all" href="<{$xoops_imageurl}>newbbstyle.css" />
<{elseif $xoops_dirname == "mylinks"}>
<link rel="stylesheet" type="text/css" media="all" href="<{$xoops_imageurl}>mylinksstyle.css" />
<{else}>
<link rel="stylesheet" type="text/css" media="all" href="<{$xoops_themecss}>" />
<{/if}>
Repeat for all themes in use.
This will change the stylesheet used for the each module without caching additional theme templates.
You can also change logo images per module as discussed in this thread:
Changing the site LOGO by page changes.