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

添加前置元素后圣诞树Div消失,仅星星保留的问题求助

问题原因

你给.tree设置宽高的样式依赖了:first-child伪类:

.tree:first-child {
  height: 400px;
  width: 325px;
}

这个选择器仅会匹配父元素的第一个子元素且带有.tree类的元素。当你在.tree前添加button等元素后,.tree不再是body的第一个子元素,该样式直接失效。失去宽高的flex容器(.tree)无法支撑内部leaves和wood元素的展示,只有单独设置了width的star能正常显示。

解决方案

方案一:直接将宽高样式绑定到.tree类

把原来的:first-child伪类去掉,将宽高属性直接写入.tree的基础样式:

.tree {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  animation: loadIn 2s;
  transform-origin: bottom;
  height: 400px; /* 新增宽高 */
  width: 325px;
}

/* 删除原有的.tree:first-child规则 */

方案二:给目标树添加专属类(适用于多tree场景)

如果页面存在多个.tree元素,不想让所有tree都应用这个宽高,可以给目标树额外加一个专属类:

.tree.main-tree {
  height: 400px;
  width: 325px;
}

对应的HTML修改:

<div class="tree main-tree">
  <!-- 内部结构保持不变 -->
</div>

两种方案都能确保无论.tree前是否有其他元素,核心样式都能正确应用,圣诞树即可正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:54:52