У меня есть файл css с кодом ниже:
.loader {
width: 250px;
height: 50px;
line-height: 50px;
text-align: center;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-family: helvetica, arial, sans-serif;
text-transform: uppercase;
font-weight: 900;
color: white;
background-color: gray;
letter-spacing: 0.2em;
}
.loader::before, .loader::after {
content: "";
display: block;
width: 15px;
height: 15px;
background:blue;
position: absolute;
/* animation: load .7s infinite alternate ease-in-out; */
}
.loader::before {
top: 0;
}
.loader::after {
bottom: 0;
}
А код html выглядит как показано ниже:
<div class='loader'>Loading</div>
Результат выглядит следующим образом:
But when I comment the display block line in before and after selectors, the output becomes like this:
введите описание изображения здесь
Я не понимаю, почему меньшие блоки смещаются, когда я комментирую свойство блока отображения. Может кто-нибудь объяснить мне наивно, пожалуйста? В течение последнего часа пытался подумать, чтобы получить полное представление об этом поведении, но не смог найти правильного аргумента в отношении позиционирования двух меньших блочных элементов с отображением блока и без него. Почему блок after находится не влево, а вправо от текста «Загрузка»?
Другой вопрос, что если мы удалим отображение как блок, он станет встроенным по умолчанию, тогда три элемента должны быть один за другим , но я вижу, что первый блок перекрывается по вертикали с текстом.