【问题标题】:IE8 CSS Relative position extra whitespaceIE8 CSS 相对位置额外的空白
【发布时间】:2013-04-24 23:10:52
【问题描述】:

我遇到了一个我无法解决的问题,当我将Position:relative; 添加到一个 div 时,它会出现一个白色边框,或者像图像中的额外空间

如果我删除 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 任何帮助表示赞赏

【问题讨论】:

  • 你试过clear:both 吗?不确定它是否有帮助,但这可能是问题
  • 我想我做到了,会再试一次以确保
  • 是的,还是一样,没有帮助:-(
  • .content 的 z-index 为负,无论出于何种原因。它在 ie.css 中定义。当我停用它时,我没有得到白色边框。不过,我只能在 IE8 模式下测试 IE10,不能使用原始 IE8。
  • 太奇怪了...如果(调试)我取消选中/再次检查:body * {visibility:hidden;} 所有页面消失并替换为黑色背景,但白色“边框”仍然存在。我勒个去。但行为取决于您选择的 DIV...(?)仍在搜索,希望我们可以帮助您解决这个奇怪的问题...

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


【解决方案1】:

好吧,好吧,好吧,我想我知道那个战略边界是从哪里来的。

来自那篇文章:

.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 来实现轮换和那些东西......

抱歉信息不完整,至少我们可以定位问题出在哪里...我继续研究,但现在也许您或其他用户知道这一点,可以帮助解决它。

【讨论】:

  • 伙计,这就像一个魅力 :-) 非常感谢您的付出,声誉正在等待您的完整信息“答案”:D
  • 很高兴为您提供帮助! “He-Who-Must-Not-Be-Named”浏览器的 CSS 问题是真正的噩梦! ;)
  • 是的,我通常不支持低于 9 的 Suppert IE,我讨厌它,但我不得不这样做
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    问题在于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;
    }
    

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

    【讨论】:

    • 对不起...我的回答有什么不同?
    • @Arkana 不多。我们几乎在同一时间找到了答案。我不知道你已经回答了。
    猜你喜欢
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 2011-10-03
    • 2016-09-02
    • 1970-01-01
    • 2017-06-13
    • 2015-08-13
    • 2016-01-23
    相关资源
    最近更新 更多