我可以覆盖Prestashop中的scss样式吗?

时间:2015-06-17 11:14:03

标签: css sass prestashop

我在Prestashop 1.6中使用默认主题,但我遇到了问题。 我想要完成的只是将导航栏高出25px。我知道我需要删除或更改

#block_top_menu {
padding-top: 25px;
}

在blocktopmenu.scss中,它不在modules目录中,但在主题目录中,我认为它应该覆盖默认样式。 当我在浏览器Inspector工具中禁用它时,它会完全按照我想要的方式更改,但它显然无法保存。

我编辑了将25px更改为0px的文件。当我重新加载页面时,没有任何改变,检查员仍然显示代码,好像我从未修改过它。 所以我从模块类别编辑了blocktopmenu.css,添加了!important,如下所示:

#block_top_menu {
padding-top: 0px !important;
}

希望覆盖scss。仍然没有发生变化。无奈之下,我从服务器上删除了scss文件。仍然没有变化,Inspector将文件显示为存在。

我没有想法。我应该以某种方式清除prestashop的缓存或什么?请帮忙。

修改 我清除了缓存。没有变化。

3 个答案:

答案 0 :(得分:1)

您可以在block top menu.scss文件中添加此代码,但使用该特定ID的包装类,如: -

  $block-top-menu{padding-bottom:25px!important;}
  div.[your wrapper id which wrapes the element]#block_top_menu{padding-bottom:$block-top-menu;} 

它只会超过特定位置而不是整个scss。

答案 1 :(得分:1)

您需要处理SCSS以创建CSS文件...(浏览器只读取CSS)

表示Prestashop导入了许多CSS文件,主要是global.css,然后大多数模块都有特定的样式表,如果你使用dev-tools,你可以很容易地看到设置边距的内容和你的内容必须修改,通常块顶级菜单有一个名为superfish-modified.css;

的css文件

还要注意PS有一个内置的缓存系统......

答案 2 :(得分:1)

档案default-bootstrap/sass/modules/blocktopmenu/css/blocktopmenu.scss 编译成default-bootstrap/css/modules/blocktopmenu/css/blocktopmenu.css

如果找到了.scss文件,则还必须存在相应的.css文件。

现在大多数用户只是直接修改.css文件并没有任何问题,但是如果您正在进行大量的样式更改(比如更改整个网站的配色方案),那么最好更改.scss文件并将其编译为.css。如果您在.scss中更改主题变量,它将在任何使用过的地方进行更改。这样您只需要编辑一个地方而不是X个地方。

要使用.scss,您需要两个工具:sasscompass。 您需要为您的操作系统提供Google安装说明。

在系统上安装这些工具后,您需要在主题文件夹的控制台中运行命令(因为不同的主题=不同的样式):

/var/www/themes/theme1/ > compass build

在主题文件夹中运行指南针构建会将.scss文件编译为.css并将它们放在css文件夹中(主题文件夹)。