在 Web 开发中,经常需要展示左右结构的表单。如下所示:

面对这张图,最先想到的实现方式就是借助浮动:

基本的结构就这样,看起来挺好的。

但是有一个忧伤的地方,左侧form-key部分的宽度太烦人,不同的表单form-key部分存在宽度差异,很难统一。如果把form-key部分统一设置成一个比较大的值,那么在form-key比较短的表单里面会非常难看。这样一来,只能选择不同的表单设置不同的form-key的宽度值,很烦人。

如何让左侧的宽度自适应呢?

从一位前端牛人学习到如下利用table布局的写法:

此处form-operations部分有点小问题,form-operations是一个table-row,所以直接子元素应该是table-cell,改一改就好了。

同时也因为这个手误,发现在 IE9 中,鼠标 hover 到table-row上面去之后,会触发下面第一个button的 hover 效果。