我正在使用CSS display: table-cell
来显示彼此相邻的一堆 LI 元素。这些都是丰富的风格,有这样的预期外观:
然而,在IE 9和10中,它呈现如下:
我无法弄清楚这里有什么问题,但是当我通过实验将 LI -Elements设置为display: block
时,元素突然变得很好。
这是CSS:
display: table-cell;
height: 27px;
line-height: 26px;
text-align: center;
box-shadow: inset 1px 1px 0px 0px #ffffff;
-moz-box-shadow: inset 1px 1px 0px 0px #ffffff;
-webkit-box-shadow: inset 1px 1px 0px 0px #ffffff;
-ms-box-shadow: inset 1px 1px 0px 0px #ffffff;
-o-box-shadow: inset 1px 1px 0px 0px #ffffff;
background: #ededed; /* Old browsers */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSI1JSIgc3RvcC1jb2xvcj0iI2VkZWRlZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNkZmRmZGYiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, #ededed 5%, #dfdfdf 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(5%,#ededed), color-stop(100%,#dfdfdf)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #ededed 5%,#dfdfdf 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #ededed 5%,#dfdfdf 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #ededed 5%,#dfdfdf 100%); /* IE10+ */
background: linear-gradient(to bottom, #ededed 5%,#dfdfdf 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#dfdfdf',GradientType=0 ); /* IE6-8 */
border: 1px solid #b7b7b7;
border-right: 0;
text-decoration: none;
cursor: pointer;
最后,我发现了一些关于看似类似问题的文章,解决方案呈现为使用:
border-collapse:separate;
元素上的。但是,如果我这样做,我会在IE中得到以下结果:
很明显,顶部边框会被渲染。但似乎没有任何其他风格。
这里有什么问题,如何解决?
答案 0 :(得分:0)
经过进一步测试后,我终于找到了问题的根源:
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#dfdfdf',GradientType=0 ); /* IE6-8 */
删除后,IE开始立即渲染一切。如果有人知道为什么过滤器的设备会导致这样的问题,请分享您的智慧。谢谢!