【问题标题】:In Jinjia2, how to use a variable value in html style?Jinjia2中,如何使用html样式的变量值?
【发布时间】:2019-08-20 15:04:01
【问题描述】:

我想根据变量值将小图像放置在不同的位置 - 例如,假设我有一个 v_position 变量,如果它的值为 50,则图像将位于水平中心,如果它值为 100,图像将位于页面的最右侧。

这是我插入图片的那一行:

<img src="image.png" style="position: relative; left: {{ v_position% }};">

页面仍然被渲染,但是这个image.png 的位置没有随着不同的v_position 值而改变。我怎样才能让它按我的预期工作?谢谢!

【问题讨论】:

  • 语法不正确。要实现类似的目标,您应该使用脚本。简单的 HTML 和 Css 不允许您使用变量。您也可以使用 SCSS。你想得到的最终结果是什么?为什么要改变图像位置?
  • @Blank,我想要得到的最终结果是基于相同模板的一批 pdf 文件 - 我正在为不同的客户生成它们,所以我希望每个 pdf 都可以定制(这张图片位于在这种情况下不同的地方)

标签: css html jinja2 templating


【解决方案1】:

如果您想使用 jinja2 变量将图像定位到左侧,您还应该添加 px 或其他类似的东西:

<img src="image.png" style="position: relative; left: {{ v_position }}px;">

现在您的图像将正确放置。 template_vars["v_position"]=100 只返回 100,这对于样式本身来说是不够的。

【讨论】:

  • 谢谢!在看到您的答案之前,我尝试添加单位,但在 px 之前留了一个空格,但没有奏效。没有空间,它可以工作!
【解决方案2】:

您的 Jinja2 表达式中有一个额外的 % 字符。改为{{ v_position }}

【讨论】:

  • 我删除了% 并没有解决问题。我怀疑 v_position 在 Jinja2 中被视为字符串而不是数字?
  • 字符串和数字都将呈现为字符串,由 JavaScript 编译器将标记解释为数字。您如何将 v_position 的值传递给模板渲染器?
  • 我使用template_var,它是Python 中的一个字典,它包括像template_vars["v_position"]=100 这样的键值对。然后我做template.render(template_vars)。我可以正确地“打印”出pdf上的其他变量值。只是不确定如何在style 中使用这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
  • 2013-09-12
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 2019-03-15
相关资源
最近更新 更多