html - 如何使popover div / element / section出现在所有元素/ div / section的顶部
问题描述
我们正在开发一个开源 Chrome 扩展程序:Digital Assistant Client
我正在尝试在不使用任何纯 CSS 扩展的情况下实现自定义弹出框模式样式。我在将其显示在任何其他元素/div/部分之上时遇到问题。当在弹出模式中调用 css 时,弹出框会低于该模式。我怎样才能让它出现在页面上任何其他元素的顶部?我已将 z-index 定义为最高数字,但它仍然不起作用。我尝试将位置参数定义为“绝对/相对”
预期的输出应该是这样的,并且代码在 bootstrap 中运行良好: Bootstrap output
在某些页面中变得像这样 其他弹出输出
引导程序的工作代码:codepen
$('#exampleModal').modal('show');
:root {
--uda-primary-color: #303f9f;
--uda-secondary-color: #ff5722;
--uda-card-bgcolor: #f2f4fe;
--uda-text-color: #000;
--uda-footer-srchbtn-bgcolor: #dce0f7;
--uda-text-color-bg-white: #fff;
--uda-boxshodow-color: #e0e0e0;
}
/* tooltip css classes */
.uda-tooltip {
display:inline-block;
position:relative;
/*text-align:center;*/
}
.uda-tooltip-text-content{
visibility: visible;
position: absolute;
min-width:200px;
max-width:400px;
background-color: var(--uda-card-bgcolor);
color: var(--uda-primary-color);
text-align: center;
padding: 10px;
border-radius:8px;
z-index:99999999;
transition: opacity .6s;
box-shadow:0 1px 16px var(--uda-boxshodow-color);
}
.uda-tooltip-right::after{
content: "";
position: absolute;
top: 50%;
right: 100%;
margin-top: -12px;
border-width: 12px;
border-style: solid;
border-color: transparent var(--uda-footer-srchbtn-bgcolor) transparent transparent;
}
.uda-tooltip-right {
top: 50%;
left: 100%;
margin-left: 20px;
transform: translate(0px, -50%);
}
.uda-tooltip-top {
bottom: 100%;
left: 50%;
margin-bottom: 5px;
margin-left: -50%;
}
.uda-tooltip-top::after{
content: "";
position: absolute;
top: 100%;
left: 50%;
transform: rotate(-90deg) !important;
border-width: 12px;
border-style: solid;
transform: translate(0, -50%);
border-color: transparent var(--uda-footer-srchbtn-bgcolor) transparent transparent;
}
.uda-tooltip-bottom {
top: 100%;
left: 50%;
margin-top: 15px;
margin-left: -50%;
}
.uda-tooltip-bottom::after{
content: "";
position: absolute;
bottom: 100%;
left: 50%;
transform: rotate(90deg);
margin-top: -12px;
border-width: 12px;
border-style: solid;
border-color: transparent var(--uda-footer-srchbtn-bgcolor) transparent transparent;
}
.uda-tooltip-left {
top: 50%;
right: 100%;
margin-right: 20px;
transform: translate(0px, -50%);
}
.uda-tooltip-left::after{
content: "";
position: absolute;
top: 50%;
left: 100%;
transform: rotate(180deg);
margin-top: -12px;
border-width: 12px;
border-style: solid;
border-color: transparent var(--uda-footer-srchbtn-bgcolor) transparent transparent;
}
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"></script>
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Launch demo modal
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form>
<div class="form-group uda-tooltip">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
<div class="uda-tooltip-text-content uda-tooltip-top">Please input the value and then click on<br><button class="uda-tutorial-btn" style="margin-top:10px; margin-right: 5px;" type="button" uda-added="true" onclick="UDAPluginSDK.resumePlay();">Continue</button><button class="uda-tutorial-exit-btn" style="margin-top:10px;" type="button" uda-added="true" id="uda-autoplay-exit">Exit</button></div>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1">
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1">
<label class="form-check-label" for="exampleCheck1">Check me out</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
解决方案
推荐阅读
- ios - 在 Alamofire 上使用 DisableEvaluation 信任无效证书
- oauth-2.0 - 我们的用例需要什么 Oauth2 或 SSO
- r - 将下三角矩阵转换为向量,从下到上
- node.js - 项目编译后找不到模块
- javascript - 如何在 vue.js 中创建一个使用全局列表和 foreach 的当前项的计算函数?
- java - 使用 SmbFileInputStream 获取 NullPointerException
- fpga - 关于在 Quartus II 中编程 Altera Cyclone II 的新手问题
- android - 无法使用 ADB Espresso 清除应用数据
- java - 为什么 IntelliJ IDEA 无法确定 java 版本?
- reactjs - React - 在渲染之前等待复杂方法完成