Я пытаюсь сделать некоторые строки появляются (скажем, около 10 пикселей) после наведения мыши на изображение в нижней части изображения
Я видел это на веб-сайте MTV в разделе "Вам также понравятся эти" ниже каждого сообщения. Для этого используйте css-справочные спрайты.
Я схожу с ума после неоднократных неудачных попыток воссоздать. Все работает, за исключением основной линии на подъеме. Это мой код до сих пор
CSS
.yel_strip{background-position:-280px -495px; width:165px; margin:-8px 0 0 0; height:5px; position:absolute; display:none; z-index:1;}
.yel_strip:hover{ background:url(http://mtv.in.com/images/sprite_v1.png) no-repeat;}
HTML
<div class="movieL hover_thumb">
<div><a href=""><img width="165" height="93" alt="" src=""/></a>
<div class="yel_strip"></div>
</div> </div>
Любая помощь будет оценена. Спасибо.
Я сделал для вас рабочую скрипку без дополнительной разметки в вашем html: http://jsfiddle.net/PJMPw/3/
Ваш HTML:
<a href="#" class="hoverable">
<img src="http://placekitten.com/g/300/300" />
</a>
И CSS:
.hoverable {
display: block;
position: relative;
width: 300px;
height: 300px;
overflow: hidden;
}
.hoverable:hover:after {
bottom: 0;
}
.hoverable:after {
content: "";
position: absolute;
width: 100%;
height: 10px;
bottom: -10px;
left: 0;
background: -moz-linear-gradient(left, rgba(46,170,232,1) 0%, rgba(255,235,137,1) 100%);
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(46,170,232,1)), color-stop(100%,rgba(255,235,137,1)));
background: -webkit-linear-gradient(left, rgba(46,170,232,1) 0%,rgba(255,235,137,1) 100%);
background: -o-linear-gradient(left, rgba(46,170,232,1) 0%,rgba(255,235,137,1) 100%);
background: -ms-linear-gradient(left, rgba(46,170,232,1) 0%,rgba(255,235,137,1) 100%);
background: linear-gradient(to right, rgba(46,170,232,1) 0%,rgba(255,235,137,1) 100%);
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
Это HTML:
Замените http://yoururl
своим URL-адресом.
<div class="container">
<a href="http://yoururl" id="internal_image"><span></span></a>
</div>
Это CSS:
Замените адрес http//yourimage на ваш адрес изображения.
.container {
width: 165px;
height: 93px;
background: url('http//yourimage');
position: relative;
}
#internal_image {
display: blocK;
width: 165px;
height: 93px;
}
#internal_image:hover span {
display: block;
width: 165px;
height: 5px;
position: absolute;
background: url(http://mtv.in.com/images/sprite_v1.png) no-repeat;
background-position: -280px -495px;
bottom: 0;
}
EDIT: Добавлено ПРИМЕР: http://jsfiddle.net/BmwCe/3/
Простое, что вы можете сделать, это установить границу изображения при наведении.
т.е.
наценка
<div class="image-container">
<img src="../styles/images/Desert.jpg" />
</div>
CSS
.image-container {
display: inline-block;
position: relative;
}
.image-container img {
width: 100px;
height: 100px;
}
.image-container img:hover {
border-bottom: 5px solid green;
}
Если вы настаиваете на том, что хотите иметь фоновое изображение вместо границы, вы можете сделать это
<div class="image-container">
<img src="../styles/images/Desert.jpg" />
<div class="shiny-border"></div>
</div>
.image-container {
display: inline-block;
position: relative;
}
.image-container img {
width: 100px;
height: 100px;
}
.image-container .shiny-border {
position: absolute;
top: 90px; //subtract the height of the shiny-border from 100px which is the height // to have the inset effect of the image
height: 10px;
width: 100%;
display: none;
}
.image-container img:hover + .shiny-border {
display: block;
background-image: url(../styles/images/Hydrangeas.jpg);
}