首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止从jinja2包含继承css

问防止从jinja2包含继承css
EN

Stack Overflow用户
提问于 2018-06-21 09:01:07
回答 2查看 375关注 0票数 2

我有一个简单的超文本标记语言页面(main.html),它是通过jinja2/flask呈现的。

main.html

代码语言:javascript
复制
{% extends 'layout.html' %}

{% include 'content1.html' %}
{% include 'widget1.html' %}
{% include 'widget2.html' %}

layout.html包括一些CSS (bootstrap),JS和一些用于所有页面的超文本标记语言(页眉/菜单)。

我希望非常简单地包括在这个html页面,一些内容模板和一些‘小工具’。这些小部件更为复杂,因为它们包含自己的JS和CSS (引导程序)……这造成了麻烦,因为widget1.html中的CSS覆盖了main.html的CSS (考虑到include,这并不出人意料)。

有没有办法在不让CSS/JS返回到父页面(main.html)的情况下“包含”widget1.html?

我不希望重构widget1.html,因为它是一个外部应用。这里有没有一个简单的解决方案?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2019-10-18 02:29:55

我在这里也遇到了同样的问题。即使更改了.css,也不会重新加载,因为浏览器正在缓存信息。我找到了一种非常简单的方法。

我解决这个问题的方法是使用从time模块导入ctime,如下所示:

从时间导入

然后,我将ctime()函数归因于我的flask路由中的time。如下所示:

代码语言:javascript
复制
#@app.route('/home')
## def homepage():
##     return render_template('home.html' , time = ctime())

然后,在我的html href中,我这样做了:

代码语言:javascript
复制
## <link rel="stylesheet" href="{{ url_for('static', filename='css/base.css')}}?{{time}}">

在引用路径的末尾添加?{{ time }},时间信息将每秒更新一次,浏览器将无法识别css并对其进行缓存,因为浏览器会将新信息与之前的信息进行比较。

有了这个,你将成为你的实时css。

希望这能有所帮助。

干杯!

-Nelio

票数 1
EN

Stack Overflow用户

发布于 2018-06-21 22:42:14

请看这个答案:How To Isolate a div from public CSS styles?

您可以创建包装类.isolate,并按如下方式使用它:

​

代码语言:javascript
复制
p {
  color: blue;
}

.isolate * {
  all: unset;
}

.example {
  border: 1px solid;
  padding: 1em;
}
代码语言:javascript
复制
<p>By default all text is blue.</p>
<div class="isolate example">
  <p>Within the "isolate" div, that CSS is removed</p>
</div>
<p>Outside of the div, default rules apply once again.</p>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50958957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档