我应该使用哪些CSS选择器来设计JSP的样式.ID还是类别



我想知道的基本问题是,在可读性、可重用性、编码风格等方面,什么是首选。需要注意的一点是,这个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带来额外的工作。

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

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

如果您不想这样做,那么也没有理由使用style标记。只要把风格放在元素中:

<div style="font-weight:bold;background-color:purple;height:20px;">
<div>Blah Blah Blah!</div>
</div>

如果一个样式使用一次,请使用ID

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

多个类名可以用于处理"基类"的变体。

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

您将希望使用。这是因为该对象的页面上可能有多个实例。

然而 ,对于您正在做的事情,最好对不同的样式选项进行硬编码,并将它们放在css文件中。

它不必与其他页面共享,只需在给定的视图上直接链接即可。这也将使您不会有一个样式引用的50个副本。然后只生成该特定对象的类。

您应该检查层次结构。

"ID是唯一的,类不是唯一的">

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

最新更新