[解決済み】 !importantはパフォーマンスに悪い?
質問
CSSのカスケード機能を無視することになるし、注意して使わないと、さらに追加していくというループに陥ってしまうからだ。
!important
.
でも、性能的には問題ないのでしょうか?
EDIT
早い)返信から、パフォーマンスに(大きな)影響を与えないと結論付けられます。
しかし、それは他の人を思いとどまらせるための余分な議論であるとしても、知ることは良いことです;)。
EDIT 2
BoltClockの指摘により、2つある場合は
!important
の宣言は、仕様では最も具体的なものを選ぶとされています。
解決方法は?
パフォーマンスへの明らかな影響はないはずです。参照
での Firefox の CSS パーサーは
/source/layout/style/nsCSSDataBlock.cpp#572
を処理し、それが関連するルーチンだと思います。
上書き
CSSルールの
単純に"important"をチェックしているだけのようです。
if (aIsImportant) {
if (!HasImportantBit(aPropID))
changed = PR_TRUE;
SetImportantBit(aPropID);
} else {
// ...
}
また、コメント欄は
source/layout/style/nsCSSDataBlock.h#219
/**
* Transfer the state for |aPropID| (which may be a shorthand)
* from |aFromBlock| to this block. The property being transferred
* is !important if |aIsImportant| is true, and should replace an
* existing !important property regardless of its own importance
* if |aOverrideImportant| is true.
*
* ...
*/
<ブロッククオート
-
Firefox は手動で記述されたトップダウンパーサーを使用しています。どちらの場合も、各 CSS ファイルは StyleSheet オブジェクトにパースされ、各オブジェクトには CSS ルールがあります。
-
その後、Firefox は、最終的な値を含むスタイル コンテキスト ツリーを作成します。 (すべてのルールを正しい順序で適用した後)
From: http://taligarsiel.com/Projects/howbrowserswork1.htm#CSS_parsing
さて、上記のようなオブジェクト モデルがある場合、パーサーは
!important
を簡単に、しかもその後のコストをあまりかけずに行うことができます。パフォーマンスの低下
はありません。
に対する正論
!important
.
しかし、(他の回答が述べているように)保守性が損なわれてしまうので、それが唯一の反論かもしれません。
関連
-
[css3]ピュアCSS3でdivのinとoutの効果を順番に実現する
-
[CSSチュートリアル】CSSで実現するイメージマッピングメソッド
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] セレクトボックスのプレースホルダーを作成するにはどうすればよいですか?
-
[解決済み] 0.1fを0にすると、なぜ10倍もパフォーマンスが落ちるのですか?
-
[解決済み] 最初の要素にクラスを指定するCSSセレクタ
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] .css()を使って!importantを適用するには?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】CSSを使用して、すべてのブラウザでdiv要素を垂直方向に中央に配置するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル]CSSで簡単!高周波な異形ボタンを実現する方法
-
[CSSチュートリアル】CSS たった1行のコードでアバターと国旗の一体化を実現
-
[css3]css3におけるtransformプロパティの4つの機能
-
[CSSチュートリアル】CSS3Animationで実現する簡単な指のクリックアニメーションの例
-
[CSSチュートリアル】height:100%と書いても効かない理由
-
[CSSレイアウト例】CSSで中央揃えを実現する方法N種
-
[CSSチュートリアル]CSS動的高さ遷移のアニメーション効果の実装の
-
[CSSチュートリアル】ピュアCSSでDIVホバーを実現するサンプルコード(固定位置編)
-
[css3]赤いパケットのジッター効果を実現するCSS3
-
[CSSチュートリアル】CSSプリグラミング言語と詳細解説の違いについて