Меню на div ах - CSS
Есть div, в нем другие div'ы. Они должны увеличиваться при наведении на них курсора(:hover). При этом происходит естественное смещение остальных элементов из-за margin. Как сделать, так, чтобы этого не происходило, если таковое возможно?
Вот, код для наглядности:
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<style type="text/css">
div
{
background: #fff;
color: black;
border: 1px solid black;
margin: 20px;
}
.main
{
position: absolute;
left: 30%;
right: 30%;
top: 30%;
border: 0px solid black;
}
.vintage
{
border: 1px solid black;
/*margin: 10px;*/
/*padding: 10px;*/
}
.vintage > div:hover {
background: #000;
color: white; /* Цвет ссылок при наведении на них курсора мыши */
border: 10px solid black;
margin: 0px;
}
</style>
</head>
<body>
<div class = "main">
<div class = "vintage">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
<div>Five</div>
</div>
</div>
</body>
</html>
|
Можно так, но оно не будет работать в IE7-8 так как там нет поддержки псевдо-класса last-child
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<style type="text/css">
div
{
background: #fff;
color: black;
border: 1px solid black;
margin: 20px;
}
.main
{
position: absolute;
left: 30%;
right: 30%;
top: 10%;
border: 0px solid black;
}
.vintage
{
border: 1px solid black;
/*margin: 10px;*/
/*padding: 10px;*/
}
.vintage > div:hover {
background: #000;
color: white; /* Цвет ссылок при наведении на них курсора мыши */
border: 10px solid black;
margin: -9px 0;
}
.vintage > div:first-child:hover {
margin-top: 11px;
}
.vintage > div:last-child:hover {
margin-bottom: 11px;
}
</style>
</head>
<body>
<div class = "main">
<div class = "vintage">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
<div>Five</div>
</div>
</div>
</body>
</html>
|
для IE7-8 можно добавить класс к последнему диваку и повесить на него правило в CSS, либо все это сверстать немного иначе.
|
Мерси большое, разобрался.)
|
| Часовой пояс GMT +3, время: 18:39. |