使用Javascript分配样式与在服务器端脚本中分配样式

时间:2016-02-28 20:14:04

标签: javascript jquery html css css3

我在一个使用相当陈旧的技术的项目中工作。在工作期间,我遇到了这个问题。由于我找不到任何官方的W3推荐,我决定在这里提出这个问题。

想象一个简单的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>

我想要做的工作非常简单:为每个表行分配两个CSS样式类中的一个,让我们称它们为.evenRow.oddRow

问题是:假设这些类是在外部CSS样式表中定义的。我不允许修改该文件,但我不得不将这些类中的一个分配给每个表行。我不能使用任何CSS工具,如Less,Sass或Compass。只是纯CSS + Javascript / jQuery +服务器端脚本语言。

我找到了3个问题的可能解决方案,但由于我缺乏网络编程经验,我不知道哪个是最好的解决方案&#34;良好的网络开发实践&# 34。

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类/属性是否是一种好习惯?根据语言的不同,它可能会在代码中留下一些混乱或混乱。另外,我还没有真正发现让服务器端语言处理表示层的直观性......

所以,我的问题是:该案件是否有任何官方建议?可以考虑任何这些解决方案&#34;唯一正确的解决方案&#34;或者从来没有应用过这个解决方案&#34;?

我对前端开发很新,所以请怜悯我的答案;)

1 个答案:

答案 0 :(得分:0)

JSP是用于演示的,因此我并不真正理解您对将其用于其意图的疑虑。只是不要在新代码中编写scriptlet,而是使用JSTL。

其他两个&#34;解决方案&#34;由于上述原因,恕我直言的琐事最好。