当前位置: 首页 > 面试题库 >

我可以使用不存在的CSS类吗?

桓瀚
2023-03-14
问题内容

我有一个表,其中通过不存在的CSS类通过jQuery显示/隐藏整列:

<table>
   <thead>
      <tr>
         <th></th>
         <th class="target"></th>
         <th></th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td></td>
         <td class="target"></td>
         <td></td>
      </tr>
      <tr>
         <td></td>
         <td class="target"></td>
         <td></td>
      </tr>
   </tbody>
</table>

有了这个DOM,我可以通过jQuery在一行中完成此操作: $('.target').css('display','none');

这很好用,但是使用未定义的CSS类是否有效?我应该为此创建一个空类吗?

<style>.target{}</style>

是否有任何副作用或有更好的方法来做到这一点?


问题答案:


CSS类”是用词不当;class是您分配给HTML元素的属性(或就脚本而言的属性)。换句话说,你在你的情况下,“目标”类HTML,CSS不申报类,所以
不会 在这些特定元素的事实存在,并且您的标记是完全有效的,因为它是。

这并不一定意味着您必须先在HTML中声明一个类,然后才能在CSS中使用它。请参阅ruakh的评论。选择器是否有效完全取决于选择器语法,并且CSS具有自己的规则来处理解析错误,这些规则都与标记无关。从本质上讲,这意味着HTML和CSS在有效性方面完全相互独立。1个

一旦了解了这一点,就很清楚.target在样式表中不定义规则没有副作用。2在为元素分配类时,可以在样式表或脚本中或在这两者中按这些类引用这些元素。两者都不依赖对方。相反,它们都引用标记(或更准确地说,是DOM表示)。即使您使用JavaScript来应用样式,这一原理也适用,就像在jQuery单行代码中所做的那样。

当您使用类选择器编写CSS规则时,您的意思是“我想将样式应用于属于该类的元素”。类似地,当您编写脚本以按某个类名检索元素时,您的意思是“我想使用属于该类的元素来做事”。是否存在
元素属于有问题的类是一个单独的问题完全。

1 这也是CSS ID选择器将 _所有_具有给定ID的元素匹配的原因,而无论ID是显示一次还是多次(导致不合格的HTML文档)。

2
我唯一知道的情况是,当某些浏览器由于错误而拒绝适当地应用某些其他规则时,需要使用空CSS规则。创建空规则将由于某些原因而应用其他规则。



 类似资料:
  • 问题内容: 我想命名一个CSS类,并将其命名为imgSuper。我可以在CSS类中使用camelCasing吗? 问题答案: 从技术上讲是可以的,但是这是有风险的,因为CSS语法几乎不区分大小写,但是在某些情况下,在某些浏览器中,类名被视为区分大小写,因为规范未指定将CSS规则与HTML类匹配时浏览器应如何处理大小写名称。 从规范,4.1.3节: 所有CSS语法在ASCII范围内都不区分大小写…

  • 问题内容: 我打算在我的代码中使用以获得更好的性能。 但是,出现以下错误: 我尝试了另一种方式,并收到此错误: 我的代码如下所示: 我认为由于未在main函数中使用而引起了错误。 我的猜想对吗?以及如何修改代码以修复错误? 问题答案: 问题是您在实例中有一个无法拾取的实例变量()。因为您正在调用实例方法,并且您正在Windows上运行,所以整个实例都必须是可腌制的,才能将其传递给子进程。是一个打开

  • 问题内容: 我可以在CSS中用某些东西代替maxlength属性吗? 问题答案: 否。这需要在HTML中完成。如果需要,可以使用Javascript设置值。

  • 问题很简单,在谷歌应用程序引擎上(无论是Java servlet还是Endpoints或其他),我可以使用Android类吗?i、 e.我可以在android中使用类似位图或任何其他类吗。图形软件包?

  • 本文向大家介绍我们如何在HTML中使用不同的CSS类?,包括了我们如何在HTML中使用不同的CSS类?的使用技巧和注意事项,需要的朋友参考一下 在HTML中,根据元素的class属性定义样式规则。具有该类的元素将根据定义的规则进行格式化。这称为类选择器。要选择具有特定类的元素,需要编写一个句点(。)字符,后跟类的名称,例如.black 对于文档中class属性设置为black的每个元素,以黑色显示

  • 我在学计算机工程,我有一些电子课程。我从我的两位教授(这些课程)那里听说,可以避免使用函数(在、等之后),因为分配的内存空间可能不会再次用于分配其他内存。也就是说,例如,如果您分配4个字节,然后释放它们,您将有4个字节的空间,可能不会再次分配:您将有一个洞。 我认为这太疯狂了:你不可能有一个在堆上分配内存而不释放内存的非玩具程序。但是我没有知识来解释为什么它如此重要,对于每一个malloc()必须