我想顯示一個(gè)html div,其中包含一個(gè)圓圈(綠色或紅色)的狀態(tài)描述。這個(gè)圓圈在描述的右上角顯示引擎的狀態(tài)。
我的問(wèn)題如下。如果窗口大小發(fā)生了變化(變小),說(shuō)明和& quot國(guó)家圈& quot互相重疊。
我該如何防止這種情況? 你知道CSS代碼應(yīng)該是什么樣的嗎?
結(jié)構(gòu)主要是這樣的:
.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>
這是基于你的代碼的原始截圖:基本上你應(yīng)該使用display:inline-block而不是position:absolute來(lái)防止你的項(xiàng)目符號(hào)與你的文本重疊,然后在項(xiàng)目符號(hào)上使用左邊距,這樣它和文本之間總是有足夠的空間。
.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>
如果我沒(méi)理解錯(cuò)的話,你用類“motortatus”來(lái)設(shè)計(jì)這個(gè)圓的樣式。
盡量用百分比來(lái)設(shè)置寬度和高度,而不是像素。這應(yīng)該調(diào)整狀態(tài)圈的大小,防止它與描述重疊,除了描述的字體根本不調(diào)整大小,并填滿整個(gè)div。
我喜歡內(nèi)聯(lián)列表這樣的東西,但是你也可以在你喜歡的css框架中選擇列。
我把它設(shè)計(jì)成兩個(gè)列表項(xiàng)各占ul容器寬度的50%,但是你可以根據(jù)自己的需要進(jìn)行調(diào)整。
* {
-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>