【问题标题】:Shadow DOM and custom stylingShadow DOM 和自定义样式
【发布时间】:2025-11-22 23:55:02
【问题描述】:

所以我已经阅读了这个article,据我了解,每个本机浏览器小部件实际上都是基本元素、样式和脚本的组合。这就引出了一个问题——如果它们由基本的构建块组成,这是否意味着可以通过 JavaScript 自定义它们?而且我的意思并不是像某些 JavaScript 库/插件那样以替换的方式 - 例如,只需访问它们的“Shadow DOM”属性并向它们添加一些 CSS 样式。此外,this page 有一些用例,但没有什么实用性。

有人试过这样的吗?有可能吗?缺点?

谢谢。

【问题讨论】:

    标签: html css dom shadow-dom


    【解决方案1】:

    我主要担心的是影子 DOM 的实现在浏览器之间会有所不同,然后您基本上又需要某种库来处理它。我不确定是否是这样,但值得考虑。此外,鉴于有这么多可用的小部件库,而且这是处理大多数这些问题的标准方法,是否值得处理一组全新的未知问题,而不是仅仅使用已知元素?

    【讨论】:

    • 没错,已经有很多选择了。然而,所有这些(我认为)都使用替换并且基于 hacky 方法。我之所以考虑这个只是因为性能改进(尽管微不足道),而且更多的是作为一个实验而不是任何实际使用的东西。当然,如果有办法实现它,那么为每个浏览器组件设置原生样式也无妨。
    • 我对它没有太多的学术见解,我的建议更多的是从实践的角度来看。另外,我不会将其他的称为“hacky”,因为我认为您的意思是消极的,因为它们不是本机控件。无论如何,祝你好运。
    • 这不是负面的意思,如果听起来是这样,我深表歉意。不,我只是说这是最好的可用和经过测试的解决方案(但是它很hacky,因为它使用替换、覆盖等),这当然并不意味着它是唯一可能的。将进一步研究这一点,如果我发现任何重要的东西,就会更新。再次感谢。
    最近更新 更多