是否可以覆盖之前在Odoo中定义的CSS类?

时间:2018-04-10 11:44:21

标签: css odoo odoo-10

我需要更改您可以在每个报告模板中看到的课程page

这就是我想要的:

<div class="page" style="margin-left: 7mm">
   ...
</div>

问题是我每次应用类page时都需要应用该样式,因此如果我能够修改类以添加margin-left,那么对我来说非常有用。如果没有,我想我将不得不更改内部有class="page"的每个模板,这将是非常糟糕的。

可能你想知道为什么我需要添加margin-left,这是因为我必须在每个页面的左边缘添加一个文本,所以我必须在标题中添加一个div。问题在于,如果您尝试在边距内写入(div class="page"之外),则由于纸质格式的左边距,此文本会消失。所以我把这个paperformat margin设置为0.之后我不得不将页眉和页脚向右移动7mm,这很容易。问题是我还需要将报告的内容向右移动7mm,这就是为什么我要修改类page

如果有人知道如何做到这一点或为我的问题找到更好的解决方案,那将非常有帮助。

3 个答案:

答案 0 :(得分:3)

要继承和修改现有的CSS类,这对我有用:

<template id="my_custom_style_modifications" inherit_id="report.layout">
    <xpath expr="//style" position="after">
        <style type="text/css">                   
            .page {
                margin-left: 7mm;
            }                    
        </style>
    </xpath>
</template>

修改

好吧,我需要再次这样做,我想知道为什么我将我的解决方案设置为正确的解决方案,因为这次它对我不起作用(它让我误认为style没有找到父母的观点)......我想,有些东西必须改变。这次我必须执行以下操作以实现我的目的(但是,此解决方案仅在报告以HTML格式打印时才有效,而不是以PDF格式打印 - 仍然需要修复的内容 - ):

<template id="aus_custom_reports_style_modifications" inherit_id="report.layout">
    <xpath expr="//html" position="before">
        <style type="text/css">                   
            .page {
                margin-left: 7mm;
            }                    
        </style>
    </xpath>
</template>

答案 1 :(得分:1)

首先,如果要在报告中更改css,请不要将css文件添加到后端资产 您应该将其添加到报告资产:

  <template id="assets_common" name="add css for page class" inherit_id="report.assets_common">

只是为了确保应用css并确保它不是这种技术 按预期工作为页面添加边框或更改背景颜色和css如果你的 css已应用。

现在如果这种技术不起作用,如果你提供图片或解释会更好 你需要的确可能有更好的方法。

注意不要忘记在清单文件中添加报告插件的依赖项。

答案 2 :(得分:0)

它的工作方式如下:

在CSS文件中写保证金

HTML

   <div class="page">
       ...
    </div>

CSS

.page{margin-left:7mm !important}