点击按钮后引导说明层无法隐藏怎么办?

萌新.瑞娜 阅读 45

我在做表单引导功能时,给新手用户添加了引导说明层,但点击关闭按钮后样式没变化。按照文档写了个toggle类名的方法,检查了代码也没发现语法错误,但就是不生效:


document.querySelector('.guide-close').addEventListener('click', () => {
  document.querySelector('.form-guide').classList.toggle('is-hidden')
})

对应的CSS是这样写的:


.form-guide {
  position: fixed;
  background: rgba(0,0,0,0.8);
  <code>.is-hidden</code> {
    display: none!important;
  }
}

页面加载时引导层正常显示,但点击按钮后控制台没有任何报错,元素检查发现is-hidden类确实被添加了,可样式就是没变化。是不是哪里样式优先级的问题?

我来解答 赞 6 收藏
二维码
手机扫码查看
2 条解答
Air-统思
你这问题出在 CSS 写法上,不是优先级的问题,是语法错误。

你写的是:

.form-guide {
position: fixed;
background: rgba(0,0,0,0.8);
&.is-hidden {
display: none!important;
}
}


这个 & 是 SCSS/Sass 的语法,不是原生 CSS 能识别的。浏览器根本没把 .is-hidden 当成 .form-guide.is-hidden 来解析,而是当成一个独立的 .is-hidden 元素——但你页面里根本没这个类名,它只是动态加在 .form-guide 上的。

所以你加了 is-hidden 类,但匹配不到任何规则,自然不生效。

改成原生 CSS 就行:

.form-guide {
position: fixed;
background: rgba(0,0,0,0.8);
}
.form-guide.is-hidden {
display: none !important;
}


或者如果一定要用 SCSS,记得先编译成 CSS,别直接把 SCSS 贴到