我在使用,而过时的技术项目的工作分配方式。在工作中,我遇到了这个问题。由于我找不到任何W3的推荐,我决定在这里提问。的JavaScript分配的风格VS服务器端脚本
想象一下,一个简单的dinamically生成的表,如下所示:
<table>
<tbody>
<tr id="row1"><!-- More content here --></tr>
<tr id="row2"><!-- More content here --></tr>
...
<tr id="rowN"><!-- More content here --></tr>
</tbody>
</table>
我想要做的工作是deceively简单:分配给每个表行两个CSS样式类中的一个,我们姑且称之为.evenRow
和.oddRow
。
的问题是:我们假定这些类是在外部CSS样式表中定义。我不允许修改该文件,但我有义务将这些类中的一个分配给每个表格行。我无法使用像Less,Sass或Compass这样的CSS工具。只需纯CSS + Javascript/jQuery +服务器端脚本语言。
我发现问题的3个可能的解决方案,但因为我缺乏的网络编程经验,我真的不知道哪一个会是“良好的网络发展实践”方面的佼佼者。从外部样式表到我们的文件
1. 复制CSS样式和喜欢简单的分配规则CSS3:
table tr:nth-child(even) { copied .even property:value pairs }
table tr:nth-child(odd) { copied .odd property:value pairs }
缺点:我们正在做的是真正复制CSS规则,没有提及外部样式表。在更改外部样式表的情况下,我们需要手动修改文档中的规则。为了让事情变得更糟,这在IE8中不起作用(我们有义务支持这个版本)。
2. 分配类的JavaScript:
jQuery("table tr:even").addClass("oddRow")
jQuery("table tr:odd").addClass("evenRow")
疑惑:是否真的正确离开HTML/CSS编写的客户端?执行类似JavaScript的类分配操作是否被认为是一种好的做法?我的意思是,我们可以在生成文档时告诉正确的类,然后将它发送给客户端。没有理由等待。
3. 在服务器端分配类。
例如,为了定义一个取生成所有TR元件的护理的环内的计数器。如果计数器值是偶数,则分配evenRow
类并反过来,从而在每次循环迭代中递增计数器。
疑惑:再次:是否认为是一个很好的做法来分配使用服务器端语言CSS类/属性?根据不同的语言,它可能会使代码变得混乱或混乱。此外,我真的不觉得它直观地让服务器端语言照顾表示层的...
所以,我的问题是:有没有对这种情况下,任何官方的建议?这些解决方案中的任何一个都可以被认为是“唯一正确的解决方案”还是“永远不会应用这种解决方案”?
我是相当新的前端开发,所以请饶了我你的答案;)
什么是您的服务器端后端,您是否使用任何模板解决方案? – meskobalazs
我们使用JSP,很少有taglib,主要是scriptlet。 (我知道 - - 我告诉你这是一个相当陈旧的技术)。 – Ismael
那么,那就是你的答案,使用jsp。 – meskobalazs