html - 加载页面时最初显示 div

标签 html css

我需要在 html 页面中使用两个链接按钮在学生和教职工 div 之间切换(即页面中只应显示一个 div,单击按钮时将隐藏其他 div)。

问题是代码仅在单击按钮时有效,并且当页面最初加载时没有显示 div 并且页面为空白。我想在页面加载时默认显示学生 div,然后根据单击的按钮在学生和教职员工 div 之间切换。

如何使用 HTML 和 CSS 实现这一目标?

.panel {
    overflow-y: auto;
    overflow-x: hidden;
    margin-top: -150%;
    position: absolute;
    background: #000;
    color: #fff;
    box-shadow: 0px 4px 7px rgba(0,0,0,0.6);
    z-index: 2;
}
.panel:target {
    position: relative;         
    margin-top: 0%;
    background-color: black;
}
<a href="#student">Students</a>
<a href="#staff">Staffs</a>
<div id="student" class="panel">
student content
</div>
<div id="staff" class="panel">
staff content
</div>

最佳答案

您的默认面板应该出现在 HTML 的最后。创建一个规则以默认显示最后一个面板。创建规则以隐藏最后一个面板,当它是目标面板的兄弟时。

.panel, .panel:target ~ #student {
    overflow-y: auto;
    overflow-x: hidden;
    margin-top: -150%;
    position: absolute;
    background: #000;
    color: #fff;
    box-shadow: 0px 4px 7px rgba(0,0,0,0.6);
    z-index: 2;
}
.panel:target, #student {
    position: relative;         
    margin-top: 0%;
    background-color: black;
}
<a href="#student">Students</a>
<a href="#staff">Staffs</a>
<div id="staff" class="panel">
staff content
</div>
<div id="student" class="panel">
student content
</div>

归功于 this answer为了这个想法。


顺便问一下,为什么要使用 position: absolutemargin: 150% 来隐藏面板而不是非常简单的 display: none?

关于html - 加载页面时最初显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383802/

相关文章:

python - 修复手机上的 Bootstrap 字段列

html - CSS:当 child a:事件时选择父元素?

html - 带标题的 Css Flexbox 数据列表

jquery - 在 Jquery( Accordion 菜单)中单击子菜单时突出显示父菜单

css - ReactJS 为样式选择所有相似的标签

html - 想要将大型 HTML 文件层次结构中的所有 <tt> 标记转换为 <code>

html - 我的页脚对齐

html - 由于某种原因, margin : 0 auto isn't working (height isn't infinite)

javascript - NVelocity 高级循环语法

html - 将页脚图像与内容区域对齐