@ -moz-document url-prefix()は何をしますか?


83

SimonCollisonの新しい 古いレスポンシブWebデザインの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; }
}

これは実際に何をしますか?@ -moz-document url-prefix()をグーグルで検索し、userchrome内で使用するための参照を見つけましたが、標準のサイトスタイルシートではありません。

通常、引数として渡されたURLがあり、宣言の内容をそのURLに制限します。ただし、Collyのサイトでは、渡される引数はありません。これは、宣言が現在のURLまたは任意のURLで機能していることを示します。それで、ここで私たちが見ているのは、特定のルールでMozillaのみのブラウザをターゲットにする方法ですか?

回答:


95

で始まるCSSat-rule@-moz-は、Geckoエンジン固有のルールであり、標準のルールではありません。つまり、Mozilla固有の拡張機能です。

このurl-prefixルールは、含まれているスタイルルールをURLがそれで始まるすべてのページに適用します。すべてのページ@-moz-document url-prefix()に適用されるように、URL引数なしで使用した場合。これは事実上、Gecko(Mozilla Firefox)のみをターゲットにするために使用されるCSSハックです。他のすべてのブラウザはスタイルを無視します。

その他のMozilla固有の拡張機能のリストについては、ここを参照してください。


重要なポイントに出会えなかったので、質問を少し拡大しました。私はあなたがここに何を入れたかを直感的に推測しましたが、議論が渡されていないことに戸惑いました。しかし、私はそれを理解したと思います。
チャールズローパー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/")

このプロパティの-mozプレフィックスバージョンのサポートは、バグのためにWebコンテンツで停止されました。

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-prefixを使用して)「主要な互換性の問題が解決されたら、近い将来削除される」と書かれています。そして実際、それはもう機能していないようです。
デイブモールス

2

@supports (-moz-appearance:none) {...}うまく@-moz-document url-prefix() {...}いかなかった場合に私のために働いた。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.