引入CSS的方式有哪些

2 02 3 年,朋友问CSS参考方法,我告诉他三种方法:
1 .上周我写了一篇关于 CSS 的博客文章,其中提到了第一种方法,即内部链接,它涉及直接在 HTML 文档的 标记内,例如:...还有一个非常重要的细节。
无论是内部CSS还是外部CSS,都必须放在标签中。
起初我以为内部CSS和外部CSS的用例没有太大区别,但后来发现事实并非如此。
前端CSS更适合大型项目,因为它易于维护和修改。
等等,还有一件事:使用外部 CSS 时,请确保生成的 HTML 文件中的 CSS 文件路径正确。
您可以在浏览器中右键查看源代码进行验证。
最后提醒一下:使用外部 CSS 时,请务必检查文件路径是否正确。

web前端---8种Web Components中引入外部CSS的方法

说实话,这个问题相当复杂。
使用ShadowDOM时,如果想使用外部CSS,就得想办法。
我给你8 个方法,都很有讲究。

选项 1 :@import 技巧 在 HTML 样式标签中添加 @import,例如:

这东西的兼容性还不错,甚至可以使用旧的浏览器。
但说实话,有点慢,加载时会卡住。
我在 2 01 9 年尝试过,当时 Firefox 有点慢。

选项 2 :::这个技巧开始 使用 ::part 伪元素,例如: CSS ::部分(标题){ 背景:蓝色;
这可以指定ShadowDOM的某一部分的样式。
不过这个东西是新东西,2 01 8 年才出来的,老浏览器不支持,所以用的时候还得看情况。

选项 3 :自定义属性 自定义属性,例如:

然后在 ShadowDOM 中使用它: CSS 我的元素{ 颜色:var(--我的风格);
该方法兼容性好,较旧的浏览器使用。
但风格是固定的,不能随意改变。
2 01 7 年使用的时候发现非常有用。

方案四:JS传输方式 使用JS来传递,例如: javascript const style = document.createElement('style'); style.textContent = 'div { 颜色:红色; }'; document.querySelector('shadow-root').host.appendChild(style);
这个方法很灵活,可以改成任何东西。
但代码看起来很混乱,当我们团队在 2 02 0 年使用它时,似乎很难维护。

选项5 :更改组件的内部样式 给组件添加改变样式的函数,例如: javascript 函数改变样式(){ this.style.color = '红色';
这种方法比较灵活,但是组件代码较长。
2 02 1 年重构一个项目的时候,我就是这么用的,代码堆积如山。

选项 6 :插槽传输方式 使用slot来传递,例如:

这种方法可以传递外部样式,但是实现起来有点复杂。
我在 2 01 9 年尝试过,花了一个下午的时间才弄清楚。

选项 7 :恢复风格 使用fetch来提取CSS,例如: javascript fetch('path/to/your.css').then(res => res.text()).then(css => { const style = document.createElement('style'); 样式.textContent = css; document.head.appendChild(样式); });
这个方法很快。
当 Fetch API 在 2 02 0 年首次流行时,我们用它来加载样式,速度非常快。
但代码看起来很长。

选项8 :CSS模块 使用import引入模块,如: javascript 从'./module.css'导入样式; document.querySelector('shadow-root').host.className = styles.myClass;
这个技巧是官方推荐的,2 02 1 年才会流行。
不过说实话,使用的时候要注意兼容性,老浏览器不识别。

总而言之,这 8 个技巧都有其陷阱。
使用哪一种取决于具体情况。
这里我就不多说了,大家可以自己去理解。