<body>
<!-- 主体内容(会被变暗) -->
<div id="main-content">
<nav>...</nav>
<p id="sign_up_here" onclick="myfunc1()">SIGN UP HERE</p>
<!-- 其他页面内容 -->
</div>
<!-- 模态框(独立于 main-content,不会被滤镜影响) -->
<div id="mad" style="display: none; position: fixed; z-index: 1000; ...">
<form>...</form>
</div>
</body>- JS 逻辑更新(只作用于目标容器):
function myfunc1() { const mad = document.getElementById("mad"); const mainContent = document.getElementById("main-content"); // ✅ 精准控制目标
mad.style.display = "block"; mainContent.style.filter = "brightness(20%)"; // 仅影响 #main-content 内部 }
⚠️ 注意事项: - 不要对 `document.body` 直接设 `filter`,因为 `body` 是 `#mad` 的祖先节点,滤镜会**继承并作用于所有后代**(包括 `#mad`),这是问题根源; - `z-index` 需确保 `#mad` 足够高(如 `1000`),避免被其他元素遮挡; - 关闭弹窗时,记得恢复 `mainContent.style.filter = ""`,避免残留样式; - 进阶可配合 `transition` 实现平滑明暗变化,提升用户体验。 总结:JavaScript 中不存在“调用 `:not()`”的方法,但通过**语义化 DOM 结构 + 精确元素定位**,比任何 CSS hack 更可靠、更易维护。结构即逻辑——让需要隔离的 UI 元素脱离受影响的渲染流,才是解决此类问题的根本之道。
今天关于《JavaScript实现CSS:not()选择器方法》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!


Python深度学习优化实战:加速与压缩技巧
