代码之家  ›  专栏  ›  技术社区  ›  H.Wesche

保持div之间的空间

  •  1
  • H.Wesche  · 技术社区  · 7 年前

    我的问题如下。如果窗口大小已更改(smaler),则描述和“状态圆”相互重叠。

    你知道css代码应该是什么吗?

    结构主要是:

    .statusdiv{
        height: 40px;
    
    }
    .statusbeschreibung{
    
        position: absolute;
        margin-left: 40%;
    }
    .statuskreis {
        position: absolute;
        width: 25px;
        height: 25px;
        top: 13px;
        /*left: 190px;*/
        margin-left: 60%;
        border: 1px solid black;
        text-align: center;
        border-radius: 12.5px;
    }
    
    .status-on{
        background-color: green;
    }
    .status-off{
        background-color: red;
    }
     <div class="list-block">
                        <ul>
                            <li>
                                <div class="statusdiv">
                                    <p class="statusbeschreibung">Motorstatus</p>
                                    <div name="motorstatus" id="motorstatus" class="item-link statuskreis status-off"></div>
                                </div>
                            </li>
    </div>
    3 回复  |  直到 7 年前
        1
  •  2
  •   Jonathan    7 年前

    这是基于您代码的原始屏幕截图:基本上您应该使用 display:inline-block 而不是 position:absolute 为了防止项目符号与文本重叠,请使用项目符号上留下的边距,以便项目符号与文本之间始终有足够的空间。

    .list-block ul {
      padding: 0;
      margin: 0;
    }
    
    .list-block li {
      list-style: none;
    }
    
    .statusdiv {
      white-space: nowrap;
    }
    .statusbeschreibung {
      margin-left: 40%;
      display: inline-block;
      vertical-align: middle;
    }
    .statuskreis {
      width: 25px;
      height: 25px;
      margin-left: 10px;
      border: 1px solid black;
      text-align: center;
      border-radius: 12.5px;
      display: inline-block;
      vertical-align: middle;
    }
    .status-on {
      background-color: green;
    }
    .status-off {
      background-color: red;
    }
    <div class="list-block">
      <ul>
        <li>
          <div class="statusdiv">
            <p class="statusbeschreibung">Motorstatus</p>
            <div name="motorstatus" id="motorstatus" class="item-link statuskreis status-off"></div>
          </div>
        </li>
        <li>
          <div class="statusdiv">
            <p class="statusbeschreibung">Motorstatus</p>
            <div name="motorstatus" id="motorstatus" class="item-link statuskreis status-on"></div>
          </div>
        </li>
      </ul>
    </div>
        2
  •  0
  •   Seba M    7 年前

    尝试以百分比而不是像素设置宽度和高度。这应该调整状态圆的大小,并防止其与描述重叠,除了描述的字体根本不调整大小并填充整个div之外。

        3
  •  0
  •   Nathaniel Flick    7 年前

    我对其进行了样式设计,使两个列表项中的每一项都是ul容器宽度的50%,但您可以根据需要对其进行调整。

    * {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    }
    
    .statusdiv {
      list-style: none;
      float: left;
      margin: 0;
      padding: 1em;
      width: 100%;
      color: #2d2d2d;
    }
    
    .statusdiv li {
    width: 50%;
    float: left;
    padding: 0 1em;
    }
    
    .statusdiv li:first-child {
    text-align: right;
    height: 35px;
    line-height: 35px;
    }
    
    .statusdiv li:last-child {
    text-align: left;
    }
    
    .circle {
    content: "";
    background-color: aqua;
    width: 35px;
    height: 35px;
    display: inline-block;
    -webkit-border-radius: 100%;
    -moz-border-radius: 100%;
    border-radius: 100%;
    }
    <!-- EDIT THIS SNIPPET -->
    <ul class="statusdiv">
      <li>
        Status thing:
      </li>
      <li><span class="circle"></span></li>
    </ul>