为何scss中嵌套使用/*rtl:ignore*/无法被postcss-rtl插件识别?
postcss-rtl插件为何不支持在scss中嵌套使用/*rtl:ignore*/
在使用postcss-rtl插件时,如果希望对某个样式不进行转换,可以使用/*rtl:ignore*/在选择器前面进行声明。然而,当样式文件为scss格式时,该声明可能会失效,而写在css文件中则有效。
原因
postcss-rtl插件无法识别在scss文件中嵌套的/*rtl:ignore*/声明。这是因为scss是一种嵌套的css预处理器语言,而postcss-rtl插件只处理非嵌套的css代码。
解决方法
为了解决这个问题,需要将scss文件中嵌套的css代码转换成非嵌套格式。例如,上面的scss代码可以转换成以下css代码:
.header_btn { /* rtl:ignore */ .action-account { background: url(..https://segmentfault.com/img/iconsX.png) no-repeat -691px -291px; } }
这样,postcss-rtl插件就可以识别/*rtl:ignore*/声明,并不会将.action-account的样式在rtl环境下进行转换。
以上就是为何scss中嵌套使用/*rtl:ignore*/无法被postcss-rtl插件识别?的详细内容,更多请关注其它相关文章!