メディア クエリを使用して MediaWiki でレスポンシブ スキンを動作させようとしていますが、奇妙な動作のトラブルシューティングを行っています。
テスト div を wiki ページに追加すると、次のようになります。
<div id="testing">TESTING</div>
次に、メディア クエリを追加します。
@media screen {
#testing {background-color: green;}
}
...さまざまな場所に、スタイルは特定のブラウザーでのみ適用されます。例えば:
他のすべての作業スタイルが存在するアクティブなスキンの「screen.css」ファイルに追加すると、次のようになります。
- iPad: いいえ
- iPhone4: いいえ
- Chrome 20.0 XP+Mac: いいえ
- Firefox 14.0.1 XP+Mac: はい
すべてのスキンに適用される共通スキンの「shared.css」ファイルに追加すると、次のようになります。
- iPad: いいえ
- iPhone4: いいえ
- Chrome 20.0 XP+Mac: いいえ
- Firefox 14.0.1 XP+Mac: はい
それを wiki の "MediaWiki:Common.css" ページに追加すると:
- iPad: はい
- iPhone4: はい
- Chrome 20.0 XP+Mac: はい
- Firefox 14.0.1 XP+Mac: はい
注意: 通常のスタイル宣言は、これらすべての場所で期待どおりに機能します。奇妙さが現れるのは、外部ファイルのメディア クエリにラップされた場合だけです。どうやらこれはブラウザーの問題であり、MediaWiki のスタイル処理の問題が組み合わさったものです。Firefox の違いは何ですか?
また、Chrome の開発者コンソールでページを調べると、スタイルが "load.php" によってスタイル宣言の 1 つの大きな結合行としてインポートされているように見えることにも気付きました。しかし、それをサポートしているブラウザであっても、適用されていないようです。
誰でもこの動作に光を当てることができますか? wiki エディターではなく、スタンドアロンのスタイルシートで作業したいと思います。
アップデート:
また、Firefox Web コンソールで要素を調べると、次のようにスタイルがアクティブなスタイルの中にリストされていることに気付きました。
load.php:1 @media screen
#testing {
background-color: green;
}
Chrome の開発ツール要素ブラウザーで同じ方法で要素を検査すると、スタイルはどこにも表示されません。
更新 2:
テーマでこの行を置き換えると:
<link rel="stylesheet" href="/wiki/load.php?debug=false&lang=en&modules=mediawiki.legacy.commonPrint%2Cshared%7Cskins.customskin&only=styles&skin=customskin&*" />
テーマへの直接リンク:
<link rel="stylesheet" href="wiki/skins/customskin/screen.css" />
スタイルはどこでも適切に適用されます。