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

同心正方形外层顶部文本对齐及避免遮挡内层元素问题咨询

问题根因

  • 直接给.grandparent赋值innerHTML会直接覆盖内部原有的parent、child节点,这是内层正方形消失的核心原因,和z-index无关
  • CSS属性存在两处书写错误:flex布局垂直顶部对齐的有效值是align-items: flex-start而非top;z-index的属性赋值语法错误,应为z-index: 0而非z-index=0
  • 全局为所有div设置了默认水平方向的flex居中,.grandparent需要改为垂直方向的flex布局,才能实现顶部文本、下方嵌套正方形的排列效果

修正后代码

HTML

<div class="grandparent">
  <!-- 新增专门存放顶部提示文本的节点,避免覆盖原有子元素 -->
  <span class="tip"></span>
  <div class="parent">
    <div class="child"></div>
  </div>
</div>

CSS

body {
  margin: 0;
  min-height: 100vh;
}
body,
div {
  display: flex;
  justify-content: center;
  align-items: center;
}
.grandparent {
  width: 200px;
  height: 200px;
  background-color: red;
  /* 改为垂直方向flex布局 */
  flex-direction: column;
  /* 垂直方向顶部对齐 */
  justify-content: flex-start;
  padding-top: 10px;
  gap: 20px; /* 控制顶部文本和内层正方形的间距 */
}
.parent {
  width: 130px;
  height: 130px;
  background-color: blue;
}
.child {
  width: 60px;
  height: 60px;
  background-color: green;
}

JavaScript

var x = window.prompt("Enter a value of X ");
// 对输入值做数值转换,避免字符串拼接问题
var square = x => Number(x) * Number(x);
console.log("The value of square is: " + square(x));
// 给专属文本节点赋值,不覆盖子元素
document.querySelector(".tip").innerText = `Enter the value of x: ${x}`;
document.querySelector(".child").innerText = square(x);

内容的提问来源于stack exchange,提问作者olbapnairda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:15:05