@ -moz-document url-prefix()有什么作用?


83

在西蒙·科里森的 老自适应网页设计,在CSS中,有几个的声明是这样的:

@-moz-document url-prefix() {
  .fl { float:left; margin:12px 4px 0 0; padding:0; font-size:65px;  line-height:62%;  color:#ba1820; }
  .fs { float:left; margin:12px 4px 10px 0; padding:0; font-size:65px; line-height:62%; color:#ba1820; }
}

这实际上是做什么的?我已经用Google搜索了@ -moz-document url-prefix(),并找到了在Userchrome(而非标准网站样式表)中使用它的参考。

它通常有一个URL作为参数传入,然后将声明的内容限制为该URL。但是,在Colly的站点上,没有传递任何参数。这将表明声明是在当前URL或任何URL上操作的,不是吗?那么,我们在这里看到的是使用某些规则定位仅Mozilla浏览器的方法吗?

Answers:


95

任何以CSS开头的规则@-moz-都是Gecko引擎特定的规则,而不是标准规则。也就是说,它是Mozilla特定的扩展。

url-prefix规则将包含的样式规则应用于URL以其开头的任何页面。不带URL参数使用时,@-moz-document url-prefix()它适用于所有页面。实际上,这是仅用于Gecko(Mozilla Firefox)的CSS hack。所有其他浏览器将忽略这些样式。

有关其他Mozilla特定扩展的列表,请参见此处


我扩大了问题的范围,因为我没有找到重点。我直觉上猜到了您在此处输入的内容,但是由于缺乏论点而感到困惑。不过,我认为我已经弄明白了。
Charles Roper 2010年

我在mozilla中特定字体的字母间距有麻烦。(即素数)。在chorme中,它显示还可以,但在Firefox中,它显示得更宽。所以我想减少Firefox中的字母间距,而不是镀铬。我找不到字母间距的这种moz扩展名。
Yash Vekaria 2015年

1
@YashVekaria这不是moz扩展名,您将使用CSS属性。 @-moz-document url-prefix() { .your-class { letter-spacing: 2em; } }
胖乔

17

来自https://developer.mozilla.org/en/CSS/@-moz-document

       @-moz-document url(http://www.w3.org/),
                   url-prefix(http://www.w3.org/Style/),
                   domain(mozilla.org)
    {
      /* CSS rules here apply to:
         + The page "http://www.w3.org/".
         + Any page whose URL begins with "http://www.w3.org/Style/"
         + Any page whose URL's host is "mozilla.org" or ends with
           ".mozilla.org"
       */

      /* make the above-mentioned pages really ugly */
      body { color: purple; background: yellow; }
}

5

从Firefox 59开始,您应该只使用:

@document url("https://www.example.com/")

Web内容已停止支持此属性的-moz前缀版本,原因是存在以下错误:

https://bugzilla.mozilla.org/show_bug.cgi?id=1035091


@jaepage,是的,它将不再起作用。您应该使用:_:-moz-tree-row(hover), .selector {}.selector您想要的选择器在哪里。
亚当

4
Firefox将支持@-moz-document url-prefix()(带有空url前缀)fxsitecompat.com/en-CA/docs/2018/…–
奥兰多

4
该链接现在说@-moz-document url-prefix()(带有空url前缀)“一旦解决了主要的兼容性问题,将在不久的将来删除”。实际上,它似乎不再起作用了。
戴夫·莫尔斯

2

@supports (-moz-appearance:none) {...}@-moz-document url-prefix() {...}没有的情况下为我工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.