【问题标题】:border and box-shadow issues with table-cell elements in IE 9/10IE 9/10 中表格单元格元素的边框和框阴影问题
【发布时间】:2013-11-20 15:51:11
【问题描述】:

我正在使用 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;

最后我发现了一些关于一个看似相似的问题的文章,解决方案被呈现为使用:

边框折叠:分开;

在元素上。但是,如果我这样做,我会在 IE 中得到以下结果:

很明显,顶部边框被渲染了。但不是看起来的任何其他样式。

这里出了什么问题,如何解决?

【问题讨论】:

    标签: html internet-explorer-9 internet-explorer-10 css


    【解决方案1】:

    经过进一步测试,我终于找到了问题的根源:

    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#dfdfdf',GradientType=0 ); /* IE6-8 */
    

    删除后,IE 立即开始渲染一切正常。如果有人知道为什么过滤器的设备会导致这样的问题,请分享您的智慧。谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多