作者:ar_wen2402851455 | 2023-09-01 15:43
正确对齐单选按钮/复选框与文本的最简洁方法是什么?到目前为止我唯一可靠的解决方案是基于表格:
有些人可能会对此不屑一顾.我花了一些时间(再次)调查一个无表格的解决方案,但失败了.我尝试了浮动,绝对/相对定位和类似方法的各种组合.不仅如此,他们主要依赖于单选按钮/复选框的估计高度,但它们在不同浏览器中的表现也不同.理想情况下,我想找到一个解决方案,它不会假设大小或特殊的浏览器怪癖.我很喜欢使用表格,但我想知道还有其他解决方案.
1> Jan Zich..:
我想我终于解决了这个问题.一个通常推荐的解决方案是使用vertical-align:middle:
Label
然而,问题是这仍然会产生明显的错位,即使理论上它应该起作用.CSS2规范说:
vertical-align:middle:将框的垂直中点与父框的基线加上父框的x高度的一半对齐.
所以它应该在完美的中心(x高度是角色x的高度).但是,问题似乎是由于浏览器通常会向单选按钮和复选框添加一些随机不均匀的边距.例如,在使用Firebug的Firefox中,可以检查Firefox中的默认复选框边距3px 3px 0px 5px
.我不知道它来自哪里,但其他浏览器似乎也有相似的边距.因此,为了获得完美的对齐,需要摆脱这些边缘:
Label
值得注意的是,在基于表格的解决方案中,边距以某种方式被吃掉,一切都很好地对齐.
一些不错的CSS,所以你不必设置每个按钮和框的样式 - 输入[type ="radio"],输入[type ="checkbox"] {vertical-align:middle; 保证金:0px; }
非常好的答案 - 研究得很好,而且很有效.我越看CSS,更多的本地化边距和填充设置似乎是关键.谢谢!
仅供参考,0后的px是多余的.当CSS值为0时,单位无关紧要,因此`margin:0`就足够了.
在使用此解决方案时,请记住检查同一行中其他元素的`vertical-align`(例如:`