例如,如果我想使用jQuery选择某个具有某个类的元素,并且仅仅因为这个原因,那么总是应该在css中定义这些类吗?
<div class="xyz">
something
</div>
<div class="xyz">
something else
</div>
//with example jQuery
$(".xyz").hide();
//is it wrong no element 'xyz' is defined in css?
答案 0 :(得分:8)
这是完全可以接受的。随着客户端处理变得越来越普遍(通过jQuery,ExtJS,Prototype等),创建可以使用这些库提供的强大选择器支持的高效代码是有意义的。
答案 1 :(得分:5)
使用CSS类和 - 根据情况 - ID(唯一!!)非常好,通常是保持HTML代码有效的唯一解决方案,同时提供脚本使用的其他属性。
虽然使用非标准属性通常也可以正常工作,但它会阻止您的HTML代码进行验证,并可能在将来导致问题。
但是,在某些情况下,也可能存在可以使用的属性 - 例如链接上的rel
,这些链接通常用于修改链接行为的脚本。
http://www.w3.org/TR/html401/struct/global.html#h-7.5.2还提到该课程是通用的:
另一个是class属性 手,分配一个或多个类名 一个元素;这个元素可以说 属于这些类。一类 名称可能由多个元素共享 实例。 class属性有 HTML中的几个角色:
- 作为样式表选择器(当作者希望将样式信息分配给一组元素时)。
- 供用户代理进行一般处理。
答案 2 :(得分:4)
class属性指定一个 元素的类名。
class属性主要用于 指向样式表中的类。 但是,它也可以用于 JavaScript(通过HTML DOM)来制作 使用a更改HTML元素 指定的类。
使用没有相应css规则的类属性并不是一种糟糕的形式......
使用class作为“数据持有者”比使用rel,title等任何其他属性更好......
答案 3 :(得分:3)
我不这么认为。
如果使用“正确”,“粉红色”等类,则不会将数据与演示文稿分开。
我使用类来定义元素中的内容。
<div class="product">
我可以将它与CSS和JS一起使用,但有时我只是喜欢上课,所以我可以轻松调试。
答案 4 :(得分:2)
我会说没关系。该属性被命名为class而不是cssstyleclass或类似的东西。使用类属性来定义元素是非常有意义的。
答案 5 :(得分:2)
实际上非常狡猾。你一开始并没有考虑它,但你可以用类层次结构做一些漂亮的切割器。
例如,Facebook使用User-Agent HTTP标头在body标签上设置浏览器特定的类。它不是一直使用,但它可以用于编写浏览器特定的CSS,它优于许多其他的替代品,因为它只是切割器使用CSS,你最终将浏览器特定的东西与一般CSS规则一起分组,促进你的地方CSS文件。当您需要在较长时间内维护CSS文件时,这很重要。a { color: blue; }
.ie7 a { color: black; }
因为在使用Internet Explorer 7渲染时,CSS如何“级联”上面的锚定标记的CSS规则会更加具体。那将通过selector's specificity强制在IE7中将锚标记设置为黑色,而不是hackish和模糊的CSS技巧。
正如其他人所说,它也可以通过JavaScript使用。我发现将CSS类用作布尔标志非常有用。例如我可以用它来创建一个非常简单的水印控件。
<input type="text" value="watermark" class="watermark" />
$('input').focus(function(e) {
var target = $(this);
if (target.hasClass('watermark')) {
target.val('');
target.removeClass('watermark');
}
});
jQuery代码段可以正常工作,但更精细的是我现在有两件事。一次性的逻辑和造型。因为这里用作标志的水印也可以用于通过CSS应用特定的视觉样式,具体取决于此输入的状态。例如当水印活跃时,我可能不会是一个灰色的斜体字体。
还有更多这样的例子,我确实鼓励你尝试更多。
答案 6 :(得分:1)
我不认为这是一种不好的做法。如果你需要它们,你应该使用它们。这很有道理。
如果你不想,也许你有一个围绕所有元素的父元素,或者你可以找到他们共同的东西并将其转化为选择器。 $("div#somediv > div").hide()
但是它会花费你更多的时间和思考,就好像你只是给他们上课一样。