:target模态框默认跳顶是规范行为,需用fixed/absolute脱离文档流并显式声明非target状态;关闭用href="#_"更可靠;多模态须id级隔离样式。

为什么 :target 模态框默认会“跳到顶部”
点击 @#@#@#@#@#@#@#@#@#@0
href="javascript:;"——它不触发 hash 变更,:target 完全失效多个模态框共存时如何避免样式冲突
如果同时有 #login、#signup、#help,不能共用 .modal:target 这类泛化选择器——它们会互相覆盖,且无法精准控制单个显示。
必须为每个模态框单独写规则:
-
#login { display: none; }+#login:target { display: flex; } -
#signup { display: none; }+#signup:target { display: flex; } - 所有模态框共享基础样式(如遮罩层、圆角、z-index),但显隐逻辑必须 ID 级隔离
- 不建议用属性选择器如
[id^="modal-"]:target——IE 和旧 Safari 不支持,且可维护性差
真正难的不是写出能动的代码,而是接受它的边界:URL 哈希必然变化、无法拦截返回键、没有焦点管理、移动端重绘可能延迟。这些不是“优化点”,是设计前提。用之前先问一句:这个弹窗,用户刷新页面后还该开着吗?
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











