[英]How to avoid jumping when click on anchor link
我想使用没有 JavaScript 的纯粹 CSS 显示/隐藏内容。 我达到了这个解决方案。
当我单击链接时,它会在页面中跳转。 我需要纯 CSS 解决方案,如何阻止它跳跃?
p[id^="detailView-"] { display: none; } p[id^="detailView-"]:target { display: block; }
<a href="#detailView-1">Show View1</a> <p id="detailView-1">View1</p> <a href="#detailView-2">Show View2</a> <p id="detailView-2">View2</p>
只需安排您的 html 使锚标签位于顶部,如下所示
p[id^="detailView-"] { display: none; } p[id^="detailView-"]:target { display: block; }
<a href="#detailView-1">Show View1</a> <a href="#detailView-2">Show View2</a> <p id="detailView-1">View1</p> <p id="detailView-2">View2</p>
在这种情况下,而不是在之间切换:
display: none
display: block
您可以在以下之间切换:
visibility: hidden
visibility: visible
这两个属性的区别在于:
visibility
维护元素的页面空间,即使该元素不可见display: none
实际上会从页面中删除元素并折叠它所占用的空间工作示例:
p[id^="detailView-"] { visibility: hidden; } p[id^="detailView-"]:target { visibility: visible; }
<a href="#detailView-1">Show View1</a> <p id="detailView-1">View1</p> <a href="#detailView-2">Show View2</a> <p id="detailView-2">View2</p>
延伸阅读:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.