IE8 CSS相对位置额外的空格

时间:2013-04-22 11:36:11

标签: html css internet-explorer internet-explorer-8

我遇到了一个我无法解决的问题,当我将Position:relative;添加到div时,它会显示为sorta一个白色边框,或者像图像enter image description here中那样的额外空格

如果我移除Position:relative;边框移动到父版本Position:relative;,这只是在IE8上。 标记:

<div class="content clearfix">
    Some content goes here
         <div class="block">
               <div class="block_content" style="display: block;">
                 Some content goes here
              </div>
          </div>
 </div>

CSS:

.content {
min-height: 100%;
height: 100%;
position: relative;
width:100%;
background-color:#ebebeb;
}
.block_content {
display:none;
position:relative;
margin: 25px 20px 15px 20px;
}
.block{
      overflow:hidden;
    width:58%;
    padding-bottom:60px;
float:right;
position:relative;
margin-right:10%;
background: rgb(222,222,222); /* Old browsers */
background: -moz-linear-gradient(top,  rgba(222,222,222,1) 0%, rgba(255,255,255,1) 0%, rgba(222,222,222,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(222,222,222,1)), color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(222,222,222,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  rgba(222,222,222,1) 0%,rgba(255,255,255,1) 0%,rgba(222,222,222,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  rgba(222,222,222,1) 0%,rgba(255,255,255,1) 0%,rgba(222,222,222,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  rgba(222,222,222,1) 0%,rgba(255,255,255,1) 0%,rgba(222,222,222,1) 100%); /* IE10+ */
background: linear-gradient(to bottom,  rgba(222,222,222,1) 0%,rgba(255,255,255,1) 0%,rgba(222,222,222,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#dedede',GradientType=0 ); /* IE6-9 */

            box-shadow: 6px 6px 14px #333333;
        -moz-box-shadow:6px 6px 14px #333333;
    -webkit-box-shadow: 6px 6px 14px #333333;
    }

演示链接:http://bank.benseno.com.tr/Sunus.html 任何帮助表示赞赏

3 个答案:

答案 0 :(得分:3)

嗯,好吧,好吧,我觉得我有这个噱头的边界。

来自那篇文章:

.maroon:before {
    border: 4px solid #FFFFFF;
    bottom: 0;
    content: "";
    display: block;
    left: 0;
    position: absolute; 
    right: 0;
    top: 0;
    z-index: -1;
}

如果您删除content:"";,则不再看到该边框。

似乎IE8正在与父母混淆。因此,如果您更改父position:relative或删除它,IE8会将此样式应用于上一个relative元素。我不知道这是否适用于您申请实现轮换的filter和那些东西......

对于不完整的信息表示抱歉,至少我们可以针对哪个问题...我继续学习,但现在也许你或其他用户知道这一点,可以帮助修复它。

答案 1 :(得分:1)

由于Web浏览器以非常特殊的方式处理默认CSS属性,因此在开始开发之前重置css始终是一个好习惯。在我的测试中,我能够解决应用Eric Meyers的重置css技术的问题,但重要的是要注意它在提供的代码是文档中唯一出现的代码的环境下工作。

查看您提供的示例网站,我可以看到您已经使用了CSS重置解决方案,但是您没有使用在HTML 5页面上思考的css重置(就像那个)。所以,我的建议是让你使用HTML5 Doctor CSS Reset。它基于Eric Meyer的解决方案,您可以在此处获取:http://www.cssreset.com/

答案 2 :(得分:1)

问题在于layout.css中的这一行(第480行):

.maroon:before{
    border: 4px solid #FFF;
    bottom: 0;
    content: "";
    display: block;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: -1;
}

删除边框和内容,或更改类。