Wordpressテンプレートの元のCSSをオーバーライドするカスタムスタイルシートを作成しました。ただし、私のカレンダーページでは、元のCSSには、次の!important
宣言で設定された各テーブルセルの高さがあります。
td {height: 100px !important}
これをオーバーライドする方法はありますか?
Wordpressテンプレートの元のCSSをオーバーライドするカスタムスタイルシートを作成しました。ただし、私のカレンダーページでは、元のCSSには、次の!important
宣言で設定された各テーブルセルの高さがあります。
td {height: 100px !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を介してテンプレートをオーバーライドするためのオプションを制限します。
ただし、必要に応じて、オーバーライドする方法を知っておくと便利です。
style
属性によって設定されたスタイルをオーバーライドすることは別として、は、スタイルシートに競合する特異性!important
を持つセレクターがある場合にのみ使用する必要があります。
ただし、特異性が競合している場合でも、例外に対してより具体的なセレクターを作成することをお勧めします。あなたの場合、ルールclass
を必要としないより具体的なセレクターを作成するために使用できるHTMLにを含めることをお勧めします。!important
td.a-semantic-class-name { height: 100px; }
私は個人的!important
にスタイルシートで使用することはありません。CSSのCはカスケード用であることを忘れないでください。使用!important
するとこれが壊れます。
免責事項:絶対に重要なことは避けてください。
これは汚い、汚いハックですが、重要なものをオーバーライドしようとしているプロパティで(無限にループする、または非常に長く続く)アニメーションを使用することで、!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;}
したがって、重要なものを使用する場合、理想的には、これは本当に必要な場合にのみ使用する必要があります。したがって、デクレレーションをオーバーライドするには、スタイルをより具体的にしますが、オーバーライドも使用します。下記参照:
td {width:100px !important;}
table tr td .override {width:150px !important;}
これがお役に立てば幸いです!!!
JavaScriptを使用してオーバーライド
$('.mytable td').attr('style', 'display: none !important');
私のために働いた。
これも役立ちます
td[style] {height: 50px !important;}
これにより、インラインスタイルが上書きされます
いずれの場合も、でオーバーライドできheight
ますmax-height
。
セレクターを上げることで、より高い特異性を使用できます。
td {height: 100px !important}
/* higher precedence */
table td {height: 200px !important}
cssをオーバーライドする方法の詳細な記事はここで確認できます。
私は上記のすべてを無駄に試したので、言及されていないこれに答えを追加したいと思います。私の特定の状況は、!important
要素に属性が組み込まれているセマンティックUIを使用していることです(非常に煩わしい)。私はそれをオーバーライドするためにすべてを試しましたが、最終的には1つのことが機能しました(jqueryを使用)。それは次のとおりです。
$('.active').css('cssText', 'border-radius: 0px !important');