【问题标题】:Is it always bad idea to use inline css for used-once property?将内联 css 用于 used-once 属性总是坏主意吗?
【发布时间】:2010-05-29 05:34:38
【问题描述】:

我有一张桌子,有 10 列。我想控制每列的​​宽度。 每一列都是独一无二的,现在我为每一列创建一个外部 CSS 样式:

div#my-page table#members th.name-col
{ width: 40px; }

我知道有一个避免内联样式的最佳做法。 我确实赞成将外部 CSS 用于与外观相关的任何内容:字体、颜色、图像。 但是在这种情况下使用外部 CSS 真的更好吗?

不会产生额外的维护费用。
它更容易生产。

我能想到的缺点:
如果您有单独的设计师和开发团队 - 使用内联样式将迫使设计师修改内容文件(在我的情况下为 aspx)。 它可能使用更多带宽。

还有什么我错过的吗?

重要提示:我问的是一种特定情况,其中使用的样式将仅适用于一个元素,而不是全局主题的一部分,例如一个特定列的宽度。

【问题讨论】:

  • 外部 CSS 可能导致的另一个问题是大量未使用的选择器。例如,很难记住从不同的文件中删除相关的 CSS(随着时间的推移确实会累加)。你可能会看到这个 Railscast(虽然我不知道它在 Rails 之外的适用性):railscasts.com/episodes/180-finding-unused-css

标签: css


【解决方案1】:

style="" 不好的原因有很多。我认为这是我在代码库中遇到的任何地方的错误。以下是一些原因:

  1. style= 比其他 CSS 选择器具有更高的优先级,因此很难影响样式表的更改;样式表必须更加努力地覆盖这些。
  2. style= 规则在您需要进行全局更改时很难在代码中找到。
  3. 您在每次浏览页面时下载此 CSS 代码。
  4. 如果同一 HTML 代码库有多个样式表,则您的 style= 规则不是样式表的一部分,因此是不可更改的。

但是,如果您正在生成内容并且难以在静态 CSS 文件中描述该内容,您可能还需要生成 CSS 以匹配该内容。尽管有缺点,但通常更容易生成style= 规则。但是,如果您生成的内容可以很容易地在 CSS 文件中描述,因为生成的结构不会经常更改,或者因为您可以轻松地同时生成 HTML 和 CSS 文件,那么最好不要使用 @ 987654325@.

style= 的替代方案的一些建议可能是合适的:

  1. 使用类名代替内联样式。如果您的表中有很多列具有相同的属性,并且您希望它们始终具有相同的属性,则效果很好。然后,您的样式表可以在您的 HTML 流畅时保持固定,因为 CSS 仅引用类。这可能是我会使用的方法。
  2. 在页面加载后,使用 JQuery 或其他一些 javascript 库以编程方式设置对象样式。

【讨论】:

    【解决方案2】:

    更容易产生并不是一个真正有效的论点 - 人们喜欢将大块代码分成更小的块 - 代码和标记也是如此。

    但是: + 没有额外的 HTTP 连接(除非您已经在下载 .css 文件) - 每次发送页面时,此 CSS 都会以 => 更多带宽发送 - 设计者需要在应用程序代码中修改 CSS(不好的做法)

    通常,您不应该这样做 - 除非这是一个经过深思熟虑的性能调整,如 google does

    【讨论】:

    • “更容易生产”可能是一个有效的论点,这取决于需要多少开发时间才能“正确”地完成它。开发人员不是免费的。当然,做得不好会导致维护债务,所以你必须小心。但这当然值得考虑:您从“纯”方法中获得了多少?
    • 它可以是一个有效的参数,但恕我直言,它不适用于这里:将它们全部放在一个文件中并不容易 - 程序员倾向于将代码拆分到多个文件中以分离并进行概述。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2011-04-20
    • 2010-11-09
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    相关资源
    最近更新 更多