Вертикально По Центру Загрузка Spinner Оверлей
Я хотел бы показать вертикально центрированный загрузочный счетчик, как один из этих https://github.com/jlong/css-spinners на веб-странице. Следуйте за codepen.io ссылка на этой странице, чтобы увидеть их в движении.
Как я могу сделать это через CSS? Рассмотрим, что я имею дело с приложением Google App Engine на основе Python, Twitter Bootstrap и Polymer.
3 ответов
предположим, вы идете с" Плюс " spinner. Вы можете обернуть это в фиксированное положение div, которое охватывает всю страницу:
<div id="pluswrap">
<div class="plus">
Loading...
</div>
</div>
поскольку вы можете иногда использовать разные блесны, которые имеют разную ширину, CSS не должен жестко кодировать ширину. Вы можете центрировать элемент по вертикали в flexbox, а затем использовать margin: 0 auto;
по этому пункту будет центрироваться.
#pluswrap {
position: fixed;
width: 100%;
height:100%;
display: flex;
align-items: center;
top: 0;
}
.plus {
display: flex;
margin: 0 auto;
}
таким образом, вы можете даже покрасить фон, сделать его полупрозрачным и т. д.
здесь JSFiddle
Я ничего не знаю о Google App engine, я боюсь, но центрировать элемент, который имеет ширину и высоту, довольно легко.
Я предполагаю, что это фиксированный позиционированный элемент, поэтому просто используйте верхний,правый, левый и нижний, а затем используйте margin:auto для Центра по вертикали и горизонтали.
например
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style>
.spinner{
position:fixed;
z-index:99;/* make higher than whatever is on the page */
top:0;
left:0;
right:0;
bottom:0;
margin:auto;
background:red;
width:100px;
height:100px;
}
</style>
</head>
<body>
<div class="spinner"></div>
</body>
</html>
HTML-код
<div id="pluswrap">
<div class="plus">
Loading...
</div>
</div>
в CSS
#pluswrap {
position: fixed;
width: 100%;
height:100%;
display: flex;
top: 0;
}
.plus {
margin: auto;
}
только display:flex
родитель, а margin: auto
сделает необходимую вещь.
здесь JS Fiddle