gpt4 book ai didi

javascript - 从固定顶部导航栏偏移目标面板

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:36 25 4
gpt4 key购买 nike

我有一个 anchor 标签 <a href="#target">jump</a>重定向到 target控制板。这个面板在被重定向后,隐藏在我的固定顶部导航栏后面。我在 CSS 中尝试了 2 种不同的方法来偏移面板,但它们无法正常工作。

有没有一种方法可以将面板从导航栏中偏移,但仍将其边框保持在正确的位置?最好只使用 CSS 和 HTML。

body {
padding-top: 50px;
}

#mytarget {
border-color: red
}

/* This doesn't work */
/*#mytarget:before {
display: block;
content: " ";
margin-top: -50px;
height: 50px;
visibility: hidden;
}*/


/* This works but border overlaps */
#mytarget:target {
padding-top: 50px;
margin-top: -50px;
}
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My page</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>

<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">Fixed Top Navbar</div>
</nav>

<div>Click on panel headers to open all panels, then <a href="#mytarget">jump to target</a></div>
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading" data-toggle="collapse" href="#panel1">
<h3 class="panel-title">Panel Header 1</h3>
</div>
<div id="panel1" class="panel-collapse collapse">
<div class="panel-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
</div>

<div class="panel panel-default" id="mytarget">
<div class="panel-heading" data-toggle="collapse" href="#targetpanel">
<h3 class="panel-title">Target Panel Header</h3>
</div>
<div id="targetpanel" class="panel-collapse collapse">
<div class="panel-body">Target Panel Body Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

</div>
</div>
</div>

<div class="panel panel-default">
<div class="panel-heading" data-toggle="collapse" href="#panel3">
<h3 class="panel-title">Panel Header 3</h3>
</div>
<div id="panel3" class="panel-collapse collapse">
<div class="panel-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

</div>
</div>
</div>
</div>

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
</body>

</html>

最佳答案

防止 anchor 填充/边距影响面板样式的唯一方法是将它们分开。您可以:

  1. 将 id 移动到 <h3>元素而不是面板元素,因为它被设置为没有填充、边距或边框,因此不会影响其显示,或者
  2. 创建单独的 anchor 元素,您可以单独设置样式。

如果您要创建单独的 anchor 元素,请将 anchor 添加为面板中的第一个元素:

<div class="panel panel-default">
<a id="mytarget"></a>
<div class="panel-heading" data-toggle="collapse" href="#targetpanel">
[...]

并使您的 anchor 的 CSS 为:

#mytarget:target {
padding-top: 50px;
margin-top: -50px;
display:block;
}


工作示例:

body {
padding-top: 50px;
}

#mytarget {
border-color: red
}

#mytarget:target {
padding-top: 50px;
margin-top: -50px;
display:block;
}
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My page</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>

<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">Fixed Top Navbar</div>
</nav>

<div>Click on panel headers to open all panels, then <a href="#mytarget">jump to target</a></div>
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading" data-toggle="collapse" href="#panel1">
<h3 class="panel-title">Panel Header 1</h3>
</div>
<div id="panel1" class="panel-collapse collapse">
<div class="panel-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
</div>

<div class="panel panel-default">
<a id="mytarget"></a>
<div class="panel-heading" data-toggle="collapse" href="#targetpanel">
<h3 class="panel-title">Target Panel Header</h3>
</div>
<div id="targetpanel" class="panel-collapse collapse">
<div class="panel-body">Target Panel Body Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

</div>
</div>
</div>

<div class="panel panel-default">
<div class="panel-heading" data-toggle="collapse" href="#panel3">
<h3 class="panel-title">Panel Header 3</h3>
</div>
<div id="panel3" class="panel-collapse collapse">
<div class="panel-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

</div>
</div>
</div>
</div>

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
</body>

</html>

关于javascript - 从固定顶部导航栏偏移目标面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46751989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com