Выскальзывающие блоки на CSS3

C помощью нескольких простых трансформаций CSS3 мы сделаем эффектный выскальзывающий блок. При наведении на него курсора мыши заголовок будет сменяться более детальной информацией, которая будет привлекать внимание посетителя своей динамикой. В полной красоте решение можно посмотреть в современных браузерах, которые поддерживают трансформации CSS3. А в IE блок будет работать как обычная ссылка.

 

Шаг 1

		<section class="slide-up-boxes">

			<a href="http://wufoo.com" target="_blank">
				test_1
			</a>
				
			<a href="http://digwp.com" target="_blank">
				test_2
			</a>
			
			<a href="http://quotesondesign.com" target="_blank">
				test_3
			</a>

		</section>

По своей сути, каждый блок является ссылкой, в которой размещаются дополнительные элементы с информацией. Все блоки помещаются в один контейнер.

Сформируем внешний вид ссылок, чтобы они стали похожи на блоки:

		.slide-up-boxes a { 
			display: block; 
			margin: 0 0 20px 0; 
			background: rgba(215, 215, 215, 0.5); 
			border: 1px solid #ccc; 
			height: 65px; 
		}

Наши ссылки будут иметь следующий вид:

 

Шаг 2

Идея наших информационных блоков заключается в том, что он состоит из двух кадров, которые будут сменяться при наведении курсора мыши. Поэтому добавим элементы, которые будут формировать кадры для нашего блока.

		<section class="slide-up-boxes">

			<a href="http://wufoo.com" target="_blank">
				<h5>Над чем я работаю...</h5>
				<div>Wufoo - онлайновый построитель форм. Легко справится даже со сложными формами!</div>				
			</a>
				
			<a href="http://digwp.com" target="_blank">
				<h5>Книга, которую я пишу...</h5>
				<div>"Digging Into WordPress" - книга и блог, которые я пишу вместе с Jeff Starr, о платформе №1.</div>				
			</a>
			
			<a href="http://quotesondesign.com" target="_blank">
				<h5>Цитаты, которые я собираю...</h5>
				<div>"Quotes on Design" - коллекция цитат о дизайне. Есть API для интеграции (цитаты на английском)!</div>				
			</a>

		</section>

Здесь блочные элементы h5 и div внутри строчного элемента a. Для преодоления данного момента служит свойство display: block, которое установлено для ссылки.

Наши блоки будут иметь вид:

Но наш блок показывает оба кадра. Чтобы скрыть кадр элемента div установим для элемента h5 такую же высоту что для ссылки. А самой ссылке добавим свойство overflow: hidden, которое будет скрывать все, что выходит за рамки элемента. Также установим для элемента h5 выравнивание по центру нашего блока - установим для него центрирование по горизонтали и высоту строки, равной высоте блока:

		.slide-up-boxes a { 
			display: block; 
			margin: 0 0 20px 0; 
			background: rgba(215, 215, 215, 0.5); 
			border: 1px solid #ccc; 
			height: 65px;
			overflow: hidden; 			
		}
		
		.slide-up-boxes h5 { 
			text-align: center;
			height: 65px; 
			line-height: 65px;
		}

Вот что получается в итоге:

 

Шаг 3

Теперь займемся сменой кадров. Установим для нашего элемента div в блоке высоту и отступы для формирования внешнего вида. А смену кадров будем осуществлять установкой поля с отрицательным значением равным высоте блока для ссылки. Таким образом, первый кадр (элемент h5) будет смещаться за предлы блока и становиться невидимым, а на его место будет подниматься второй кадр (элемент div ).

		.slide-up-boxes a:hover h5 { 
			margin-top: -65px; 
		}

		.slide-up-boxes div { 
			height: 45px; 
			padding: 10px; 
		}

 

Шаг 4

