1

您正在创建一个 HTML 布局。让我们假设您不需要多个样式表的好处,HTML 大小的小幅增加不是问题,并且您有一个只会使用一次的样式。我经常支持在这里使用内联样式,因为我认为重复您的 CSS 类名称或 ID 是您当前不需要并且可能永远不会使用的抽象的成本。

这些天的标准原则是始终使用语义标记和 CSS 样式创建 HTML 布局,所以我在这里遗漏了什么吗?请让我知道你的想法。

4

6 回答 6

10

即使您只使用一种特定样式,将其与您的其他样式保持一致而不是将其内联仍然有好处。首先,关注点分离可以提高可维护性。如果您知道您将只进行样式更改,则可以在一个地方查找任何更改。另一个好处是不必输入类名的自我记录。通过给该样式命名,即使它只使用过一次,它也会使下面的语义代码更具声明性——您可以读到这个随机的不仅是p一个段落,它也是一个intro段落。

当然,这是假设您永远不会再使用该特定样式。如果可能的话,还有更多理由将其分解为命名样式。内联样式并不邪恶,但它们在某种程度上是一种入门药物。

于 2009-05-02T01:09:10.080 回答
5

理想情况下,您的 CSS 应该是“面向对象的”(至少,与 CSS 一样的 OO)。当您定义可在其他地方使用的属性时,您应该从设置公共属性的类“继承”并创建新类。

看看OOCSS 项目,它试图支持这些原则(或重新引入它们)。

引用 Welbog的话

...在我看来,“OOCSS”只是不是随意编写的 CSS。就像你可以用 OO 语言编写非面向对象的设计一样,你很容易弄乱创建 CSS 的基本理念。OOCSS 似乎在说,“伙计们,我们不要再搞砸了。”

于 2009-05-02T01:19:06.187 回答
3

将 HTML 和 CSS 分开的一个优点是您可以在不更改任何 HTML 的情况下重新设计网页外观。

史蒂夫

于 2009-05-02T01:12:10.057 回答
1

在某些情况下,我通常会忽略为单个元素的简单样式更改创建新类。当您这样做时,通常很清楚,您需要将该特定样式应用于以后的其他内容的可能性几乎为零。对我来说最常见的情况是当我需要一些东西来让特定的填充/边距出现在正确的位置但它不是一个足够重要的元素来拥有自己的 ID。

这可能不是一个流行的观点,但在那些情况下,我不认为内联样式是邪恶的。

于 2009-05-02T01:07:05.137 回答
0

就个人而言,我发现我有一两个元素,我会放入一个内联样式,回去看看我需要的不仅仅是那个元素,所以我会把它改成一个类或者忘记它而不是能够改变它。

您还可以尝试放置某个 div / page 类,并在样式表中为其编写后代样式而不是内联元素。

此外,如果您决定添加 javascript,您将不会有一个标记良好的类,您需要更改它。

通常这对于动态生成的网站来说不是什么大问题,但是当您过度使用大量内联标签时,它可能会成为一个大问题。如果人们希望禁用样式以实现可访问性等,它也会使他们更难——你通常可以通过使用一个类来克服这个问题。

比如说,使用<b style="color:red">bold</b>body.products div b {color:red} 代替。

我个人是选择器的粉丝,不会使用太多的类。它们更具可重用性,您可以使用样式表在一个地方编辑整个站点。

但这是矫枉过正<p style="font-weight:bold;font-size:1.2em; text-index:20px;">Indented Bold Paragraph</p>所以它这个<p class="indent bold larger">text</p> instead you can do

or ``<p><b></b></p>.

于 2009-05-02T17:27:30.850 回答
0

“愚蠢的一致性是小人的妖精”

那么,在这种情况下,哪个是愚蠢的一致性?:) 为什么 DRY 优先于标记和样式的分离?

你能确定你的 CSS 规则只会被使用一次吗?更重要的是,你怎么能确定它将来不需要改变,你怎么能确定你会是需要做出改变的人?你确定你甚至需要添加一个类或 id 来定位这个独特的元素吗?

我想我很难看到如何添加

<input type="submit" style="border: 1px solid red;"/>

是不是比 12 个左右的字符更“优越”

<input type="submit" class="b-red">

.b-red {border: 1px solid red;}

或可能等效的字符数

input {border:1px solid red;}

当然,在某些情况下,每个经验法则都可以而且应该被违反。问题是,您从遵循 DRY 中获得的收益超过了遵循标记/样式二分法的重要性吗?

于 2009-05-02T17:47:35.420 回答