如何在不使用的情况下重写primefaces组件内联样式!在css中很重要
how to override primefaces component inline style without using !important in css?
我在一个网页上使用素数面组件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;">
这是来自任何javascript吗
这是正确的。此内联样式由PrimeFaces.widget.SelectOneMenu.initWidths
在primefaces.js
中设置。
在没有!important
的情况下覆盖此项的唯一方法是自己指定内联样式。
<p:selectOneMenu ... style="width: 500px">
您也可以使用自定义JS文件覆盖PrimeFaces.widget.SelectOneMenu.initWidths
,但这会影响所有<p:selectOneMenu>
组件。
内联样式具有最大的"特异性",它们覆盖了所有适用的规则,因此您唯一的补救措施是!important
(除非您可以以某种方式覆盖style
属性值)。
编辑:很抱歉忽略了核心问题。所以,你的食谱如下:
插入
<script> debugger; </script>
在<body>
的末尾,打开DevTools并加载页面。
现在,在DevTools调试器中,切换到Elements面板,找到接收内联样式的元素。它还不应该拥有它。
在该元素上单击鼠标右键,然后在上下文菜单中选择"Break on...
|Attribute modifications
"。现在,当style
属性值发生更改时,您应该在相应的JavaScript行中断。祝你好运
- 如果文本字段为空,则使用JavaScript应用CSS样式
- FF和Chromium中CSS样式按钮的外观差异
- CSS样式属性留空
- 使用javascript单击同一按钮,在两种样式之间更改css值
- 用CSS在CKEditor中设置预览样式
- Javascript+动态菜单+当前链接样式(CSS)+基于PHP的网站
- 如何使用jQuery转换所有带有动态类的内联样式css
- iFrame 中的实时预览和保存样式.css每 30 秒一次
- 如何更改 jquery UI 数据选择器的样式 (CSS)
- 在Javascript中设置左样式CSS属性以移动滑块
- css+jQuery样式.css切换器,用于新的jQuery版本
- Chrome 29样式/Css问题
- 如何更改工具提示的样式/css
- 字体Awesome与半样式CSS
- Angular2组件样式/css没有被浏览器应用在ngafterviewit中
- 如何改变网页内容,而不删除任何样式/css/图形
- 使用Javascript在不影响打印样式的情况下更改显示样式(CSS)
- 使用 Get Time Javascript 更改样式 CSS
- 自定义下拉列表样式(CSS/JS与ASP.. NET c#连接)
- 为输入类型文件按钮添加禁用样式(css)