我想要显示一个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>
答案 0 :(得分:2)
这是基于您的代码的原始屏幕截图图片:基本上您应该使用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;
}
&#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;
答案 1 :(得分:0)
如果我理解正确,你可以使用“motortatus”类来设置圆圈的样式。
尝试以百分比设置宽度和高度,而不是以像素为单位。这应该调整状态圈的大小并防止它与描述重叠,除了描述的字体根本没有调整大小并填满整个div。
答案 2 :(得分:0)
我喜欢这类内容的内联列表,但您也可以在首选的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%;
}
&#13;
<!-- EDIT THIS SNIPPET -->
<ul class="statusdiv">
<li>
Status thing:
</li>
<li><span class="circle"></span></li>
</ul>
&#13;