Итак, смена кадров работает. Настал черед сформировать эффектный внешний вид. Для решения задачи воспользуемся трансформациями CSS3. Для первого кадра плавно трансформироваться будет значение верхнего поля. А второй кадр мы будем немного поворачивать и менять прозрачность, так как повернутый текст немного вылазит снизу.

		.slide-up-boxes h5 { 
			text-align: center;
			height: 65px; 
			line-height: 65px;
     		-webkit-transition: all 0.2s linear; 
			-moz-transition: all 0.2s linear; 
			-o-transition: all 0.2s linear;

		}

		.slide-up-boxes a:hover h5 { 
			margin-top: -65px; 
		}

		.slide-up-boxes div { 
			height: 45px; 
			padding: 10px; 
			opacity: 0; 
			-webkit-transform: rotate(6deg); 
			-webkit-transition: all 0.4s linear; 
			-moz-transform: rotate(6deg); 
			-moz-transition: all 0.4s linear; 
			-o-transform: rotate(6deg); 
			-o-transition: all 0.4s linear; 
		}
		
		.slide-up-boxes a:hover div { 
			opacity: 1; 
			-webkit-transform: rotate(0); 
			-moz-transform: rotate(0); 
			-o-transform: rotate(0); 
		}

 

Шаг 5

Теперь добавим картинки во второй кадр. Воспользуемся селектором для выделения потомков элемента по номеру:

		.slide-up-boxes a:nth-child(1) div { background: #c73b1b url(images/wufoo.png) 17px 17px no-repeat; padding-left: 120px; }
		.slide-up-boxes a:nth-child(2) div { background: #367db2 url(images/diw.png) 21px 10px no-repeat; padding-left: 90px; }
		.slide-up-boxes a:nth-child(3) div { background: #393838 url(images/qod.png) 14px 16px no-repeat; padding-left: 133px; }
	

Остается только "причесать" внешний вид наших блоков. То есть нужно подобрать цвет фона, размер и начертание шрифта, ширину поле и так далее. Полный код CSS для блоков будет иметь следующий вид:

		.slide-up-boxes a { 
			display: block; 
			height: 130px; 
			margin: 0 0 20px 0; 
			background: rgba(215, 215, 215, 0.5); 
			border: 1px solid #ccc; 
			height: 65px; 
			overflow: hidden; 
		}
		
		.slide-up-boxes h5 { 
			color: #333; 
			text-align: center;
			height: 65px; 
			font: italic 18px/65px Georgia, Serif;    /* Вертикальное центрирование текста за счет равных высот строки и элемента */
			 opacity: 1;
			 -webkit-transition: all 0.2s linear; 
			 -moz-transition: all 0.2s linear; 
			 -o-transition: all 0.2s linear;
		}
		
		.slide-up-boxes a:hover h5 { 
			margin-top: -65px; 
			opacity: 0; 
		}
		
		.slide-up-boxes div { 
			position: relative; 
			color: white; 
			font: 12px/15px Georgia, Serif;
			height: 45px; 
			padding: 10px; 
			opacity: 0; 
			-webkit-transform: rotate(6deg); 
			-webkit-transition: all 0.4s linear; 
			-moz-transform: rotate(6deg); 
			-moz-transition: all 0.4s linear; 
			-o-transform: rotate(6deg); 
			-o-transition: all 0.4s linear; 
		}
		.slide-up-boxes a:hover div { 
			opacity: 1; 
			-webkit-transform: rotate(0); 
			-moz-transform: rotate(0); 
			-o-transform: rotate(0); 
		}
		.slide-up-boxes a:nth-child(1) div { background: #c73b1b url(images/wufoo.png) 17px 17px no-repeat; padding-left: 120px; }
		.slide-up-boxes a:nth-child(2) div { background: #367db2 url(images/diw.png) 21px 10px no-repeat; padding-left: 90px; }
		.slide-up-boxes a:nth-child(3) div { background: #393838 url(images/qod.png) 14px 16px no-repeat; padding-left: 133px; }

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/2KGZG2MUh2c/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Выскальзывающие блоки на CSS3 | | 2012-06-19 11:59:32 | | Статьи Web-мастеру | | C помощью нескольких простых трансформаций CSS3 мы сделаем эффектный выскальзывающий блок. При наведении на него курсора мыши заголовок будет сменяться более детальной информацией, которая будет | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: