繁体   English   中英

如何克服IE7填充问题?

[英]How to overcome IE7 padding issues?

IE7让我发疯。 我知道这是一件小事,但我不知道Google还有什么,而且我知道我缺少一些很小的东西。

<div id="spotlightHolder">
<div id="spotlight">
    <div id="spotlightMessage">
        <h1 id="spotlightTitle">Lorem ipsum dolor sit amet.</h1>
        <p id="spotlightDescription">Lorem ipsum dolor, consectetur adipiscing elit. Curabitur massa mi, pharetra vitae luctus at, rutrum posuere quam. Integer pharetra tincidunt vehicula. Vestibulum nec purus id purus sodales hendrerit sit.</p>
        <a id="spotlightBotton" href="#" title="Click here to get our Special"></a>
    </div>
</div>
</div>

上面代码的css是:

div#spotlightHolder
{
    background:url(../images/below-menu-gradient.jpg) repeat-x;
    height:100%;
    padding:34px 0 0 0;
}

div#spotlight
{
    height:325px;
    background-color:#00aff0; /* Sky blue */
    background: rgb(0,175,240) url('../images/spotlight.jpg') no-repeat center center;
}

div#spotlightMessage
{
    width:550px;
    height:210px;
    /*margin:0 0 0 315px;*/
    /*padding:70px 0 0 315px;*/
    /*margin:0;*/
    padding-top:70px;
    padding-left:315px;
    text-align:left;
}

div#spotlightMessage p
{
    font-size:22px;
    font-weight:bolder;
    margin:0 0 10px 0;
}

div#spotlightMessage h1#spotlightTitle
{
    color:White;
    font-size:35px;
    margin:0 0 17px 0;
}

以上所有结果是,在IE7中,与FF,Chrome,Safari甚至是IE8相比,div id = spotlight中的文本块更右。 谁能发现错误?

谢谢,地理

注意:我正在使用YUI CSS Reset库,因为一个SO问题建议针对类似的错误进行此操作,但这不能解决该错误。

注意2:我使用的是doctype:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

重要的提示:

通过在CSS上的div#spotlightMessage中添加margin-right:400px,IE7问题已得到解决。 由于我不知道为什么会发生这种行为,因此我将第一个以投票方式做出解释的人标记为被接受的答案。 感谢你的帮助。

确保在doctpye声明之前没有任何空格/字符。

同样,这可能与保证金崩溃有关(但是我现在不能告诉你,我刚刚醒来,现在我更像一个僵尸:D)

但是,您没有告诉我们该页面是否有效。 您可能在那里还有一些嵌套元素。 因此,我认为最好的方法是将其放到网上并给我们链接:)

编辑

解决IE唯一问题(并且有很多IE唯一问题,尤其是6 + 7)的最好方法是使用IE的“功能”,它使您有条件地仅包括IE的样式信息。

在此处通过示例进行描述: http : //dustinbrewer.com/css-trick-target-only-ie-with-an-if-statement/

我的答案的先前版本指出了IE的“快速修复方法”,该方法只在IE中包含一个样式元素。 正如评论中指出的那样,有很多理由不这样做,其唯一积极的方面是它的快速性:

后续版本的答案如下

我将使用IE下划线hack来解决此问题,这是我发现的第一个链接:

http://dustinbrewer.com/weekly-css-trick-the-ie-underscore-hack/

基本上,您在css属性前加上下划线,只有IE6和IE7会使用该属性。 因此,您可以执行_right -34px ,并且只会影响IE 8之前的版本。

或者在这种情况下将其更改为

  padding-left:315px;
  _padding-left:122px;

第一个会影响所有其他浏览器,第二个行只会针对IE进行级联

从表面上看,您的CSS看起来不错。 查看所有CSS,特别是适用于body的CSS,将很有用,但这似乎是父元素的问题。 尝试为div#spotlightHolder设置固定宽度或百分比宽度。

尝试使用Eric Meyer的CSS重置工具,而不是浪费时间专注于IE的怪癖。

http://meyerweb.com/eric/tools/css/reset/

并且为什么不将550px宽度分配给.spotlightholder以便继承呢?

我真的很喜欢做CSS重置的蓝图

它使跨浏览器获得一致的布局变得非常容易,并且被广泛使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM