0

我试图让图像出现在站点左侧的装订线中,因此图像的右侧始终在站点内容旁边可见。这适用于 IE8+ 和其他浏览器,只是不适用于 IE7,它似乎忽略了浮动。

在 IE7 模式下查看(以及 IE8 或 Chrome 或 FF 以获得所需的结果):http: //jsfiddle.net/ehEym/2/embedded/result/ - 基本上图像右侧的蓝色条应该在站点旁边可见

包括代码:

<div id="main"><h1>The main content</h1><p>Text</p></div>
<div id="left">
  <img src="http://upload.wikimedia.org/wikipedia/commons/b/bf/Test_card.png" />
</div>

风格:

#main {
    width:300px;
    margin:0 auto;
    background-color:grey;
}
#left {
    position: fixed;
    display: block;
    top: 0px;
    left: 50%;
    border: 0px;
    margin-left: -350px;
    padding: 0px;
    overflow: hidden;
    z-index: 100000;
    width: 200px;
}
#left img {
    border: 0px;
    float: right;
}

有任何想法吗?

4

2 回答 2

1

看起来好像 IE7 不允许img溢出到包装器的左侧#left即使它已float: right应用。因此,div与较宽的宽度相比,包装器的较窄宽度img使其无法做任何事情,除了将其左边缘与包装器的左边缘对齐。可以在这个 fiddle 中看到对此的修复,我在其中添加了一个margin-left等于img宽度的负数:

#left img {
    border: 0px;
    float: right;
    margin-left: -640px; /* <-- equal to img width */
}

我建议仅针对 IE7 以有针对性的方式执行此操作。虽然它似乎没有对 Firefox 或 IE9+ 产生不利影响(我没有测试 Webkit),但它确实导致了 IE8 的显示问题。由于其他浏览器不需要它,因此应该使用条件注释或其他一些针对该 CSS 的 IE7 的方法。

于 2013-05-28T13:37:04.623 回答
0

考虑到您想要做什么,您提供的 CSS 代码有点奇怪,因为很难计算图像应该将自身放置在哪里,并且在另一个具有以 px 为单位定义宽度的元素附近具有固定位置。IE7 必须因此而发挥作用。

基本上,您需要做的是在一侧有一个带有图像的列,而在另一侧有其余的内容。

更新的 CSS 代码

body {
    height:100%;
}
#main {
    width:80%;
    padding-left:20%;
}
#left {
    position: fixed;
    top:0;
    left:0;
    width:20%;
    height:100%;
}
#left img {
    display:block;
    width:100%;
    height:100%;
}

http://jsfiddle.net/ehEym/4/embedded/result/

那对你有用吗?或者您需要以页面为中心的内容?

于 2013-05-23T03:54:36.740 回答