Html 在这个特定场景中,如何保留SVG及其子级的用户代理样式?

Html 在这个特定场景中,如何保留SVG及其子级的用户代理样式?,html,css,svg,Html,Css,Svg,我参与了一个聊天小部件的工作,它将出现在我们许多客户的网站上。这是目前的情况- 在设置小部件的样式时,我们需要确保样式: 不要泄漏小部件(这很容易通过使用聊天小部件包装类的名称间隔所有选择器来实现) 不要泄漏到小部件中 在2号的情况下,我们可以使用本问题中讨论的技术 与initial相反,子项的unset将允许继承属性 .mywidget{ 全部:首字母; } .我的小部件*{ 全部:未设置; } 现在的问题是,我在小部件中有一个SVG加载器,它看起来不像预期的那样-由于使用了上述技术,SVG

我参与了一个聊天小部件的工作,它将出现在我们许多客户的网站上。这是目前的情况-

在设置小部件的样式时,我们需要确保样式:

  • 不要泄漏小部件(这很容易通过使用聊天小部件包装类的名称间隔所有选择器来实现)
  • 不要泄漏到小部件中
  • 在2号的情况下,我们可以使用本问题中讨论的技术 与
    initial
    相反,子项的
    unset
    将允许继承属性

    .mywidget{
    全部:首字母;
    }
    .我的小部件*{
    全部:未设置;
    }
    
    现在的问题是,我在小部件中有一个SVG加载器,它看起来不像预期的那样-由于使用了上述技术,SVG及其相关元素的用户代理样式都被删除(取消设置)。因此,基本上,我需要做的只是保护svg——因此我修改了第二个块来尝试:

    .my widget*:非(svg){
    全部:未设置;
    }
    
    但这只会保护svg,而不会保护其子对象

    .my widget*:非(svg):非(svg*){
    全部:未设置;
    }
    
    ^这是不可能的,因为
    :not
    只接受一个简单的选择器
    ()
    ()


    如何保留svg及其元素的用户代理样式?

    将小部件放在iframe中?(或者使用对象标记来承载它)。@RobertLongson谢谢你的建议!也许可以将小部件放在iframe中?(或者使用对象标记来承载它)。@RobertLongson谢谢你的建议!