Здесь вы хотите использовать display: flex;поскольку это позволяет вам центрировать элементы как по горизонтали, так и по вертикали.Это также известно как flexbox.
Некоторые другие примечания, касающиеся кода, в этом случае у вас должно быть изображение как изображение, а не фоновое изображение, и намного проще использовать background-color: red;чем использование изображения в качестве цвета фона.
body,
html {
margin: 0;
padding: 0;
}
body {
overflow: hidden
}
#preloader {
position: fixed;
background-color: red;
z-index: 99;
/* makes sure it stays on top */
width: 100%;
height: 100%;
display: flex;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
}
#camera {
height: 150px;
/* path to your loading animation */
background-repeat: no-repeat;
background-position: center;
background-size: contain;
display: flex;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
flex-direction: row;
align-items: center;
justify-content: center;
text-align: center;
}
#text {
height: 100px;
line-height: 890px;
text-align: center;
color: white;
font-size: 20px;
font-weight: bold;
display: flex;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
flex-direction: row;
align-items: center;
justify-content: center;
text-align: center;
}
<body>
<div id="preloader">
<img src="https://svgshare.com/i/6kD.svg" id="camera">
<div id="text">Website loading...</div>
</div>
</body>
Ура!
Следует отметить:
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
Это просто гарантирует, что центрирование работает во всех браузерах.