4

每次都可以分离内容、呈现和行为吗?

很多时候,我们通过 javascript 向 html 添加类并在 CSS 中使用visibility:hidden inline

我们应该总是花时间将所有东西分开吗?

4

4 回答 4

2

虽然这通常是可能的,但通常是不切实际的。正如你自己所说,这需要时间。你是否愿意投入那段时间取决于很多因素,纯粹主义只是其中之一。

事实上,可以说(我亲眼目睹了这一点),因为诸如divor之类的标签本身span并没有任何语义含义,而是专门为造型而发明的,所以在你使用的那一刻您的页面上只有一个,您已经在混合内容和演示文稿。这是一个很好的哲学讨论,但在商业环境中它没有任何结果。

因此,虽然您应该始终尝试尽可能地将内容、呈现和行为分开,但您将始终不得不在某个地方停下来,即使只是为了完成其他事情。

于 2010-02-10T19:53:03.377 回答
1

你的问题太笼统了,我们无法给你一个明确的答案。

但是,既然没有什么是不可能的,我会说,是的,这是可能的。

同时,我想说:

  • 有时,它会花费很多,你不会这样做
  • 有时,它会让事情变得比不分开更难,所以你不会这样做
于 2010-02-10T19:30:09.710 回答
1

没有过多讨论的一件事是如何让风格远离你的行为——也就是说,$('element').css({color: 'purple'})尽可能在你的 Javascript 中设置风格。出于代码美学和一般理智的原因,我发现让代码通过更新“类”值来更改样式会更好。换句话说,不要在代码中认为某些东西应该是“紫色的”——认为它应该是“高贵的”或“独特的”或“有点丑的”:

$('.sections li.updated').each(function() {
  // ...
  if (thingsLookRight) $(this).addClass('kind-of-ugly');
  // ...
});

然后你的 CSS 可以接管:

li.updated.kind-of-ugly { color: purple; }

现在,您可以随时随意对“有点难看”的样式进行小幅调整,而不必弄乱您的 Javascript。使字体更大,使其隐藏,无论如何;代码中的逻辑和操作保持不变。

同样,您可以通过在 CSS 中使用父/子类关系来做很棒的事情,以保持您的行为简单、快速且无样式。

于 2010-02-10T21:11:44.027 回答
0

我认为作为概念分离,是的。

于 2010-02-10T19:30:21.553 回答