在我的页面上,我有一个包含以下CSS规则的元素:
.pointer {
position: fixed;
background-repeat: no-repeat;
background-position: center;
top: 70%;
z-index: 1;
width: 3%;
height: 6%;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
float: left;
left: 0;
background-image: url("img/myImage.jpg");
}
在我测试的浏览器中运行良好,只有Opera不喜欢它。滚动时,背景图像也会“滚动”,因此从容器中移出时会消失 我认为这是一个已知问题,但我仍然无法找到解决方案。
在this page上描述了如何从Opera隐藏CSS规则的方法,但除了这篇文章是anno 2002之外,我实际上不想使用CSS hacks。
删除overflow: hidden
无法解决问题,添加background-attachment: fixed
也无济于事。还有其他想法或解决方案吗?
答案 0 :(得分:2)
我看了你的小提琴项目。我认为这个问题是由背景图像和边框半径应用于同一个元素造成的,老实说我无法解释为什么这只发生在歌剧中。
但一个简单的解决方案是将锚包装在div中并在每个之间拆分样式,确保背景图像和半径位于不同的元素上。
我已经创造了一个可能的解决方案的小提琴,它需要一些整理,但我认为它会让你走上正轨 - http://jsfiddle.net/zyj6Z
CSS如下:
.link {
-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4d000000, endColorstr=#4d000000)";
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4d000000, endColorstr=#4d000000);
zoom: 1;
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBvbHlnb24gZmlsbD0iI2ZmZiIgcG9pbnRzPSIyLjc2OSw3Ljk5MiAxMC43NjIsMCAxMy4xMzIsMi4zNjIgNy42MDQsNy44OTkgMTMuMjMxLDEzLjUyOCAxMC43NjIsMTYgMi43NjksOC4wMDcgMi43NzYsOCIvPjwvc3ZnPg==");
background-position: center;
background-repeat: no-repeat;
width: 10%;
height: 10%;
position: fixed;
top: 70%;
left: 0;
}
.test {
width: 10%;
height: 10%;
position: fixed;
top: 70%;
left: 0;
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
overflow: hidden;
-webkit-border-radius: 0 5px 5px 0;
-moz-border-radius: 0 5px 5px 0;
border-radius: 0 5px 5px 0;
background-color: #000000;
background-color: transparent\9;
background-color: rgba(0, 0, 0, 0.3);
text-indent: 100%;
white-space: nowrap;
}
和HTML在这里:
<div class="outer">
<div class="wrap">
<h1>Stuff</h1>
<div class="test">
<a href="#" class="link">Hide me!</a>
</div>
<ul>
<li>
<img src="//placehold.it/150x150" />
</li>
<li>
<img src="//placehold.it/150x150" />
</li>
<li>
<img src="//placehold.it/150x150" />
</li>
<li>
<img src="//placehold.it/150x150" />
</li>
<li>
<img src="//placehold.it/150x150" />
</li>
<li>
<img src="//placehold.it/150x150" />
</li>
<li>
<img src="//placehold.it/150x150" />
</li>
<li>
<img src="//placehold.it/150x150" />
</li>
<li>
<img src="//placehold.it/150x150" />
</li>
</ul>
</div>
我希望这会有所帮助。