Javascript 是否每次都可以将内容、表现和行为分离?

Javascript 是否每次都可以将内容、表现和行为分离?,javascript,jquery,css,xhtml,web-standards,Javascript,Jquery,Css,Xhtml,Web Standards,是否每次都可以将内容、表现和行为分离 很多时候,我们通过javascript将类添加到html中,并在CSSvisibility:hidden inline中使用 我们是否应该总是花时间将所有问题分开?你的问题太笼统了,我们无法给你一个明确的答案 但是,由于没有什么是不可能的,我想说,是的,这是可能的 同时,我要说: 有时候,这会花很多钱,以至于你不会去做 有时候,这会让事情变得比不分开更困难,所以你不会这么做 我认为,作为概念上的分离,是的。虽然这通常是可能的,但通常是不实际的。正如你自己所

是否每次都可以将内容、表现和行为分离

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

我们是否应该总是花时间将所有问题分开?

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

但是,由于没有什么是不可能的,我想说,是的,这是可能的

同时,我要说:

  • 有时候,这会花很多钱,以至于你不会去做
  • 有时候,这会让事情变得比不分开更困难,所以你不会这么做

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

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

事实上,可以这样说(我亲眼目睹了这种说法),因为像
div
span
这样的标签本身没有任何语义意义,而是专门为样式设计而发明的,当你在页面上使用一个标签的时候,你已经在混合内容和呈现了。这是一个很好的哲学讨论,但在商业环境中,它毫无意义


因此,尽管您应该尽可能地将内容、表示和行为分开,但如果只是为了完成其他事情,您总是必须在某个地方停下来。

有一件事没有太多讨论,那就是如何将样式排除在您的行为之外,即,样式之类的东西,
$('element').css({color:'purple'})
尽可能从Javascript中删除。出于代码美学和一般理性的考虑,我发现让代码通过更新“类”值来更改样式更好。换句话说,不要在代码中认为某个东西应该是“紫色的”——认为它应该是“高贵的”、“与众不同的”或“有点丑陋的”:

然后您的CSS可以接管:

li.updated.kind-of-ugly { color: purple; }
现在,您可以随时自由地对“有点难看”进行样式调整,而不必弄乱Javascript。让字体更大,让它隐藏,不管什么;代码中的逻辑和操作保持不变


类似地,通过在CSS中使用父/子类关系,可以让您的行为简单、快速、无风格。

我认为使用“”不一定是风格而不是内容。HTML不是完美的,我不认为任何人会声称“有意义的”HTML元素集涵盖了任何人都应该需要的所有可能的语义结构。实际上,“”对内容有什么看法?没什么,真的;上面写着“这是一个段落”,这和布局(排版惯例)和语义学一样重要,但请注意,我并不是在争论。这是一个有趣的话题。@Pointy:当然。我想我想说的是,当拉里(或者是谢尔盖,我忘了)写第一个谷歌(或者BackRub)主页的时候,他做了一个非常有名的事,那就是故意不做。他不懂HTML,他只知道如何创建搜索字段和提交按钮,然后继续前进。现在看看谷歌现在在哪里。而且只要有效,他们仍然以使用无效标记而闻名。当然,这本身并不是最好的方法,也不是每个网站都是下一个谷歌。但它确实说明了一点,即除了纯粹主义之外,还有许多因素可以成功。Css内容属性也打破了这一规则。我已经在这里提到过,看看我的问题“很多时候通过javascript我们向html添加类”,我也每天都在关注这一点。我得出的结论是,想得太多是一条被遗忘的道路。。。通过JS添加一个类,您已经将它们分开了:-)
li.updated.kind-of-ugly { color: purple; }