javascript - 如果没有点击任何链接,则显示所有 div

标签 javascript html css

我有一个页面名称 url.com/yourfirstpage/当我转到该页面时,默认情况下所有 div 都是隐藏的(显示:无) 如果我们将 #sec1 定位为 url.com/yourfirstpage/#sec1 它只显示 sec1 并隐藏其他。 我想知道我们是否在没有像 url.com/yourfirstpage/这样的 anchor ID 的情况下访问 url,它需要显示所有 div。

#sec1, #sec2, #sec3{
	display:none;
}
#sec1:target{
	display:block;
}
#sec2:target{
	display:block;
}
#sec3:target{
	display:block;
}
<a href="#sec1">sec1</a>
<a href="#sec2">sec2</a>
<a href="#sec3">sec3</a>

<div id="sec1" class="page"> this is sec1</div>
<div id="sec2" class="page"> this is sec2</div>
<div id="sec3" class="page"> this is sec3</div>

最佳答案

如果您能够修改 HTML 结构,这里有一个技巧。我们的想法是让元素可见,然后我们使用 :target 隐藏它们。由于我们没有之前的兄弟选择器或父选择器,我在父元素中使用 id 来选择任何元素:

#sec1:target .page:nth-child(n+2){
  display: none;
}

#sec2:target .page:nth-child(2n+1){
  display: none;
}

#sec3:target .page:nth-last-child(n+2){
  display: none;
}
<a href="#sec1">sec1</a>
<a href="#sec2">sec2</a>
<a href="#sec3">sec3</a>

<div id="sec1">
  <div id="sec2">
    <div id="sec3">
      <div class="page"> this is sec1</div>
      <div class="page"> this is sec2</div>
      <div class="page"> this is sec3</div>
    </div>
  </div>
</div>

它可以与任意数量的部分一起使用,我们可以改进 CSS 代码如下:

#sec1:target .page:not(:nth-child(1)),
#sec2:target .page:not(:nth-child(2)),
#sec3:target .page:not(:nth-child(3)),
#sec4:target .page:not(:nth-child(4)),
#sec5:target .page:not(:nth-child(5)) {
  display: none;
}
<a href="#sec1">sec1</a>
<a href="#sec2">sec2</a>
<a href="#sec3">sec3</a>
<a href="#sec4">sec4</a>
<a href="#sec5">sec5</a>

<div id="sec1">
  <div id="sec2">
    <div id="sec3">
      <div id="sec4">
        <div id="sec5">
          <div class="page"> this is sec1</div>
          <div class="page"> this is sec2</div>
          <div class="page"> this is sec3</div>
          <div class="page"> this is sec4</div>
          <div class="page"> this is sec5</div>
        </div>
      </div>
    </div>
  </div>
</div>

关于javascript - 如果没有点击任何链接,则显示所有 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54101481/

相关文章:

javascript - 在 JSON 对象父键名称中删除并包含其内部内容

javascript - 当 Promise 倒数第二次未返回时,调用递归 Promise 时出现问题

css - 结合背景尺寸百分比,背景尺寸覆盖

关键帧动画后CSS3消失

html - 为什么内容 float 在 DIV 旁边?

javascript - 使 d3 序列 sunburst 示例适应新数据并出现 js 错误

javascript - Wordpress WooCommerce 添加到购物车无法在移动网站上运行

javascript - 输入类型=文件多个,删除项目

jquery - 如何在不考虑浏览器高度的情况下删除滚动条

java - Jsoup登录的html表单中没有action属性