.myHeader{
display: block;
position: fixed;
height: auto;
width: 100%;
z-index: 100;
}
h1 {
font-size: 39px;
color: rgba(255, 255, 255, 0.842);
/* border-bottom: 2px solid #f6f4f84d; */
text-align: center;
margin-top: 0;
padding: 15px 18px;
}
ul {
list-style-type: none;
position: fixed;
top: 80px;
width: 100%;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.content{
display: block;
color: white;
}
<body>
<header class="myHeader">
<h1>The Foreign Journal</h1>
<ul>
<li><a href="#intro">Intro</a></li>
<li><a href="#projects">Projects</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</header>
<div class="content">
something something
</div>
</body>
我创建了一个带有类的标头,用于在页面顶部修复h1和nav列表。现在,每次我在其他body div中加载任何内容时,它们都会与第一个div重叠。有什么建议吗?
我试图将显示从块更改为内联块,但我现在只是被卡住,似乎无法解决。
<body>
<header class="myHeader">
<h1>The Foreign Journal</h1>
<ul>
<li><a href="#intro">Intro</a></li>
<li><a href="#projects">Projects</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</header>
<div class="content">
something something
</div>
then on css
.myHeader{
display: block;
position: fixed;
height: auto;
width: 100%;
z-index: 100;
}
h1 {
font-size: 39px;
color: rgba(255, 255, 255, 0.842);
/* border-bottom: 2px solid #f6f4f84d; */
text-align: center;
margin-top: 0;
padding: 15px 18px;
}
ul {
list-style-type: none;
position: fixed;
top: 80px;
width: 100%;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.content{
display: block;
color: white;
}
答案 0 :(得分:1)
解决方案1:
为标头设置固定高度,并添加具有相同值的“正文”边距:
例如:
body {
margin-top: 200px;
}
.myHeader{
height: 200px;
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 100;
}
解决方案2:
1.从ul选择器中删除“位置”和“顶部”属性。
2.在“ .myHeader”类中添加“顶部”和“左侧”属性。
3.添加一个jQuery脚本来动态设置页面的上边距。
<style>
ul {
list-style-type: none;
width: 100%;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
.myHeader{
display: block;
position: fixed;
height: auto;
top: 0;
left: 0;
width: 100%;
z-index: 100;
}
</style>
<script>
$(document).ready(() => {
let headerHeight = $('.myHeader').height();
$('body').css({
'margin-top': headerHeight + 'px'
});
});
</script>
答案 1 :(得分:0)
如果您将标题固定在页面顶部,则该标题将与未固定的内容重叠,例如,可以通过为内容设置顶部间隙来避免这种情况。
我将尝试编写一段代码向您展示。
在以下示例中,您将看到div与固定标头重叠,第二个标头将保留在其下方,希望对您有所帮助!
在这里您可以看到您的身体从标头下方开始,如果您希望标头始终固定,这很好。
body{
margin-top: 100px;
}
header{
width: 75%;
background-color: red;
position: fixed;
top:0;
height: 100px;
}
.firstdiv{
width: 100%;
background-color: blue;
height: 100px;
}
.seconddiv{
width: 50%;
background-color: yellow;
height: 100px;
}
<body>
<header>Your header goes here</header>
<div class="firstdiv">The rest of your website goes here</div>
<div class="seconddiv">The rest of your website goes here</div>
</body>
您可以在此处看到,如果将第二个div的位置降低了100px,则第二个div将保留在标题下。
header{
width: 75%;
background-color: red;
position: fixed;
height: 100px;
}
.seconddiv{
position: relative;
top: 100px;
width: 50%;
background-color: yellow;
height: 100px;
}
<body>
<header>Your header goes here</header>
<div class="seconddiv">The rest of your website goes here</div>
</body>
当您不将内容移动到标题下方时,此代码段显示div与标题重叠
body{
margin: 0;
}
header{
width: 75%;
background-color: red;
position: fixed;
top:0;
height: 100px;
}
.firstdiv{
width: 100%;
background-color: blue;
height: 100px;
}
<body>
<header>Your header goes here</header>
<div class="firstdiv">The rest of your website goes here</div>
</body>