質問: スタイルの無効化 cssは後から記述したものが優先されますが、上書きではなく、無効化することは不可能なのでしょうか? cakephpというフレームワークを使って開発をしているのですが、フレームワーク標準のcssファイルを直接修正せずに、上書き用のcssファイルにて必要な箇所だけオーバーライドしているのですが、上書きはできても、無効化(定義がなかったことに)する方法がわかりません。 以下、無効化したい箇所の例です。 table tr:nth-child(2n) td { background: #f5f5f5; /* これを無効化したい */ } div.view { float:right; width:76%; /* これを無効化したい */ border-left:1px solid #666; padding:10px 2%; } フレームワークのcssファイルを直接編集し、定義を消す、もしくはコメントアウトする以外に、この定義を適用させない方法がありますでしょうか?
回答: >cssは後から記述したものが優先されますが、 違います。カスケーディングのルールに従います。カスケーディングスタイルシートのもっとも根幹部分です。 すべてのスタイルをソートします。 重要度でソートされます。 ユーザーの重要宣言>著者の重要宣言>著者の宣言>ユーザーの宣言>デフォルトの宣言 詳細度が高いものから優先されます。 出所による宣言 最後に出現順位 よって詳細度を高くするか重要宣言で初期値を指定すれば良いです。 body div table tr:nth-child(2n) td {/* 詳細度0015 */ background: transparent none no-repeat 0% 0% 値 scroll ;/* 初期値 */ } とか table tr:nth-child(2n) td {/* 詳細度0014 */ background: transparent none no-repeat 0% 0% 値 scroll important! ;/* 初期値 */ } 6.4 カスケード処理(the cascade) ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html#cascade )