css - 对齐基于网格的表单元素及其标签

标签 css

我们有一个要求,其中表单元素被布置在 3 个单独的列中。标签可以有不同数量的文本,表单元素主要是输入框和文本区域。

设计人员希望确保输入元素正确垂直对齐。我们无法使用特定的填充/边距,因为这在应用程序本地化时不灵活。

请看下图。第一行显示了我们遇到的问题,第二行是我们希望如何布置。我们想到的唯一解决方案是将标签放在实际表单元素的单独行中。我无法想象这对可访问性会有好处。

任何提示真的很感激。

enter image description here

到目前为止,这是代码的一部分 - http://jsfiddle.net/nJZ6Y/4/

<div class="grid_4"> <div class="contents"> <label>TR 1 TD 1</label> <input type="text" /> </div> </div> <div class="grid_4"> <div class="contents"> <label>Bonorum Fermentum Tortor Adipiscing Pharetra</label>

最佳答案

这是 fiddle :http://jsfiddle.net/nJZ6Y/19/

您必须在每个 label 中添加一个 span,然后添加这些 CSS 规则。

label {
    min-height: 3em;
}

label span {
    vertical-align: -3em;
    display: inline-block;
}

关于css - 对齐基于网格的表单元素及其标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19005614/

相关文章:

css - flexbox 元素中的 flex-shrink 属性有什么作用?

javascript - 在 tiff img 之上覆盖 Canvas

html - div 周围的样式边框

javascript - 从输入到不同 div 的多个图像预览

css - 结合 CSS 伪类 nth-child 而不是

html - CSS3 动画和过渡一起

javascript - 无法在 React Web App 中导入 css 文件

css - 图像大小浏览器高度 - X 像素数。纯 CSS!

javascript - 内联 CSS 以对齐社交分享图标

javascript - 问题淡出选择器