<!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.0">
<title>Document</title>
<link rel = "stylesheet" href = "style.css">
</head>
<body>
<nav>
<navl>
<ul>
<li><img src = "" alt = "logo"></li>
<li><input type = "search"></li>
<li><img src = "" alt = "hit"></li>
</ul>
</navl>
<navr>
<ul>
<li><img src = "" alt = ""dp></li>
<li>Name</li>
<li>i1</li>
<li>i2</li>
<li>i3</li>
<li>i4</li>
<li>i5</li>
</ul>
</navr>
</nav>
<main>
<left>
<span>left</span>
</left>
<center>
<span>center</span>
</center>
<right>
<span>right</span>
</right>
</main>
</body>
</html>
*{
padding: 0vw;
margin: 0vw;
}
nav{
background-color: rgba(52, 52, 146, 0.829);
display: inline-flex;
justify-content: space-around;
align-items: center;
width: 100vw;
height: 45px;
position:sticky;
}
ul {
display: inline-flex;
list-style-type:none;
}
navl{
border-color:red ;
border-style: dotted;
align-items: center;
}
navr{
border-color:red ;
border-style: dotted;
}
main{
justify-content: space-between;
display: flex;
}
left{
border-color: red;
border-style: dotted;
width: 30vw;
height: 400px;
display: inline-flex;
position: sticky;
}
center{
border-color: red;
border-style: dotted;
width: 35vw;
height:5000px;
display: inline-flex;
}
right{
border-color: red;
border-style: dotted;
width: 30vw;
height: 300px;
display: inline-flex;
}
Почему атрибут навигационной панели position:sticky не работает? Но если я устанавливаю фиксированную позицию, в этом случае она работает. Я хочу, чтобы он фиксировался вверху, когда мы прокручиваем, как в facebook. Я пытаюсь создать клон-facebook. Я новичок, пытаюсь научиться веб-разработке. 1-й код — это HTML, а 2-й — таблица стилей CSS.
Просто добавьте top:0; и z-индекс: 9999;
* {
padding: 0vw;
margin: 0vw;
}
nav {
background-color: rgba(52, 52, 146, 0.829);
display: inline-flex;
justify-content: space-around;
align-items: center;
width: 100vw;
height: 45px;
position: sticky;
z-index: 9999;
top: 0;
}
ul {
display: inline-flex;
list-style-type: none;
}
navl {
border-color: red;
border-style: dotted;
align-items: center;
}
navr {
border-color: red;
border-style: dotted;
}
main {
justify-content: space-between;
display: flex;
}
left {
border-color: red;
border-style: dotted;
width: 30vw;
height: 400px;
display: inline-flex;
position: sticky;
}
center {
border-color: red;
border-style: dotted;
width: 35vw;
height: 5000px;
display: inline-flex;
}
right {
border-color: red;
border-style: dotted;
width: 30vw;
height: 300px;
display: inline-flex;
}
<!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.0">
<title>Document</title>
<link rel = "stylesheet" href = "style.css">
</head>
<body>
<nav>
<navl>
<ul>
<li><img src = "" alt = "logo"></li>
<li><input type = "search"></li>
<li><img src = "" alt = "hit"></li>
</ul>
</navl>
<navr>
<ul>
<li><img src = "" alt = ""dp></li>
<li>Name</li>
<li>i1</li>
<li>i2</li>
<li>i3</li>
<li>i4</li>
<li>i5</li>
</ul>
</navr>
</nav>
<main>
<left>
<span>left</span>
</left>
<center>
<span>center</span>
</center>
<right>
<span>right</span>
</right>
</main>
</body>
</html>
Да, это то, что я сказал ему
Я прокомментировал не тот пост: D - ваше правильное решение.
почему было необходимо добавить top: 0px, поскольку уже было понятно, что панель навигации уже была вверху?
Вам нужно добавить
top:0;
к элементуnav
, чтобыposition:sticky
вступил в силу.