现在遇到一个项目,uniapp开发的微信小程序,之前的所有页面都没有使用scope将css样式私有化,导致css属性全局污染了,现在要开发后续的功能,如何在后续的开发中避免之前css的样式污染?
之前开发的内容不能使用scope将css私有化,因为一旦私有化可能会对某些页面造成影响,现在的情况就是之前的内容不能动,在此基础上开发。
目前想到的办法是在后续开发的功能中,所有的css类名名全部使用当前文件名+类名,这样尽可能的来避免样式重名,在这里想问一下各位有什么好的办法来实现?
scope可以的
如果暂时不想要处理历史页面的话,新开发的页面严格按照 BEM
的命名规则就好了。
或者你额外使用 CSS Modules
给新开发的业务模块增加样式的hash后缀。
BEM — Block Element Modifier
CSS Modules
你的想法是可以的,按照你说的,既然之前的样式不能动,那就只能写好之后的。严格控制选择器,一是通过人为控制命名,二是使用scope,建议两者结合使用。
如果没有那么麻烦,后面项目内容还有很多工作要做,也可以花点时间把之前的代码整整,这样后面写起来也舒心
人为规定各种规则来控制css变量冲突事实证明是徒劳的,只要代码还在不断的增长,就有人会写出冲突的css名称,建议尝试使用tailwindcss这样的css原子化来解决日益膨胀的css代码,但是不知道uniapp使用这样的css框架难度。
要避免CSS全局污染,尤其是在不能修改现有代码库的情况下,你可以采取一些策略来确保新开发的样式不会影响到旧的样式,同时也不会被旧的样式所影响。以下是一些建议:
MyComponent
的组件,在my-component.vue
文件中,你可以使用类名如my-component__header
、my-component__content
等。scope
,但新开发的组件可以考虑使用CSS模块。这样,每个组件的样式都会有一个唯一的命名空间,从而避免样式冲突。App.vue
)的顶部使用CSS Reset来消除浏览器默认样式的影响。这有助于确保你的样式有一个更一致的起点,并减少潜在的样式冲突。shadow DOM
或scoped slots
等特性来实现CSS隔离。这些方法可以将一个组件的样式完全封装在其内部,不会影响到其他组件。最后,请注意,虽然这些策略可以帮助你减少CSS全局污染的风险,但完全避免它可能是非常困难的。因此,建议在进行任何重大更改之前都要进行充分的测试和评估,以确保不会对现有功能造成负面影响。
问题内容: 我们都知道全局变量只是最佳实践。但是在有些情况下,没有它们很难编写代码。您使用什么技术来避免使用全局变量? 例如,在以下情况下,您将如何不使用全局变量? JavaScript代码: 相关标记: 此代码来自具有多个的网络表单。它一次上传一个文件,以防止大量请求。它通过POST到iframe来完成此操作,等待响应触发iframeonload,然后触发下一个提交。 您不必专门回答此示例,我只
react 如何使用useCallback 避免全量更新? 在子组件的事件中使用useCallback 父组件 list.map 创建了子组件, 子组件触发事件导致 父组件的 list 发生变更, 于是组件全部发生了变化 这个过程中只有其中一个子组件发生了改变,所以我使用了 memo 包裹了一下 但是 传递的事件函数会重复创建,导致子组件全量更新 我应该如何使用useCallback 来实现顶点更
问题内容: 我正在尝试通过从客户端向服务器发送密钥和随机数来认证用户。 我的代码未向我显示客户端的响应。执行下面的代码时,我得到了一个空指针异常。 问题答案: 解决大多数问题的固定步骤: 阅读堆栈跟踪以确定哪一行代码引发NPE 在该行代码处设置一个断点 使用调试器,在遇到断点时,确定该行中的对象引用是 弄清楚为什么引用该文件(到目前为止,这是唯一实际的困难部分) 解决根本原因(也可能很困难)
问题内容: 我有两个简单的Java代码。第一个将恒定功率定义为power = a.pow(b); 第二个将恒定功率定义为power = BigInteger.ONE.shiftLeft(b) 在命令行中设置内存标志- Xmx1024m,第一个代码可以正常工作,但是第二个代码却出现错误:java.lang.OutOfMemoryError:Java堆空间 我的问题:我应该在第二个代码中更改什么以避免
问题内容: 我有一个用于将文本添加到现有.doc文件中的代码,它将通过使用apache POI将其另存为另一个名称。 以下是到目前为止我尝试过的代码 以下是我得到的 我已经添加了与此对应的所有jar文件,但仍然找不到解决方案。我对apache poi是陌生的,所以请帮我提供一些解释和示例。谢谢 问题答案: 从我对问题的评论中复制: 看起来您需要Apache POI发行版中的poi-ooxml-sc
问题内容: 我将UNLINK与和一起使用。我知道这种方式非常危险,因为每个人都可以删除任何文件。但是我需要使用,因为删除文件时无法重新加载页面。 那么,我该如何做才能只允许拥有该文件的用户删除该文件? 如果您认为我在这里做错了什么,或者您有其他想法,并且认为这将是有用的,也请让我知道其他事情:) 我的PHP代码: 我的AJAX代码: 问题答案: 您需要以某种方式对用户进行身份验证。 您的用户需要使