类引用前的 * 是啥意思?

Posted

技术标签:

【中文标题】类引用前的 * 是啥意思?【英文标题】:what does an * before a class reference mean?类引用前的 * 是什么意思? 【发布时间】:2016-01-17 13:21:32 【问题描述】:

我有如下代码:

<div class="new-modal *max-height--xxl flex--0-1">

我想知道*max-height--xxl在这里是什么意思?

这是与wildcard * in CSS for classes不同的问题

我想问html类引用中的*前缀。

【问题讨论】:

wildcard * in CSS for classes的可能重复 @LaxmikantDange — 不。这是在谈论 CSS 而不是 HTML。 这个名字告诉我*max-height--xxl 类用于最大高度,也许你很少有名为*max-height--xl*max-height--L 的类用于指示最大高度选择器的设置?跨度> 【参考方案1】:

在全球范围内没有任何东西。在 HTML5 中,class 属性可以包含哪些字符没有限制(除了用于分隔多个类的空格字符)。

例如,以下 HTML 是有效的:

<figure class="foo bar baz %foo *bar _baz 'foo (bar )baz"></figure>

这里foo 是一个类,%foo 是第二个不相关的类,'foo 是第三个不相关的类。

以下也是有效的:

<figure class="%*_'()"></figure>

HTML5 规范规定class 属性必须是一组space-separated tokens。它继续将这些定义为:

一组以空格分隔的标记是包含零个或多个单词(称为标记)由一个或多个空格字符分隔的字符串,其中单词由一个或多个字符的任何字符串组成,其中没有一个是空格字符。

值得注意的是,这些符号可能需要转义(通过在它们前面加上反斜杠 (\) 字符)才能被 CSS 选择器定位。

.\%\*\_\'\(\) 
  color: red;
<figure class="%*_'()">
  Hello, world!
</figure>

【讨论】:

感谢您的回答!真的很感激!【参考方案2】:

这并不意味着什么特别。类名以* 字符开头。

这可能是一种旨在更改类名并有效地将其注释掉以使其不再匹配 CSS 选择器的 hack。

var c = document.querySelector('div').classList;
var list = [];
for (var i = 0; i < c.length; i++) 
  list.push(c[i]);
;
document.body.innerHTML = list.join(" / ");
&lt;div class="new-modal *max-height--xxl flex--0-1"&gt;&lt;/div&gt;

【讨论】:

以上是关于类引用前的 * 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

我们所说的“分支”到底是啥意思?

术语“取消引用”对象到底是啥意思?

“弱引用对象不再存在”是啥意思?

EXCEL函数中OFFSET表达的是啥意思

JavaScript 对象的“值是引用”是啥意思

java引用类型的类型转换规则是啥?