Spring、JSP、PrimeFaces 6.2、およびブートストラップ 3.37 を使用して、Eclipse プロジェクトに取り組んでいます。
2 つのボックスがあり、そのうちの 1 つは CSS が正しく適用されており、もう 1 つは適用されていません。
override.css にいくつかの特定の CSS スタイルがあります。私が使用しているカスタム クラス タグをターゲットにして、背景色を変更します。
.mytag
{
background-color: rgb(255,204,204);
}
マイページの構成はこんな感じ
- head - サブフォルダーのヘッダー ページを読み込みます
- body - フォームページをロード
- フッター
<h:head>
<title>#{text['form.title']}</title>
<h:outputStylesheet library="css" name="form.css"/>
<h:outputScript library="js" name="form.js"/>
<h:outputStylesheet library="css" name="override.css" />
</h:head>
ファイルに適用される唯一の CSS は「mytag」ですが、下に表示されているように、さらに多くの CSS が自動挿入されています。
ヘッダー css タグ
ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all mytag
ヘッダーCSSタグではありません
ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all mytag
IE 用の F12 開発者ツール (IE 固有のサイト/アプリケーション) を使用して、スタイルを最高から最低まで見てみると、機能しないものが表示されます。
- フォーム.css
span.if .ui-inputfield, div.if .ui-inputfield - コンポーネント.css
.ui-widget-header .ui-inputfield, .ui-widget-content .ui-inputfield - テーマ.css
.ui-inputfield, .ui-widget-content .ui-inputfield, .ui-widget-header .ui-inputfield - (背景) theme.css
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default - テーマ.css
.ui-widget .ui-widget - フォーム.css
.ui-widget, .ui-widget .ui-widget - (背景) theme.css
.ui-inputfield, .ui-widget-content .ui-inputfield, .ui-widget-header .ui-inputfield - テーマ.css
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default - テーマ.css
.ui-widget .ui-widget - テーマ.css
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button - テーマ.css
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button - コンポーネント.css
.ui-inputfield - オーバーライド.css
.mytag
動作するスタイルのリストは次のとおりです
- フォーム.css
span.if .ui-inputfield, div.if .ui-inputfield - コンポーネント.css
.ui-inputfield - オーバーライド.css
.mytag
したがって、両方のボックスに CSS を適用する同じコード セクションがあるため、順序は同じにする必要があります。それでも、ヘッダーでの順序に関係なく、「form.css」と「components.css」は一貫してオーバーライドよりも優先度が高いことがわかりました。「theme.css」が自動的に適用されているため、ボックスが機能していないのはさらに悪いことです。
注: 当初は、bootstrap.theme.css だと思っていましたが、別の質問/回答から、実際には primefaces テーマであると確信しました。<h:outputStylesheet library="primefaces-aristo" name="theme.css" />
私が試した解決策