将 space 保持在 div 之间

keep space between div's

我想显示一个 html div,其中包含一个带圆圈(绿色或红色)的状态描述。这个圆圈在描述的右上角显示了enigne的状态。

我的问题如下。如果 windows 大小发生变化(更小),则说明和 "state-circle" 会相互重叠。

我该如何防止这种情况发生? 你知道 css-code 应该是怎样的吗?

结构主要是这样的:

.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>

如果我没理解错的话,你用 class "motortatus".

设置圆圈的样式

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

这是基于您代码的原始屏幕截图:基本上您应该使用 display:inline-block 而不是 position:absolute 来防止项目符号与文本重叠,然后使用 margin-left项目符号,使其与文本之间始终有足够的 space。

.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>

我喜欢这种东西的内联列表,但您也可以在您首选的 css 框架中创建列。

我设计了它的样式,因此两个列表项中的每一个都是 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>