我正在尝试实施Likert量表UI。我想把绿线放在单选按钮后面。我尝试更改z-index
,但没有运气......
#container {
text-align: justify;
background-color: #ff5050;
position: relative;
}
.line {
width: 100%;
height: 2px;
background-color: green;
position: absolute;
top: 5px;
z-index: 0;
}
input[type=radio] {
display: block;
margin: auto;
z-index: 1;
}
.box {
width: 60px;
vertical-align: top;
display: inline-block;
text-align: center;
}
.stretch {
width: 100%;
display: inline-block;
}

<div id="container">
<div class="box">
<input type="radio" name="radio"/>
<label>A</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>B</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>C</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>D</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>E</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>F</label>
</div>
<div class="line"></div>
<span class="stretch"></span>
</div>
&#13;
答案 0 :(得分:2)
z-index
只能与position
一起使用。
将position
添加到input[type=radio]
符合您的要求。
#container {
text-align: justify;
background-color: #ff5050;
position: relative;
}
.line {
width: 100%;
height: 2px;
background-color: green;
position: absolute;
top: 5px;
z-index: 0;
}
input[type=radio] {
position:relative;
display: block;
margin: auto;
z-index: 1;
}
.box {
width: 60px;
vertical-align: top;
display: inline-block;
text-align: center;
}
.stretch {
width: 100%;
display: inline-block;
}
<div id="container">
<div class="box">
<input type="radio" name="radio"/>
<label>A</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>B</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>C</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>D</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>E</label>
</div>
<div class="box">
<input type="radio" name="radio"/>
<label>F</label>
</div>
<div class="line"></div>
<span class="stretch"></span>
</div>
答案 1 :(得分:1)
请注意,z-index
仅适用于position
的元素。因此,您的input
元素未应用z-index
,并采用默认值0
。
层次结构有点复杂,.box
是.line
的兄弟。因此,您的所有.box
元素都与您的行z-index
相等。
要在备注后面加上一行,您需要为-1
使用.line
的值。请注意,这实际上会将.line
放在容器后面,因为它也默认为0
。因此,您还需要在-1
上设置#container
的值。
最终,您需要确保四件事:
.line
z-index
等于或大于#container
.box
的{{1}}高于z-index
.line
input
等于或大于z-index
.box
的所有元素也都有z-index
这可以在以下内容中看到,它仅在position
和-1
上设置z-index
#container
:
.line
#container {
text-align: justify;
background-color: #ff5050;
position: relative;
z-index: -1;
}
.line {
width: 100%;
height: 2px;
background-color: green;
position: absolute;
top: 5px;
z-index: -1;
}
input[type=radio] {
display: block;
margin: auto;
}
.box {
width: 60px;
vertical-align: top;
display: inline-block;
text-align: center;
}
.stretch {
width: 100%;
display: inline-block;
}
希望这有帮助! :)