Wordpressテンプレートの元のCSSを上書きするカスタムスタイルシートを作成しました。しかし、私のカレンダーページでは、元のCSSには次の!important
宣言で設定された各テーブルセルの高さがあります。
td {height: 100px !important}
これを上書きできる方法はありますか?
!important
有害と見なされるのはこのためです。
Wordpressテンプレートの元のCSSを上書きするカスタムスタイルシートを作成しました。しかし、私のカレンダーページでは、元のCSSには次の!important
宣言で設定された各テーブルセルの高さがあります。
td {height: 100px !important}
これを上書きできる方法はありますか?
!important
有害と見なされるのはこのためです。
回答:
!important
、セレクターに高い特異性を与える(セレクターにタグ、ID、またはクラスを追加する)より高い特異性を持ついくつかの例(最初が最も高い/オーバーライド、3番目が最も低い):
table td {height: 50px !important;}
.myTable td {height: 50px !important;}
#myTable td {height: 50px !important;}
または、既存のセレクターの後に同じセレクターを追加します。
td {height: 50px !important;}
を使用することはほとんど決して良い考えではありません!important
。これは、WordPressテンプレートの作成者による悪いエンジニアリングです。バイラルスタイルで、テンプレートのユーザーは独自のテンプレートを追加する必要があります!important
修飾子をてオーバーライドするし、JavaScriptを介してオーバーライドするためのオプションを制限します。
ただし、必要に応じてオーバーライドする方法を知っておくと便利です。
!important
。Stylish、AdBlock、またはuBlockスクリプトからのブラウザー全体またはサイト全体のスタイルのオーバーライドと同様です。または、非常に複雑で、多くのファイルに広がり、時間とともに変化する(そしてを使用することもある!important
)ベースCSSに簡単にアクセスできない場合。他のツールと同様に、正または負のポテンシャルは、その使用方法に基づいています。人々はこのようなことやgoto / eval / globals / etcのようなときはいつでも類人猿を止める必要がある 言及されています。「混乱を招く」可能性が非常に大きいため、「WordPressを回避」または「CSSを回避」と言うこともできます。
!important
あなたは矛盾であなたのスタイルシートのセレクタがある場合にのみ使用すべきである特異性を。
ただし、特定性が競合している場合でも、例外に対してより具体的なセレクターを作成することをお勧めします。あなたの場合class
、!important
ルールを必要としないより具体的なセレクターを作成するために使用できるをHTMLに含める方が良いでしょう。
td.a-semantic-class-name { height: 100px; }
私!important
は自分のスタイルシートで使用することはありません。CSSのCはカスケード用であることを忘れないでください。を使用!important
すると、これが壊れます。
!important
スタイルシート内のルールは通常ルールを上書きしますstyle
、例えば、タグ。ただし、状況によっては、より具体的なルールがオーバーライドするように見えることがあります。あなたが設定されている場合たとえば、font-size: 24pt !important
上body
、あなたはまだでそれをオーバーライドすることができますfont-size: 12pt
にp
。これは、!important
ルールを上書きするのではなく、暗黙のfont-size: inherit
onを上書きするためですp
。
免責事項:重要なことは絶対に避けてください。
これはダーティでダーティなハックですが、重要性をオーバーライドしようとしているプロパティで(無限ループまたは非常に長時間続く)アニメーションを使用することで、!importantなしで!importantをオーバーライドできます。
@keyframes forceYellow {
from {
background-color: yellow;
}
to {
background-color: yellow;
}
}
div {
width: 100px;
height: 100px;
margin: 0 auto;
background: red !important;
animation: 1s linear infinite forceYellow;
}
<div></div>
では、CSSの重要性について簡単に説明します。以下がお役に立てば幸いです!
まず、スタイルのすべての部分は重み付けとして名前が付けられているため、そのスタイルに関連する要素が多いほど、重要度が高くなります。例えば
#P1 .Page {height:100px;}
よりも重要です:
.Page {height:100px;}
したがって、重要な場合、理想的には、これは本当に本当に必要なときにのみ使用する必要があります。したがって、declerationをオーバーライドするには、スタイルをより具体的にしますが、オーバーライドも行います。下記参照:
td {width:100px !important;}
table tr td .override {width:150px !important;}
これが役に立てば幸いです!!!
!important
再定義することによってオーバーライドすることができるを.oldクラス名{かくかくしかじか}として.OLDクラス-name.overrided {かくかくしかじか}における<style></style>
成分上記タグ、私のためにそれの作品
JavaScriptを使用して上書き
$('.mytable td').attr('style', 'display: none !important');
私のために働いた。
上記のすべてを試してみたが役に立たなかったので、ここでは言及されていない答えを追加したいと思います。私の特定の状況は、!important
要素に属性が組み込まれている(非常に迷惑な)semantic-uiを使用している場合です。私はそれをオーバーライドするためにすべてを試しましたが、結局のところ(jqueryを使用して)1つのことを行いました。以下のとおりです。
$('.active').css('cssText', 'border-radius: 0px !important');
attr('style', ...
代わりに使用するManishの回答を参照してください
!important
ましたか?CSSシートが元のテンプレートの後に定義されている場合、それはうまく機能するはずです。