【发布时间】:2018-03-14 21:32:35
【问题描述】:
我正在尝试在固定宽度的 div 中创建一个图例,其中包含彩色复选框和每个复选框的标签。我的问题是较长的标签会超过两行并将标签向下推到复选框下方,这看起来很糟糕:
如何将复选框和标签放在同一行,但保留换行符,并确保“France”和“territories”都具有相同的左缩进,而不是“territories”具有相同的缩进复选框?
JSFiddle:https://jsfiddle.net/6yLd6j1b/10/
完整代码:
<div id='legend'>
<div class="legend-container" id="areas">
<div class="checkbox france">
<input type="checkbox" checked="checked" class="area_type" id="france">
<label for="france"></label><div class="tag">France and its overseas territories</div>
</div>
<div class="checkbox germany">
<input type="checkbox" checked="checked" class="area_type" id="germany">
<label for="germany"></label><div class="tag">Germany</div>
</div>
</div>
</div>
#legend {
width: 200px;
}
#legend div {
margin-right: 5px;
}
.checkbox {
margin: 0 0 1.2em 0;
clear: both;
cursor: pointer;
}
.checkbox .tag {
display: block;
float: left;
}
.checkbox .area_type {
display: none;
}
.area_type + label {
cursor: pointer;
-webkit-appearance: none;
background-color: #fafafa;
border: 1px solid #cacece;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05);
padding: 7px;
display: block;
float: left;
position: relative;
top: 2px;
overflow: hidden;
border-radius: 5px;
margin-right: 5px;
}
.area_type:checked + label:after {
width: 100%;
height: 100%;
content: "";
position: absolute;
left: 0px;
top: 0px;
}
.france .area_type:checked + label:after {
background-color: #2c98a0;
}
.germany .area_type:checked + label:after {
background-color: #38b2a3;
}
【问题讨论】:
标签: css