如何在 html 表格上方叠加 div?

How to overlay div above html form?

我想在用户提交搜索时显示动画加载图标。

我正在寻找的事件顺序:

我面临的问题主要是 css。

这是我的代码:

HTML:

<form action="setJobFields" method="POST">
   <div id="searchEngineForm" style="display: none;">
      <div class="loader">
      </div>
   </div>
   ...
</form>

CSS:

#searchEngineForm{
    position: absolute;
    /* width: 100%; */
}
.loader {
    
    border: 16px solid #f3f3f3;
    border-radius: 50%;
    border-top: 16px solid #3498db;
    width: 120px;
    height: 120px;
    -webkit-animation: spin 2s linear infinite; /* Safari */
    animation: spin 2s linear infinite;
}
/* Safari */
@-webkit-keyframes spin {
    0% { -webkit-transform: rotate(0deg); }
    100% { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

要将 html 元素设置为高于其他元素,您可以将其 Z-index 设置为比其周围元素更高的数字。

例如,假设您想在页面其余部分的前面显示您的加载符号。您可以将整个页面包含在单个 div 中,为了参数我们给它一个 class 的“页面”,我们可以将其设置为:

.page{ z-index: -1 ;}

加载程序为

.loader{ z-index: 1; }

然后,要定位到你想要的位置,你可以设置position为absolute,然后用top和left属性左右移动,比如

.loader{ z-index:1; position: absolute; top: 50%; left: 50%; }