5

Web ページの 1 つでprimefaces コンポーネントを使用しp:selectonemenuています。独自の css を使用して (を使用せずに) スタイルを適用しようとして!importantいますが、独自の外部 css ファイルからスタイルを取得していません。どこかからインライン スタイルを取得していますが、そのコンポーネントにそのインライン スタイルを適用したくありません。自分の外部 css ファイルのスタイルを使用したい。

このインライン スタイルがどこから来ているのかわかりません。これはJavaScriptから来ていますか?ここで助けが必要です。以下は私のコードです。

Primefaces コード

<p:selectOneMenu value="#{Controller.property}" id="dropDown">
  <f:selectItem itemLabel="Select One" itemValue="0" />
  <f:selectItems value="#{controller.property}"/>
</p:selectOneMenu>

HTML 解釈コード

<div id="j_idt40" class="ui-selectonemenu ui-widget ui-state-default 
ui-corner-all ui-helper-clearfix" style="width: 190px;">
4

2 に答える 2

2

これはJavaScriptから来ていますか?

そのとおりです。このインライン スタイルは in によって設定されPrimeFaces.widget.SelectOneMenu.initWidthsていprimefaces.jsます。

これを無効にする唯一の方法!importantは、インライン スタイルを自分で指定することです。

<p:selectOneMenu ... style="width: 500px">

カスタム JS ファイルで をオーバーライドすることもできますが、これはすべてのコンポーネントPrimeFaces.widget.SelectOneMenu.initWidthsに影響します。<p:selectOneMenu>

于 2013-02-28T12:10:50.900 に答える
0

インライン スタイルは最大の「特異性」を持ち、適用可能なすべてのルールをオーバーライドするため、唯一の解決策は(プロパティ値を何らかの!important方法でオーバーライドできない限り) です。style

編集:コアの質問を見落として申し訳ありません。したがって、あなたのレシピは次のとおりです。

入れる

 <script>
   debugger;
 </script>

の最後で、<body>DevTools を開き、ページを読み込みます。

DevTools デバッガーに入ったら、Elements パネルに切り替えて、インライン スタイルを受け取る要素を見つけます。まだ持っていないはずです。

この要素を右クリックし、コンテキスト メニューでBreak on...|を選択します。Attribute modifications. ここで、style属性値が変更されたら、それぞれの JavaScript 行で改行する必要があります。幸運を!

于 2013-02-21T08:13:06.063 に答える