Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Меню на div ах - CSS (https://javascript.ru/forum/xhtml-html-css/29329-menyu-na-div-akh-css.html)

bayah 24.06.2012 06:47

Меню на 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>

devote 24.06.2012 07:28

Можно так, но оно не будет работать в 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>

devote 24.06.2012 07:29

для IE7-8 можно добавить класс к последнему диваку и повесить на него правило в CSS, либо все это сверстать немного иначе.

bayah 25.06.2012 08:33

Мерси большое, разобрался.)


Часовой пояс GMT +3, время: 16:56.