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 使用类。<p class=" model.some_field ">
之类的东西在某些特定情况下有效,例如已知范围内的整数、有限的外键等。但是看看你的情况,我想我可能会将它整合到我的项目中。以上是关于Django中的内联CSS可以避免吗?的主要内容,如果未能解决你的问题,请参考以下文章
可以为 Django 中的扩展 html 模板定义一个单独的 css 文件吗?
通过 Django Admin 中的内联显示编辑/添加外键对象