【问题标题】:Overrideing hardcoded element style inside an iframe覆盖 iframe 中的硬编码元素样式
【发布时间】:2022-02-13 01:24:21
【问题描述】:

我无法访问此表单的 html,所有主题化都必须通过加载到显示表单的 iframe 中的 css 来完成。是的,这段代码很烦人,也是不好的做法,但它就是这样。

<input 
    class="give-input required" 
    type="text" 
    name="give_first" 
    autocomplete="given-name" 
    placeholder="First Name" 
    id="give-first" 
    value="" 
    required="" 
    aria-required="true" 
    style="padding-left: 33px!important;" tabindex="1">

以下版本(以#give-first 开头并添加了更高的特异性)不起作用

#give-first-name-wrap input#give-first.give-input.required[style] 
{ 
    padding-left:0; 
}

我没有将 jQuery 加载到 iframe 中的钩子,非常烦人!

感谢所有建议。

【问题讨论】:

    标签: javascript jquery css wordpress


    【解决方案1】:

    style 属性比任何选择器都具有更高的特异性。

    只有当它们不是 !important 并且您使用 !important 规则时,它们才能被覆盖。

    在这种情况下,规则是 !important,因此您不能覆盖它。


    你可以用 JS 替换它。你don't need jQuery

    【讨论】:

    • 很清楚 !important 是问题所在。如果你对我可以用来在 iframe 中加载 JS 的钩子有什么建议,我很想听听。
    • 除了可以加载 CSS 但不能加载 jQuery 之外,我对如何与 iframe 交互一无所知。这是您提供的唯一信息。
    • 不能将 CSS 写入 iframe 内的目标 HTML 元素,只能写入 iframe 本身。这是由于跨域资源限制。
    猜你喜欢
    • 2011-09-25
    • 2015-06-14
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2013-06-30
    相关资源
    最近更新 更多