Django中的内联CSS可以避免吗?

Posted

技术标签:

【中文标题】Django中的内联CSS可以避免吗?【英文标题】:Is inline CSS in Django avoidable? 【发布时间】:2011-10-08 21:21:09 【问题描述】:

我听说过建议您不要使用内联 CSS,例如:

<div style="min-width: 10em;">...</div>

但您应该改用class,将 CSS 与 html 分开,并(如果可能)将它们放在单独的 CSS 文件中。

到目前为止,一切都很好;这一切都是有道理的——至少只要事情适合你的模型。

现在我遇到了 Django,我想说的是:

% for a, b in bar %
    <div style="min-width: % widthratio a b 100 %em;">...</div>
% endfor %

这里有避免内联 CSS 的实用方法吗?还是我只需要打破常规?

【问题讨论】:

【参考方案1】:

由于它是一个计算值,因此您可以使用内联 CSS。内联 CSS 的存在是有原因的:不能跨多个元素/页面/网站重用的 CSS。

由于您无法从 CSS 文件中计算,显然在这里使用内联 CSS 是有意义的。

附:我在 Django 模板中做几乎完全相同的事情,除了我的是将图像垂直和水平居中,我必须使用图像的实际比例来计算居中 CSS,所以我也不能使用类。

【讨论】:

+1 我同意这是内联 CSS 属性的用例。 确实如此。令人遗憾的是,人们如此疯狂地说“永远不要使用内联 CSS”,而人们永远不会这样做,即使它是正确的工具。当然,您可以将这种哲学抽象为几乎任何技术:) 我尽量为“变量”css 使用类。 &lt;p class=" model.some_field "&gt; 之类的东西在某些特定情况下有效,例如已知范围内的整数、有限的外键等。但是看看你的情况,我想我可能会将它整合到我的项目中。

以上是关于Django中的内联CSS可以避免吗?的主要内容,如果未能解决你的问题,请参考以下文章

Django 中的内联表单验证

css中的django变量-我可以使用模板吗

可以为 Django 中的扩展 html 模板定义一个单独的 css 文件吗?

通过 Django Admin 中的内联显示编辑/添加外键对象

我可以在内部 CSS 中使用媒体查询,它会避免加载我定义的背景图像吗?

Python/Django 避免保存内联