2
画像があります。この例では、width: 320px;
とheight: 200px;
です。 オーバーレイは、と正常に動作している:オーバーレイコンテナのサイズを画像内と同じにします
.overlay-content {
width: 320px;
height: 200px;
...
}
しかし、私は
img {
...
}
のような画像のセット宣言は、そこには、幅と知らずにそれを行うための方法であることはできません高さは.overlay-content
で、宣言は<img>
に設定されていませんか?その大きさは画像と同じになるようにあなたは、display:inline-block;
又はdisplay:table;
としてオーバーレイを設定することができる
img {
/* You can't do anything here */
}
.overlay {
position: relative;
margin: 50px;
}
.overlay-content {
position: absolute;
/* This you don't know */
width: 320px;
/* This you don't know */
height: 200px;
top: 0;
background: grey;
opacity: 0;
transition: opacity .3s ease;
}
.overlay-content div {
position: absolute;
height: 100%;
width: 0%;
overflow: hidden;
right: 0;
background: orange;
transition: width .3s ease-in-out;
}
.overlay-content div ul {
display: block;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
list-style-type: none;
}
.overlay-content div ul li {
position: relative;
height: 33.3333%;
width: 0%;
text-align: center;
overflow: hidden;
transition-property: width;
transition-delay: .2s;
transition-duration: .5s;
transition-timing-function: ease;
}
.overlay-content div ul li span,
.overlay-content div ul li a {
position: absolute;
display: block;
width: 100%;
top: 50%;
margin-top: -25px;
font-size: 22px;
height: 50px;
line-height: 50px;
vertical-align: middle;
color: yellow;
}
.overlay:hover > .overlay-content {
opacity: 1;
}
.overlay:hover > .overlay-content div {
width: 50%;
}
.overlay:hover > .overlay-content div ul li {
width: 100%;
}
<div class="overlay">
<img src="http://placehold.it/320x200" />
<div class="overlay-content">
<div>
<ul>
<li><a href="#">First</a>
</li>
<li><span>Second</span>
</li>
<li><span>Third</span>
</li>
</ul>
</div>
</div>
</div>
<div class="overlay">
<img src="http://placehold.it/320x200" />
<div class="overlay-content">
<div>
<ul>
<li><a href="#">First</a>
</li>
<li><span>Second</span>
</li>
<li><span>Third</span>
</li>
</ul>
</div>
</div>
</div>