这是困扰我的CSS小问题之一。

Stack Overflow周围的人如何在浏览器中始终垂直对齐复选框及其标签?

每当我在Safari中正确对齐它们(通常在输入上使用垂直对齐:基线),它们在Firefox和IE中就完全关闭了。

在Firefox中修复它,Safari和IE不可避免地被搞砸了。我每次编写表单时都在这上面浪费时间。

以下是我使用的标准代码:

<表单><div><label><input-type=“checkbox”/>标签文本</label></div></form>

我通常使用埃里克·迈耶的重置,所以表单元素相对来说没有覆盖。期待您提供的任何提示或技巧!


当前回答

尝试垂直对齐:中间

而且你的代码看起来应该是:<表单><div><input id=“blah”type=“checkbox”><label for=“blah“>标签文本</label></div></form>

其他回答

这不是解决问题的最佳方式

vertical-align: middle

将style=“position:relative;top:2px;”添加到输入框会将其向下移动2px。因此,根据您的字体大小,您可以移动它。

尝试我的解决方案,我在IE 6、FF2和Chrome中尝试过,它在所有三种浏览器中逐像素渲染。

* {填充:0px;边距:0px;}#世界银行{宽度:15px;高度:15px;浮动:左侧;}#某人标签{浮动:左侧;左侧填充:3px;}<div><input id=“wb”type=“checkbox”/><label for=“wb”id=“somelabel”>Web浏览器</label></div>

最简单的解决方案是

输入{垂直对齐:文本顶部;}

也许有些人也犯了和我一样的错误?这是。。。我为输入框设置了一个宽度,因为它们大多是“文本”类型,但后来忘记了覆盖复选框的宽度,所以我的复选框试图占据大量多余的宽度,因此很难在旁边对齐标签。

.checkboxlabel {
    width: 100%;
    vertical-align: middle;
}
.checkbox {
    width: 20px !important;
}
<label for='acheckbox' class='checkboxlabel'>
    <input name="acheckbox" id='acheckbox' type="checkbox" class='checkbox'>Contact me</label>

早在IE6(使用类选择器)以及Firefox、Safari和Chrome的最新版本中,提供了可点击的标签和正确的对齐方式

我从来没有这样做的问题:

<form>
  <div>
    <input type="checkbox" id="cb" /> <label for="cb">Label text</label>
  </div>
</form>