我想在 Joomla 3.1 中为我的特定页面停止 media/jui/css/bootstrap.min.css,因为我已经在其中插入了一些 Css 文件,但在 bootstrap.min.css 之后的同一页面。所以请帮助停止 bootstrap.min.css
3 回答
您可以删除 HTML 文档头部中不需要的 css 文件的链接,以防止其导入。
之所以调用级联样式表,部分原因是可以导入多个表,并且将使用具有最高优先级的声明。css 优先级的完整定义可以在任何 css 教程中找到。
让您自己的样式表优先于标准模板的一种方法是在 Joomla 导入的模板 css 之后导入它。这样,根据优先顺序,您的样式表将是最近声明的规则,并且应该在另一个规则上执行。您还可以在不覆盖模板的其余部分的情况下进行您关心的更改。
要获得更多具体情况的答案,如果您能告诉我们您尝试了什么或包含一些代码,将会很有帮助。
另一方面,我很难相信您在任何标准 CSS 教程中都找不到有关此主题的任何信息。下次试试谷歌。
对此使用扩展可能会有更好的解决方案,但是您可以尝试以下方法。打开模板的index.php,找到导入 CSS 文件的行并替换为以下内容:
$app = JFactory::getApplication();
$menu = $app->getMenu()->getActive()->id;
if ($menu !== 12){
$doc->addStyleSheet(JUri::root() . "media/jui/css/bootstrap.min.css");
}
您需要将12更改为要从中删除 CSS 文件的菜单项的 ID。
如果$doc
尚未定义,您可以将其添加到if statement
:
$doc = JFactory::getocument();
或替换为以下内容:
JHtml::stylesheet(Juri::root() . "media/jui/css/bootstrap.min.css");
希望这可以帮助
问题是添加 bootstrap.min.css 文件是什么?我想你必须搜索类似的代码
JHtmlBootstrap::loadCss();
因为在 Joomla 3 中,模板必须在自己的 CSS 文件中包含引导程序。如果不是这种情况,它可以包含带有我之前提到的代码的默认引导文件。
Bootstrap 永远不应该像这样加载
JFactory::getocument()->addStyleSheet(JUri::root() . "media/jui/css/bootstrap.min.css");
你必须使用的是
JHtmlBootstrap::loadCss();
但是这个函数应该只从模板 index.php 文件而不是扩展名中调用,相信我我知道我在说什么https://groups.google.com/d/msg/joomla-dev-general/c --P-HTzMzc/6fEujLeE4KgJ :-)
@Lodder 你应该使用
$app = JFactory::getApplication();
$menu = $app->getMenu()->getActive()->id;
if ($menu !== 12)
{
JHtmlBootstrap::loadCss();
}