代码之家  ›  专栏  ›  技术社区  ›  Uffo

这在CSS中是什么意思?

  •  47
  • Uffo  · 技术社区  · 14 年前

    我刚看到这个: *|*:link 和萤火虫在一起。这似乎是一些默认样式的火狐附加,但什么呢 *|* 什么意思?

    2 回复  |  直到 12 年前
        1
  •  31
  •   BoltClock    12 年前

    它的意思是“所有名称空间中 :link ."

    More on universal selectors and namespaces.

        2
  •  14
  •   Community CDub    7 年前

    *|* 是一个 namespace-qualified universal selector . 第一个 * 指任何名称空间(包括默认名称空间和缺少名称空间),以及第二个名称空间 表示任何元素类型。

    *|*:link 表示任何命名空间中未访问超链接的任何元素( :link *| 前缀是指任何命名空间中的某些元素,包括:

    • 默认名称空间中的元素(例如XHTML)
    • 任何其他命名空间中的元素(例如Firefox中的XUL)
    • 不在命名空间中的元素

    CSS has a module dedicated to namespace declarations.

    文档类型决定应将哪种元素指定为超链接:

    • 在HTML和XHTML中,这始终是一个 a href 属性。

    • label.text-link 带有 href公司

    请注意,CSS名称空间仅在使用CSS设置XML文档样式或定义类似名称空间的其他文档类型时才有用。这包括带有自定义XML名称空间的XHTML页面。在常规HTML文档中,通常不需要在选择器中使用名称空间前缀。

    也就是说,浏览器在其用户代理样式表中声明了一个默认的名称空间,该名称空间与XHTML/XHTML的XHTML相对应,以允许与其他基于XML的语言进行互操作。对于Firefox,这显然是用于XHTML和XUL的:

    @namespace url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */
    @namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
    

    由于(X)个HTML元素位于默认名称空间中,因此 只有这些元素

    还要注意的是,如果您希望以任何具有名称空间前缀的元素类型为目标,则 右边一定有,所以 *|:link 将是无效的。看到了吗 this answer 详情。