保持div之间的空间

时间:2017-08-21 19:20:25

标签: html css elements

我想要显示一个html div,它包含一个带有圆圈(绿色或红色)的状态descritpiton。此圆圈显示说明右上角的enigne状态。

我的问题如下。如果窗口大小已经改变(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 个答案:

答案 0 :(得分:2)

这是基于您的代码的原始屏幕截图图片:基本上您应该使用display:inline-block而不是position:absolute来防止子弹与文本重叠,然后在子弹上使用左边距所以它和文本之间总是有足够的空间。

&#13;
&#13;
.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;
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果我理解正确,你可以使用“motortatus”类来设置圆圈的样式。

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

答案 2 :(得分:0)

我喜欢这类内容的内联列表,但您也可以在首选的css框架中选择列。

我已经设计了它,所以两个列表项中的每一个都是ul容器宽度的50%,但你可以根据需要调整它们。

&#13;
&#13;
* {
-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%;
}
&#13;
<!-- EDIT THIS SNIPPET -->
<ul class="statusdiv">
  <li>
    Status thing:
  </li>
  <li><span class="circle"></span></li>
</ul>
&#13;
&#13;
&#13;