动态样式类名不起作用:嵌套与并列问题
在使用动态样式类名时,有时会遇到尽管触发事件但样式却没有改变的情况。这可能是由于使用了后代选择器而造成的。
以提供的代码为例:
<div class="content" :class="{ active:isCollapse }">
<style>块中,嵌套的<active>类是content类的后代。这意味着<active>类仅在<content>元素包含<active>子元素时才能生效。
为了解决这个问题,需要将<content>与<active>类编写为并列,而不是嵌套方式:
.content.active { padding-left: 65px; }
同级选择器与后代选择器
在动态样式类名中,使用同级选择器更合适,因为它指定当content元素具有active类时应用样式,而不是当content元素包含active子元素时应用样式。
Sass/SCSS 同级写法
在 Sass/SCSS 中,可以使用&符表示同级关系:
&.active { padding-left: 65px; }
这将编译为.content.active { padding-left: 65px; }。