You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Divi WordPress网站中iframe聊天弹窗的CSS重叠问题

解决Divi WordPress中IFrame聊天弹窗重叠问题

我在HTML中制作了一个IFrame聊天机器人弹窗,添加到Divi WordPress网站后,弹窗与其他内容发生了重叠。我用IFrame标签设计了这个弹窗的聊天机器人链接,代码设计非常简单,当前开发的网站为mycaresys.com。

原代码如下:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {font-family: Arial, Helvetica, sans-serif;}
* {box-sizing: border-box;}

/* Button used to open the chat form - fixed at the bottom of the page */
.open-button {
  background-color: #555;
  color: white;
  padding: 16px 20px;
  border: none;
  cursor: pointer;
  opacity: 0.8;
  position: fixed;
  bottom: 23px;
  right: 28px;
  width: 120px;
}

.cancel{
  background-color: #555;
  color: white;
  padding: 10px 10px;
  border-radius: 15px;
  cursor: pointer;
  opacity: 0.8;
  position: fixed;
  bottom: 35px;
  right:10px;
  width: 50px;
}

/* The popup chat - hidden by default */
.chat-popup {
  display: none;
  position: fixed; 
  bottom: 0;
  right: 15px;
  border: 3px solid #f1f1f1;
  z-index: 9;
}

/* Add styles to the form container */
.form-container {
  max-width: 400px;
  height: 500px;
  padding: 10px;
  background-color: white;
}

/* Full-width textarea */
.form-container textarea {
  width: 100%;
  padding: 15px;
  margin: 5px 0 22px 0;
  border: none;
  background: #f1f1f1;
  resize: none;
}

/* When the textarea gets focus, do something */
.form-container textarea:focus {
  background-color: #ddd;
  outline: none;
}

/* Set a style for the submit/send button */
.form-container .btn {
  background-color: #04AA6D;
  color: white;
  padding: 16px 20px;
  border: none;
  cursor: pointer;
  width: 100%;
  margin-bottom:10px;
  opacity: 0.8;
}

/* Add a red background color to the cancel button */
.form-container .cancel {
  background-color: red;
}

/* Add some hover effects to buttons */
.form-container .btn:hover, .open-button:hover {
  opacity: 1;
}
</style>
</head>
<body>

<button class="open-button" onclick="openForm()">24/7 AI Chat</button>

<div class="chat-popup" id="myForm">
  <form class="form-container">
    <iframe id="myframe" src="https://chatbotapp2022.azurewebsites.net/home/chatbotcaresys" title="Caresys Chatbot" width="100%" height="100%"></iframe>

  </form>
  <button type="button" class="btn cancel" onclick="closeForm()">Close</button>
</div>

<script>
function openForm() {
  document.getElementById("myForm").style.display = "block";
}

function closeForm() {
  document.getElementById("myForm").style.display = "none";
}
</script>

</body>
</html>

问题原因及解决方法

弹窗重叠的核心原因是z-index层级不够,Divi主题中很多元素(比如导航栏、固定组件)的z-index值较高,会覆盖你的弹窗。另外,关闭按钮使用固定定位可能也会和页面其他固定元素冲突。

修改要点:

  1. 大幅提高.chat-popup的z-index值,确保它能覆盖页面所有其他元素
  2. 将关闭按钮移入.chat-popup容器内,改用绝对定位,避免和页面其他固定元素位置冲突
  3. 调整关闭按钮的位置样式,使其固定在弹窗右上角

修改后的完整代码

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {font-family: Arial, Helvetica, sans-serif;}
* {box-sizing: border-box;}

/* Button used to open the chat form - fixed at the bottom of the page */
.open-button {
  background-color: #555;
  color: white;
  padding: 16px 20px;
  border: none;
  cursor: pointer;
  opacity: 0.8;
  position: fixed;
  bottom: 23px;
  right: 28px;
  width: 120px;
  z-index: 9998; /* 确保打开按钮也在较高层级 */
}

/* The popup chat - hidden by default */
.chat-popup {
  display: none;
  position: fixed; 
  bottom: 0;
  right: 15px;
  border: 3px solid #f1f1f1;
  z-index: 9999; /* 大幅提高层级,覆盖Divi主题元素 */
}

/* Add styles to the form container */
.form-container {
  max-width: 400px;
  height: 500px;
  padding: 10px;
  background-color: white;
  position: relative; /* 为内部绝对定位元素提供参照 */
}

/* 关闭按钮样式调整 */
.chat-popup .cancel {
  background-color: red;
  color: white;
  padding: 10px 10px;
  border-radius: 15px;
  cursor: pointer;
  opacity: 0.8;
  position: absolute; /* 改为绝对定位,相对于弹窗容器 */
  top: 10px;
  right: 10px;
  width: 50px;
  border: none;
}

/* Full-width textarea */
.form-container textarea {
  width: 100%;
  padding: 15px;
  margin: 5px 0 22px 0;
  border: none;
  background: #f1f1f1;
  resize: none;
}

/* When the textarea gets focus, do something */
.form-container textarea:focus {
  background-color: #ddd;
  outline: none;
}

/* Set a style for the submit/send button */
.form-container .btn {
  background-color: #04AA6D;
  color: white;
  padding: 16px 20px;
  border: none;
  cursor: pointer;
  width: 100%;
  margin-bottom:10px;
  opacity: 0.8;
}

/* Add some hover effects to buttons */
.form-container .btn:hover, .open-button:hover, .chat-popup .cancel:hover {
  opacity: 1;
}
</style>
</head>
<body>

<button class="open-button" onclick="openForm()">24/7 AI Chat</button>

<div class="chat-popup" id="myForm">
  <form class="form-container">
    <iframe id="myframe" src="https://chatbotapp2022.azurewebsites.net/home/chatbotcaresys" title="Caresys Chatbot" width="100%" height="100%"></iframe>
    <!-- 将关闭按钮移入form-container内 -->
    <button type="button" class="cancel" onclick="closeForm()">Close</button>
  </form>
</div>

<script>
function openForm() {
  document.getElementById("myForm").style.display = "block";
}

function closeForm() {
  document.getElementById("myForm").style.display = "none";
}
</script>

</body>
</html>

额外提示

如果修改后仍有重叠,可以打开浏览器开发者工具(按F12),检查页面中覆盖弹窗的元素,查看它的z-index值,然后将.chat-popup的z-index设为比该值更高的数字即可。

内容的提问来源于stack exchange,提问作者Sazid Hasan Milon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:07:04