Не работает position:fixed;
Присвоил элементу position: fixed
, а он не остается на месте а прокручивается вместе со страницей. Очень прошу прощения за большой CSS, только что вставил сюда на проверку фрагмент кода, работает, а если весь CSS то не работает. И не могу найти где ошибка, прошу помочь специалистов/знатоков. Высота call_box
чисто проверочная.
CSS
* {
font-family: Unageo-Medium;
-webkit-user-select: none;
user-select: none;
-webkit-animation-name: fadeInDown;
animation-name: fadeInDown;
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@-webkit-keyframes fadeInDown {
0% {
opacity: 0;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
}
100% {
opacity: 1;
}
}
@keyframes fadeInDown {
0% {
opacity: 0;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
}
100% {
opacity: 1;
}
}
body {
opacity: 0;
}
.background {
background-color: #BFB9B1;
padding: 0;
margin: 0;
align-items: center;
display: flex;
flex-direction: column;
}
.bar {
transition: none;
background-color: #3A4429;
display: flex;
width: 80%;
flex-direction: row;
margin-left: auto;
margin-right: auto;
animation-duration: 0ms;
justify-content: space-evenly;
}
.bar h3{
margin: 0;
height: 100%;
line-height: 100%;
color: #ddd6ce;
padding: 1%;
transition: background-color 0.2s ease;
}
.bar h3:hover{
background-color: #687a49;
}
.barMain {
margin-top: 5%;
background-color: #3A4429;
border-radius: 5px;
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-evenly;
align-items: center;
}
.topBar {
position: sticky;
top: 0;
overflow: hidden;
nav-up: auto;
background-color: #3A4429;
display: flex;
justify-content: space-evenly;
padding: 5px 0;
z-index: 100000;
margin: 0;
width: 100%;
color: #ddd6ce;
border-radius: 0px 0px 10px 10px;
font-size: 20px;
margin-bottom: 1%;
}
.fixed_down {
top: 0;
}
.fixed_up {
top: -75;
}
.topContent {
width: 70%;
justify-content: space-evenly;
display: flex;
}
@font-face {
font-family: "Unageo-Medium";
src: url(../fonts/Unageo-Medium.ttf);
}
a:hover {
cursor: pointer;
}
a {
color: #ddd6ce;
text-decoration: none;
}
.mainBody {
height: 300px;
display: flex;
flex-direction: column;
text-align: center;
text-transform: uppercase;
padding-top: auto;
padding-bottom: auto;
}
.mainBody1 {
height: 150px;
display: flex;
flex-direction: column;
text-align: center;
text-transform: uppercase;
padding-top: auto;
padding-bottom: auto;
}
.mainText {
margin-top: auto;
}
.menuButt {
align-self: center;
width: max-content;
border: 0;
border-radius: 5px;
background-color: #3A4429;
color: #ddd6ce;
padding: 10px 30px 10px 30px;
font-size: x-large;
}
.bottomBar {
width: 100%;
padding-top: 2%;
margin-top: 20%;
height: 100%;
background-color: #3A4429;
padding-bottom: 2%;
}
.iconBottom {
width: 30px;
}
.textBottom {
margin-left: 1%;
margin-top: auto;
margin-bottom: auto;
vertical-align: middle;
}
.boxBottom {
margin-left: 2%;
display: flex;
margin-top: 1%;
}
.call_butt{
background-color: #3A4429;
border-radius: 50%;
width: 15%;
position: fixed;
bottom: 0;
right: 0;
left: 0;
margin: 0 auto;
}
.call_box {
height: 1000px;
width: 100%;
position: absolute;
}
/*Carousel*/
.slider {
width: 39%;
max-width: 100vw;
height: 500px;
margin: 1%;
position: relative;
overflow: hidden;
justify-content: center;
align-items: center;
transform: rotate(2deg);
border: 4px dashed black;
border-radius: 5px;
box-shadow: 10px 10px 28px 0px rgba(0, 0, 0, 0.75);
}
.slider .list {
position: absolute;
width: max-content;
height: 100%;
left: 0;
top: 0;
display: flex;
transition: 1s;
}
.slider .list img {
width: 800px;
max-width: 100vw;
height: 100%;
object-fit: cover;
position: relative;
object-position: 0;
border-radius: 4px;
-webkit-box-shadow: inset 10px 10px 114px -19px rgba(0, 0, 0, 0.75);
-moz-box-shadow: inset 10px 10px 114px -19px rgba(0, 0, 0, 0.75);
box-shadow: inset 10px 10px 114px -19px rgba(0, 0, 0, 0.75)
}
.slider .list span {
position: absolute;
left: 0;
bottom: 0;
margin-left: 5%;
text-shadow: 4px 2px 6px rgba(0, 0, 0, 0.6);
transition-delay: 2s;
margin-bottom: 10%;
color: #ddd6ce;
font-weight: bold;
font-size: xx-large;
z-index: 100;
}
.slider .buttons {
position: absolute;
top: 45%;
left: 5%;
width: 90%;
display: flex;
justify-content: space-between;
}
.left {
margin-left: -4%;
text-shadow: 4px 2px 6px rgba(0, 0, 0, 0.6);
}
.right {
margin-right: -4%;
text-shadow: -4px 2px 6px rgba(0, 0, 0, 0.6);
}
.slider .buttons button {
width: 50px;
height: 50px;
border-radius: 50%;
background-color: #fff5;
color: #fff;
border: none;
font-family: monospace;
font-weight: bold;
font-size: xx-large;
}
.slider .dots {
position: absolute;
bottom: 10px;
left: 0;
color: #fff;
width: 100%;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
}
.slider .dots li {
list-style: none;
width: 10px;
height: 10px;
background-color: #fff;
margin: 10px;
border-radius: 20px;
transition: 0.5s;
}
.slider .dots li.active {
width: 30px;
}
@media screen and (max-width: 768px) {
.slider {
height: 400px;
}
}
.slideMain {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 5%;
width: 150%;
padding: 0.3%;
background-color: #3A4429;
transform: rotate(-2deg);
}
.mainSli {
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
padding-bottom: 5%;
}
<body class="baclground">
<div class="call_box">
<img class="call_butt" draggable="false" src="../images/free-icon-phone-call-455604.png"/>
</div>
</body>
Ответы (1 шт):
Как указано в комментариях - если у одного из родительских элементов будет выставлен transform
- то position:fixed
будет отсчитывать положение в рамках этого элемента.
В коде в вопросе - всем элементам добавляется анимация, в которой устанавливается transform
.
Для решения достаточно убрать эту установку из анимации, либо не добавлять эту анимацию для всех элементов
Например:
* {
font-family: Unageo-Medium;
-webkit-user-select: none;
user-select: none;
-webkit-animation-name: fadeInDown;
animation-name: fadeInDown;
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@-webkit-keyframes fadeInDown {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes fadeInDown {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
body {
opacity: 0;
}
.background {
background-color: #BFB9B1;
padding: 0;
margin: 0;
align-items: center;
display: flex;
flex-direction: column;
}
.bar {
transition: none;
background-color: #3A4429;
display: flex;
width: 80%;
flex-direction: row;
margin-left: auto;
margin-right: auto;
animation-duration: 0ms;
justify-content: space-evenly;
}
.bar h3 {
margin: 0;
height: 100%;
line-height: 100%;
color: #ddd6ce;
padding: 1%;
transition: background-color 0.2s ease;
}
.bar h3:hover {
background-color: #687a49;
}
.barMain {
margin-top: 5%;
background-color: #3A4429;
border-radius: 5px;
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-evenly;
align-items: center;
}
.topBar {
position: sticky;
top: 0;
overflow: hidden;
nav-up: auto;
background-color: #3A4429;
display: flex;
justify-content: space-evenly;
padding: 5px 0;
z-index: 100000;
margin: 0;
width: 100%;
color: #ddd6ce;
border-radius: 0px 0px 10px 10px;
font-size: 20px;
margin-bottom: 1%;
}
.fixed_down {
top: 0;
}
.fixed_up {
top: -75;
}
.topContent {
width: 70%;
justify-content: space-evenly;
display: flex;
}
@font-face {
font-family: "Unageo-Medium";
src: url(../fonts/Unageo-Medium.ttf);
}
a:hover {
cursor: pointer;
}
a {
color: #ddd6ce;
text-decoration: none;
}
.mainBody {
height: 300px;
display: flex;
flex-direction: column;
text-align: center;
text-transform: uppercase;
padding-top: auto;
padding-bottom: auto;
}
.mainBody1 {
height: 150px;
display: flex;
flex-direction: column;
text-align: center;
text-transform: uppercase;
padding-top: auto;
padding-bottom: auto;
}
.mainText {
margin-top: auto;
}
.menuButt {
align-self: center;
width: max-content;
border: 0;
border-radius: 5px;
background-color: #3A4429;
color: #ddd6ce;
padding: 10px 30px 10px 30px;
font-size: x-large;
}
.bottomBar {
width: 100%;
padding-top: 2%;
margin-top: 20%;
height: 100%;
background-color: #3A4429;
padding-bottom: 2%;
}
.iconBottom {
width: 30px;
}
.textBottom {
margin-left: 1%;
margin-top: auto;
margin-bottom: auto;
vertical-align: middle;
}
.boxBottom {
margin-left: 2%;
display: flex;
margin-top: 1%;
}
.call_butt {
background-color: #3A4429;
border-radius: 50%;
width: 15%;
position: fixed;
bottom: 0;
right: 0;
left: 0;
margin: 0 auto;
}
.call_box {
height: 1000px;
width: 100%;
position: absolute;
}
/*Carousel*/
.slider {
width: 39%;
max-width: 100vw;
height: 500px;
margin: 1%;
position: relative;
overflow: hidden;
justify-content: center;
align-items: center;
transform: rotate(2deg);
border: 4px dashed black;
border-radius: 5px;
box-shadow: 10px 10px 28px 0px rgba(0, 0, 0, 0.75);
}
.slider .list {
position: absolute;
width: max-content;
height: 100%;
left: 0;
top: 0;
display: flex;
transition: 1s;
}
.slider .list img {
width: 800px;
max-width: 100vw;
height: 100%;
object-fit: cover;
position: relative;
object-position: 0;
border-radius: 4px;
-webkit-box-shadow: inset 10px 10px 114px -19px rgba(0, 0, 0, 0.75);
-moz-box-shadow: inset 10px 10px 114px -19px rgba(0, 0, 0, 0.75);
box-shadow: inset 10px 10px 114px -19px rgba(0, 0, 0, 0.75)
}
.slider .list span {
position: absolute;
left: 0;
bottom: 0;
margin-left: 5%;
text-shadow: 4px 2px 6px rgba(0, 0, 0, 0.6);
transition-delay: 2s;
margin-bottom: 10%;
color: #ddd6ce;
font-weight: bold;
font-size: xx-large;
z-index: 100;
}
.slider .buttons {
position: absolute;
top: 45%;
left: 5%;
width: 90%;
display: flex;
justify-content: space-between;
}
.left {
margin-left: -4%;
text-shadow: 4px 2px 6px rgba(0, 0, 0, 0.6);
}
.right {
margin-right: -4%;
text-shadow: -4px 2px 6px rgba(0, 0, 0, 0.6);
}
.slider .buttons button {
width: 50px;
height: 50px;
border-radius: 50%;
background-color: #fff5;
color: #fff;
border: none;
font-family: monospace;
font-weight: bold;
font-size: xx-large;
}
.slider .dots {
position: absolute;
bottom: 10px;
left: 0;
color: #fff;
width: 100%;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
}
.slider .dots li {
list-style: none;
width: 10px;
height: 10px;
background-color: #fff;
margin: 10px;
border-radius: 20px;
transition: 0.5s;
}
.slider .dots li.active {
width: 30px;
}
@media screen and (max-width: 768px) {
.slider {
height: 400px;
}
}
.slideMain {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 5%;
width: 150%;
padding: 0.3%;
background-color: #3A4429;
transform: rotate(-2deg);
}
.mainSli {
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
padding-bottom: 5%;
}
<body class="baclground">
<div class="call_box">
<img class="call_butt" draggable="false" src="../images/free-icon-phone-call-455604.png" />
</div>
</body>