我希望复选框2em高,2em宽,旁边有一些括号中的小文本:(check box to agree to these terms)
xxxxxxxxxxx
xxxxxxxxx∎x
xxxxxxx∎xxx
xxxxxx∎xxxx (check box to agree to these terms)
x∎xx∎xxxxxx
xxx∎xxxxxxx
#container {
height: 3em
}
input {
height: 2em;
width: 2em
}
.legal {
vertical-align: middle
}
<div id="container">
<input type="checkbox">
<div class="legal">(check box to agree to these terms)</div>
<div>
我没有成功通过将文本封装在容器div中,设置其高度以及在文本上使用vertical-align: middle
来使文本垂直移动。
答案 0 :(得分:1)
术语div应该有display:inline-block;
,因为你想使它与复选框一致。容器应该有line-height
而不是height
,因为vertical-align
仅适用于line-height
#container {
line-height: 3em;
vertical-align: middle;
}
input {
height: 2em;
width: 2em;
vertical-align: middle;
}
.legal {
display:inline-block;
width:auto;
}
答案 1 :(得分:1)
有很多方法可以做到 - 请参阅以下部分内容:
解决方案1 :内联块
对inline-block
和input
元素使用legal
,并将它们垂直对齐到中间:
#container {
height: 3em
}
input {
height: 2em;
width: 2em;
display: inline-block;
vertical-align: middle;
}
.legal {
display: inline-block;
vertical-align: middle;
}
&#13;
<div id="container">
<input type="checkbox">
<div class="legal">(check box to agree to these terms)</div>
<div>
&#13;
解决方案2 :表格显示
对容器使用table
,对table-cell
和input
元素使用legal
:
#container {
height: 3em;
display: table;
}
input {
height: 2em;
width: 2em;
display: table-cell;
vertical-align: middle;
}
.legal {
display: table-cell;
}
&#13;
<div id="container">
<input type="checkbox">
<div class="legal">(check box to agree to these terms)</div>
<div>
&#13;
解决方案3 : Flexbox
只需使用flex
作为容器,然后使用align-items: center
垂直居中:
#container {
height: 3em;
display: flex;
align-items: center;
}
input {
height: 2em;
width: 2em;
}
.legal {
}
&#13;
<div id="container">
<input type="checkbox">
<div class="legal">(check box to agree to these terms)</div>
<div>
&#13;