連続して呼び出された 2 つのスタイルシートのうち 2 番目のスタイルシートは、最初のスタイルシートで定義されたすべてのスタイルをオーバーライドできますか?
-
20-08-2019 - |
質問
次のように呼び出される 2 つのスタイルシートにリンクする HTML ページがあるとします。
<link rel="stylesheet" href="original.css" media="screen, projection" />
<link rel="stylesheet" href="override.css" media="screen, projection" />
これら 2 つのファイルがまったく同じスタイル名を定義している場合、次のことは本当ですか? original.css
はスタイル設定されたページの結果には影響せず、すべてのスタイルはで定義されたスタイルから取得されます。 override.css
?
私が尋ねる理由は次のとおりです。を持っています original.css
このファイルは変更できず、このファイルを呼び出すコード行には触れたくないのです。代わりに、元のファイルが呼び出された直後に新しいファイルへの呼び出しを挿入し、元のファイルで定義されているすべてをオーバーライドしたいと考えています。これがうまくいくかどうか、それが推奨されるかどうかなどはわかりません。
解決
はい、確かにそれは可能です。これが、Cascading Style Sheets の Cascading 部分です。
それにしても、original.css をなぜ削除できないのか、出力しないのか、あるいは...何か?オリジナルのすべてを完全にオーバーライドするのは、非常にビッグハンマーのアプローチのように思えます:-) 実際にoriginal.cssとoverride.cssを出力すると、ブラウザは単に出力する場合よりもはるかに多くの作業を実行する必要があります。オーバーライド.css。
他のヒント
はい、それは動作します。あなたはそれが本当に賢明ではないということですね。代わりにあなたはその周りにコメントタグを挿入することができ、コードの元の行を「触れない」?
すべてのことが上書きされたのですが、すべてがクラスまたはIDまたは擬似セレクタまたは何に同じですが、異なる印加情報ではありません補完しようとしている上書きするだろう。私は、IEを意味します:
original.css -
p { margin: 4px 6px 10px 12px; }
h1 { font-size: 2.2em }
override.css -
p { padding: 6px; color: #666666; }
h1 { font-size: 1.5em }
私が言ったことはスタイルが互いに競合していないので、Pはoverride.cssで補完されていることです。一方では、H1の例は、実際に上書きされ、それぞれのスタイルシート内の2つのルールがそう最後の宣言が優先競合している。
これは、1つは考えることができるほど悪くはない...私は数ヶ月前にスタイルやデータのマッドハウスのようなmebededあるのmoodleでサイトを終了しました。テンプレートは、その後、コースから、そのページのテンプレートから、デフォルトのテンプレートからスタイルシートのデータを使用しました。私は私がそのように自分自身のために変更するには、コードの正しい部分を見つけていないために強調されたものをやったスタイルを実現しようとすると...私は最終的に新しい上書きスタイルや新しい補完するもので、私自身のスタイルシートを添付することを決めました。それは私が約2週間は、デザイナー、夢を見たことがない - 地獄-のコードで掘りセーブされます。
あなたは明確なアイデアを取得し、このヘルプを願っています。
さようならます。
この必要性の偉大な例では、SharePointです。任意のテーマを編集すると、core.cssクラスからオーバーライドする必要がある変更の全体のホストであなたを残します。