2つのCSSファイルが相互に@importする正当な理由はありますか?


8

別のチームによって設計されたクライアントのWordPressサイトの重要なスタイルの改訂に取り組んでいます。

CSSは複雑な混乱のようです。私が見つけた特異性の1つは、テーマのメインスタイルシートstyle.cssである@がサブディレクトリから別のスタイルシートをインポートすることですcss/default.css。一方、default.css@はファイルの先頭にあるメインスタイルシートもインポートします。

@importディレクティブを削除してdefault.cssto のコンテンツを追加しましたstyle.cssが、default.cssスタイルをstyle.cssファイルの上部または下部のどちらに配置しても、レイアウトが壊れます。@importループはカスケードに対して何らかの方法でレイアウトを「機能」させます。

このようなものを見たことがありません。スタイルシートのもつれをほどき、セレクターの順序を特定度の高い順に並べる必要があることは明らかです。しかし、互いに@importする2つのCSSファイルを意図的に作成するための合理的な根拠はありますか?不自然に思えますが、これの背後に原理的な理由があるのではないでしょうか?

私はWordPress開発ではなく、フロントエンド開発を専門としています。WordPressはメインのテーマスタイルシートを解析してテーマ情報を取得します。@import再帰は、何らかの形でWordPressに役立つものですか?


インストールされているWPキャッシュプラグインはありますか?Chrome開発ツールを使用して、インポートを削除するときにレイアウトを壊しているCSSルールを確認し、それらが含まれているファイルを特定しましたか?
nathangiesbrecht

1
いい質問ですが、同じファイルを何度もダウンロードするように要求するページ、特に適切なキャッシュヘッダーがそれぞれに添付されていないページは、災害のレシピです。複数のワードプレスプラグインがインストールされていると思います。
マイク

1
「default.cssのコンテンツをstyle.cssに追加しました」-多分それは逆のはずです!?@import?に添付されたメディアクエリ
MrWhite

あなたはウェブサイトを共有できますか?
ePetkov

回答:


3

@importは、ページの読み込み時間に関して大きな混乱です。CSSの処理を完了すると、クライアントにロード時最適化のアイデアが浮かび上がり、遅くとも@importを削除することに関する質問が再び発生します。

まず、@ importを<link>に置き換えようとします。次に、dev-toolsを使用して、競合しているクラスを特定します。その後、!importantを追加して、インポートしたCSSファイルからCSSルールを移動してみます。

インポートされたCSSファイルのファイルの(相対)パスにいくつかの問題があることは起こり得ます...?

@imported CSSを使用してサイトをブラウザにロードすると、クライアントが期待するように見える場合があるため、dev-toolsを使用してCSS全体をコピーし、1つのCSSファイルに保存して、すべてのCSSファイルをこの新しく作成したファイルで置き換えます1。

私が達成しようとするグローバルなアイデアは、すべてのCSSルールを同じファイルに移動し、それを機能させてから、スクロールせずに見える範囲のCSSルールをHTMLファイルの先頭に移動することです。


ありがとう。すべてのルールを1つのファイルに移動し、Devツールを使用して競合を解決することはまさに私がしたことであり、見事に機能しました。
John Stephens
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.