【发布时间】:2014-12-28 22:07:30
【问题描述】:
我有一个图片库,只能使用 css 将图片滑入滑出。 示例见http://codepen.io/anon/pen/xmhzE?editors=110 或附加代码。
只要#images-div 没有设置overflow: hidden,它就可以正常工作。当溢出设置为隐藏时,单个图像的绝对定位不再起作用。当我对图像的left-property 使用负值时,它也适用于溢出隐藏。
overflow:hidden 是否改变了绝对子级的布局方式?
有没有人能解决这个问题?
来源
index.html:
<div id="images">
<img id="image1" src="http://i.imgur.com/dL3io.jpg" />
<img id="image2" src="http://i.imgur.com/qASVX.jpg" />
<img id="image3" src="http://i.imgur.com/fLuHO.jpg" />
<img id="image4" src="http://i.imgur.com/5Sd3Q.jpg" />
</div>
<div id="slider">
<a href="#image1">1</a>
<a href="#image2">2</a>
<a href="#image3">3</a>
<a href="#image4">4</a>
</div>
base.css:
body {
text-align: center;
}
#images {
width: 400px;
height: 250px;
/*overflow: hidden; if this is set absolute positioning of images breaks*/
position: relative;
background-color: red;
margin: 20px auto;
}
#images img {
width: 400px;
height: 250px;
display: block;
position: absolute;
top: 0px;
left: 400px;
z-index: 1;
opacity: 0;
transition: all linear 500ms;
-o-transition: all linear 500ms;
-moz-transition: all linear 500ms;
-webkit-transition: all linear 500ms;
}
#images img:target {
top: 0px;
left: 0px;
z-index: 9;
opacity: 1;
}
#slider a {
text-decoration: none;
background: #E3F1FA;
border: 1px solid #C6E4F2;
padding: 4px 6px;
color: #222;
}
#slider a:hover {
background: #C6E4F2;
}
【问题讨论】:
-
奇怪的是,如果您希望图像来自左侧,它可以正常工作,请参阅我的版本:codepen.io/anon/pen/xmhzE?editors=110
-
您是否在#images 中的“溢出:隐藏”行中发表了评论?然后就不行了
-
这真的很奇怪。如果您将 img 的位置从 400px 更改为 368px 或更低,它确实有效!任何高于它,它都会打破......:S
-
那是在 Chrome BTW 中。在 IE 中,无论 left-position 是什么值,它都根本不起作用。
-
这似乎是由于
transition造成的错误。使用 devtools 取消设置并再次设置position: absolute可以暂时修复它。
标签: css