Я хотел бы иметь бутстрап-спиннер, который находится поверх формы (он перекрывает форму). Однако единственное, что я смог получить, это наложить всю страницу. Я использую Bootstrap.
<style>
.overlay {
position: fixed;
width: 100%;
height: 100%;
z-index: 1000;
top: 40%;
left: 0px;
opacity: 0.5;
filter: alpha(opacity=50);
}
</style>
<div class = "overlay" id = "loading" >
<div class = "d-flex justify-content-center">
<div class = "spinner-border" role = "status" >
<span class = "sr-only">Loading...</span>
</div>
</div>
</div>
<form method = "post">
<div class = "form-group">
<label for = "num">Enter number <span>?</span></label>
<input id = "num" type = "text" class = "form-control"/>
</div>
<button type = "submit" class = "btn btn-primary">Check </button>
</form>
Вы должны поместить счетчик внутри вашей формы, как это
<form method = "post">
<div class = "overlay" id = "loading" >
<div class = "d-flex justify-content-center">
<div class = "spinner-border" role = "status" >
<span class = "sr-only">Loading...</span>
</div>
</div>
</div>
<fieldset disabled>
<div class = "form-group">
<label for = "num">Enter number <span>?</span></label>
<input id = "num" type = "text" class = "form-control"/>
</div>
<button type = "submit" class = "btn btn-primary">Check </button>
</fieldset>
</form>
затем дайте счетчику абсолютную позицию
form {
position: relative;
border: 1px solid red
}
.overlay {
position: absolute;
top: 50%;
left: 50%;
opacity: 0.5;
transform: translate(-50%, -50%);
}
Ки Джей, кажется, я не понял, в чем проблема с ответом выше?
@renathy Увидишь, что он имеет в виду, если ты вырастишь спиннер, я обновлю свой ответ
Я вижу, я исправил это. Может быть, вы также можете подсказать, как сделать форму отключенной или неактивной при появлении загрузчика? В настоящее время ti кликабельно
Оберните входную группу в <fieldset>
и присвойте ей отключенный атрибут. @ренати
Свойства CSS top и left задают координаты X/Y, где должен находиться верхний левый угол (или верхний правый угол в rtl-директории) вашего элемента. Если вы хотите, чтобы счетчик был действительно центрирован, вам нужно добавить свойство
transform
сtranslate(-50%, -50%);
, чтобы он получил X = 50% минус половина его ширины и Y = 50% минус половина его высоты.