Answers:
如果您使用的是预先构建的Joomla模板,则最好将CSS样式与现有的模板样式区分开。
CSS在此上下文中的意思是“级联样式表”,“级联”,这意味着由于一个以上的样式表规则可以应用于特定的HTML片段,因此可以通过从更通用的规则级联到所需的特定规则(选择最具体的规则),或基于任何元素的规则顺序(选择找到的最后一个规则)。
只要您的自定义CSS文件在默认模板CSS文件之后加载,您就可以根据需要添加自己的样式来覆盖特定的元素(有一些例外,下面更多内容)。
要在Joomla <head>
标记中加载自定义样式表,可以在结束标记之前将以下代码添加到index.php
模板(YOURDOMAIN.COM/templates/yourtemplate/index.php
)的文件中,</head>
以确保最后加载文件。
JHtml::_('stylesheet', JUri::root() . 'templates/' . $this->template . '/css/custom.css');
(CSS文件可以具有任何名称,并且不必位于/ css /子文件夹中,但是这样做更干净。)
也可以添加一个普通<link>
标签,但是它不如上述选项灵活:
<link rel="stylesheet" href="/joomla//templates/mytemplate/css/custom.css" type="text/css" />
!重要
某些扩展程序可能会在您的CSS样式之后加载它们的CSS样式(甚至直接在index.php文件中添加样式),从而覆盖您的替代。这通常可以通过添加!important
样式来解决,例如。h1{color:red!important;}
现在有趣的部分:许多模板框架都有可能用户希望对其模板进行更改,从而增加了一种简单的方法来包含CSS覆盖。以下是一些使用的方法:
火箭主题龙门4
RocketTheme模板由Gantry框架提供支持,如果找到了自定义CSS文件,则会自动加载。CSS文件必须放在/templates/yourtemplate/css/
文件夹中,名称必须为YOURTEMPLATEFOLDER-custom.css
。
示例:如果您使用他们的免费Afterburner 2
模板,则默认模板目录为/templates/rt_afterburner2/
。rt_afterburner-custom.css
在/ css /子文件夹中添加一个名为(带有下划线和连字符的carefull)文件,该文件将由Gantry框架自动加载。
形状5
Shape 5模板在模板custom.css
的/ css /子目录中附带一个空文件。只需将您的样式添加到此文件中,它们就会包含在您的布局中。
Gavick Pro
Gavick Pro模板随附overrides.css
/ css /子目录中的空文件。但是请注意,默认情况下不会加载此文件,您必须Override CSS
在模板设置的“高级设置”选项卡中激活。
Joomla Shine
在模板的/ css /子文件夹中创建一个自定义CSS文件,例如,custom.css
并在处指定文件名Extensions -> Templates -> [template name] -> SEO & System -> Custom CSS/JS File(s)
。
T3框架
基于T3框架的模板可能/可能不会custom.css
在模板的/ css /子文件夹中包含文件(如果不存在,则仅创建一个文件),但是如果存在,则该文件将在任何其他CSS文件之后加载。
扭曲框架
基于Warp Framework的模板会自动加载custom.css
在/ css /子文件夹中找到的文件。可以通过添加其他CSS文件来加载
$this->warp->stylesheets->add('css:yourcssfile.css');
到文件/layouts/template.config.php
。
JHtml::_('stylesheet', 'path/to/file')
而不是addStyleSheet
已经在另一个答案上争论过的:)除此之外,该死的好答案。绝对会派上用场的人
JHtml::_
用$this->template
?
JHtml::_('stylesheet', JUri::root() . 'templates/' . $this->template . '/css/style.css');
另一个Joomla模板框架,可简化自定义工作流程。
Helix Framework模板还提供了一种简便的方法,可以通过2种便捷的方法来添加自定义样式。
在后端的模板控制面板中,有一个“自定义CSS”字段。在这里,您可以键入css,它将作为样式元素添加到页面的头部,因此,它也将优先于其他外部css文件。当然,如果您打算编写一堆css,则此选项不是理想的选择,因此还有第二种方法。
与许多其他模板框架一样,Helix还提供了创建自己的custom.css文件的功能。只需创建它,然后将其放在模板的css文件夹中即可。模板将对其进行解析,并将其包含在页面的头部。
Johanpw在回答自己的问题上做得非常好……尤其是关于许多商业模板的CSS覆盖。
我只想在这里加两分钱...
正如Johanpw所强调的那样,建议您创建CSS覆盖。将您的自定义CSS保存在一个文件中,您知道该文件在更新后不会被删除或覆盖是至关重要的。
对于所有Joomla扩展,记住这一点很重要。不要尝试更改模块或组件的核心CSS文件。相反,最好尝试创建自己的自定义template.css文件,最后加载它,然后在其中创建所有自定义样式。
如果商业模板没有提供添加CSS覆盖的方法,则可以使用如下扩展名:Add Custom CSS,它允许这样做。要创建自定义的CSS覆盖文件并最后加载它。
我经常在自己管理的网站中执行的另一种选择是修改模板,然后将我自己的链接添加到我的custom.css文件中,就在模板的结束head标签之前。这是一个较小的,易于记忆和恢复的修改,当模板更新到达时,我可以处理。
Gantry 5是流行的模板框架的最新版本,它提供了许多新功能。
关于CSS替代,有很多灵活性和选项。
以作为标准Gantry 5模板发布的Hydrogen主题,它提供了一个名为custom的文件夹。
该文件夹供用户放置龙门架/模板的自定义文件/替代(不要与保留在template / html文件夹中的Joomla模板替代混淆)。您可以在其中放置custom.css文件。然后,通过“ Gantry模板管理面板”,可以自定义模板布局,并使用“ 自定义CSS / JS Atom粒子”(新的gantry 5功能)将custom.css添加到模板中。Gantry 5还提供了所谓的流链接(如快捷方式),以便轻松链接custom.css文件。
因此,从Atom粒子内部,您可以使用以下方法将其链接:
gantry-theme://custom/thing.css
该gantry-theme://
快捷方式,总是引用当前龙门模板文件夹。
使用此方法是为gantry5模板的特定模板轮廓添加custom.css的有效方法。
第二种方法对整个龙门模板都适用,它是在内部添加一个custom.scss文件:
template_directory/custom/scss/custom.scss
这样做,gantry5将始终加载并编译此scss文件,并且您应用的所有css规则都将覆盖模板的默认规则。
在scss文件中,使用SCSS或简单地使用CSS都可以。编译器能够同时编译两者。