首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:target伪选择器未选择target

:target伪选择器未选择target
EN

Stack Overflow用户
提问于 2019-02-26 10:19:59
回答 1查看 149关注 0票数 1

请原谅,如果有人发布了关于相同问题的帖子,我无法找到类似问题的答案。

当我用#dotNetComponents url点击我的按钮时,它会把我带到带有dotNetComponents ID的div,但是有点太远了,去掉了标题和一些文本。我相信原因是因为我的粘性标题,但我不是100%确定这一点。无论如何,我需要在目标的顶部添加一个缓冲区,这样div就不会被截断。在四处搜索后,我发现下面的css,它似乎应该是正确的。当我将css从:target改为:hover时,当我将鼠标悬停在带有ID的div上时,我可以看到页面正在进行更改。因此,问题出在:target选择器本身。请帮帮忙。

这是我的html的简化版本:

代码语言:javascript
复制
<a href="#dotNetComponents" class="btn transformBtn">.NET COMPONENTS</a>

<div id="dotNetComponents" class="interiorContent container offsetAnchor">
</div>

下面是css:

代码语言:javascript
复制
 #dotNetComponents:target::before { 
   display: block; 
   content: " "; 
   margin-top: -110px;
   height: 110px; 
   visibility: hidden; 
   pointer-events: none;
 }
EN

回答 1

Stack Overflow用户

发布于 2019-02-26 10:59:05

CSS滚动

如果您使用链接只是为了在页面内导航,则不需要:target,也不需要::before

以下演示中的

  • 块元素围绕目标元素(例如前面提到的<article>)
  • The元素具有以下必需属性:

从链接滚动时的一个常见问题是,目标元素可能离链接太近--请注意,目标元素的margin-top/bottom为100vh。页边距的大小由您决定,但我建议使用将目标推出屏幕的页边距。此外,如果目标元素在页面的底部,它将只向上滚动到它的margin-bottom或父元素padding-bottom

overflow-y:滚动;/*添加一个持久的垂直滚动条*/滚动行为:平滑;/*设置滚动动画*/高度: 150px;/*只要高度固定,就会发生变化。*/

演示

代码语言:javascript
复制
nav a {
  font-size: 15vh;
  width: 30%;
  display: inline-block;
  text-align: center
}

article {
  overflow-y: scroll;
  scroll-behavior: smooth;
  height: 150px;
}

section {
  margin: 100vh auto;
  height: 110px;
  line-height: 110px;
  border: 3px solid #000;
  font-size: 15vh;
  text-align: center;
}
代码语言:javascript
复制
<nav>
  <a href="#A">A</a>

  <a href="#B">B</a>

  <a href="#C">C</a>
</nav>
<article>
  <section id="A">A</section>
  <section id="B">B</section>
  <section id="C">C</section>
</article>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54877515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档