0

我想知道的基本问题是在可读性、重用、编码风格等方面首选什么。需要注意的一点是,这个 JSP 可以在页面的多个部分中使用,对于这个天真的例子,让我们说它只是一个 div 需要以某种方式设置样式并多次不同地放置在页面上。

我意识到我可以将这个类外部化为一个共享的 CSS 文件,但是这个类只会被页面的这一部分使用,例如这个盒子是整个产品中唯一需要紫色的盒子,在我认为为了清理我的 JSP 而弄脏共享 CSS 是没有意义的。那么什么更好

选项 1(使用 ID 选择器)

<% String contextName = request.getParameter("myContext"); %>

<style type="text/css">
    #<%=contextName %>_myDiv
    {
        font-weight: bold;
        background-color: purple;
        height: 20px;
    }
</style>

<div id="<%=contextName %>_myDiv">
    <div>Blah Blah Blah!</div>
</div>

选项 2(使用类选择器)

<% String contextName = request.getParameter("myContext"); %>

<style type="text/css">
    .<%=contextName %>_myDiv
    {
        font-weight: bold;
        background-color: purple;
        height: 20px;
    }
</style>

<div class="<%=contextName %>_myDiv">
    <div>Blah Blah Blah!</div>
</div>

在我看来,选项 2 会使事情更容易调试,因为它们使用共享类,但是如果页面上有(例如)50 个这样的框,那么它将导致这个类被声明 50 次。这是否会为浏览器带来额外的工作量。或者,如果我使用 ID 选择器方法,那么我会创建 50 个独特的样式,它们执行完全相同的操作,导致浏览器需要额外的工作来匹配所有 ID。

那么什么更好呢?注意:这两种方法都有效,我只是在寻找每种方法的优缺点。

4

4 回答 4

2

无论如何,您不应该有style元素body,因此您应该将样式放在样式表中。由于 id 在页面中应该是唯一的,因此您将使用一个类。

如果您不想这样做,那么也没有理由拥有style标签。只需将样式放入元素中:

<div style="font-weight:bold;background-color:purple;height:20px;">
  <div>Blah Blah Blah!</div>
</div>
于 2012-11-21T20:27:03.923 回答
1

如果一个样式被使用一次,使用一个ID.

如果一个样式被多次使用,请使用class name. 该类只需要声明一次,但在使用该类名的任何元素中都可以引用。

多个类名可用于处理“基”类的变体。

通常,您应该使用外部样式表来允许浏览器缓存文件。

于 2012-11-21T20:22:09.907 回答
1

你会想要使用。这是因为您可能在该对象的页面上有多个实例。

但是,对于您正在做的事情,最好还是硬编码您的不同样式选项并将它们放在一个 css 文件中。

它不必与其他页面共享,只需将其直接链接到您的给定视图。这也将防止您拥有 50 个重复的一种样式参考。然后只需为该特定对象生成类。

于 2012-11-21T20:25:36.903 回答
1

您应该检查层次结构。

“ID 是唯一的,Class 不是唯一的”

查看这篇文章 http://css-tricks.com/the-difference-between-id-and-class/

于 2012-11-21T20:45:27.233 回答