我正在构建一个灵活的进度条,并带有许多约束条件。它需要能够包含任何数量的项目,这些项目都是相同的宽度,垂直居中,支持不同长度的内容,在IE9和更高版本中工作,并在旁边有一个图标,没有任何额外的标记。 display: table-cell
似乎是内部可能无限数量的项目的最合适的解决方案,以及很好地垂直对齐文本,和:之前将照顾的图标,这也将与top: 50%; translateY(-50%) method垂直对齐。IE表格单元父级和绝对定位伪元素的垂直居中错误
这看起来在现代浏览器上工作得很好,因为这里没有什么特别的感觉。但是,在任何版本的Internet Explorer中,这并不像我想的那样顺利。如果物品的高度可变,则图标不是垂直居中,而是最高的元素。 IE9支持translateY,因为我们在显示方面遇到了困难,所以它已经过时了:table/table-cell。即使IE11也无法做到这一点。
I have created a reduced test case on CodePen so you can see it in action:
这里的方法在Firefox工作完美的截图: 和失败在IE11:
我最初认为失败的元素没有被计算的高度是由于正确地在IE中,但边界是统一的,表明情况并非如此。
如果我将列表项目设置为display: inline-block
并手动设置它们的宽度,则图标垂直居中,但我希望保留表格单元格显示的更灵活的行为(如果可能的话)。
任何见解将不胜感激。提前致谢!
也就是说fiendlishy聪明。非常感谢,亚伦。 – 2014-12-03 19:49:28