如何防止div重叠

How to prevent divs from overlapping

我正在研究一些代码,但遇到了样式问题。

我正处于创建“页面生成器”的早期阶段,但一些 div 相互重叠。

带圆圈的内容是我要防止的示例,因为那些 div 与侧边栏重叠并超出了预览区域。

我将如何修复此样式?

代码笔:https://codepen.io/JosephChunta/pen/MWyJoeq

HTML

<div id="page-Builder">
  <div id="page-Builder-Sidemenu">
    <div id="topMenuParent">
      <p>Page Builder</p>
      <button id="addComponentButton" onclick="showComponentList()">+</button>
    </div>
    <div id="page-Builder-Properties">
      
    </div>
  </div>
  <div id="page-Builder-Component-List" style="width: 0;">
    <div id="closeListButton" onclick="hideComponentList()">❌</div>
    <div id="pageComponentText" class="pageComponent" draggable="true" ondragstart="drag(event)">Text</div>
    <div id="pageComponentHeader" class="pageComponent" draggable="true" ondragstart="drag(event)">Header</div>
    <div class="componentBlock" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
  </div>
  <div id="page-Builder-Workspace" style="width: 80%;">
    <button id="newBlockButton" onclick="newComponentBlock()">New Block</button>
  </div>
</div>

相关 CSS

#page-Builder {
  display: flex;
  width: 1200px;
  height: 400px;
  border: 2px solid black;
  overflow: hidden;
}

#page-Builder #page-Builder-Sidemenu {
  width: 20%;
  height: 100%;
}

#page-Builder #page-Builder-Sidemenu #topMenuParent {
  width: 100%;
  height: 15%;
  padding: 5px;
  background: white;
  overflow: hidden;
  display: flex;
  justify-content: space-between;
}

#page-Builder #page-Builder-Sidemenu #page-Builder-Properties {
  width: 100%;
  height: 85%;
  background: #ddd;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 5px;
}

#page-Builder #page-Builder-Component-List {
  height: 100%;
  overflow: hidden;
  background: #ccc;
}

#page-Builder #page-Builder-Workspace {
  width: 80%;
  height: 100%;
  background: none;
  overflow-y: auto;
  overflow-x: hidden;
  text-align: center;
}

#page-Builder #page-Builder-Workspace .componentBlock {
  border: 2px solid transparent;
  padding: 10px;
  transition: 300ms;
}

#page-Builder #page-Builder-Workspace .componentBlock:hover {
  border: 2px solid #03A9F4;
  transition: 300ms;
}

#page-Builder #page-Builder-Workspace .componentBlock:empty:after {
  content: '+';
  font-size: 20px;
  font-weight: 800;
}

实际问题出在边栏上,它过度扩展了。

中删除width: 100%
#page-Builder #page-Builder-Sidemenu #page-Builder-Properties { }
#page-Builder #page-Builder-Sidemenu #topMenuParent { }