CSS3 для начинающих. Часть 4.2. 3D ленты

CSS3 для начинающихПродолжаем изучать CSS3 с циклом статей CSS3 для начинающих. Сегодня продолжение четвертой части. Речь пойдет о создании 3D лент с помощью CSS3.

3D ленты.

Наша задача создать 3D ленты без использования изображений. В этом нам помогут свойства CSS3: box-shadow, border-radius, transform. Но обо всем по порядку.
С помощью box-shadow мы создадим выпадающую тень. Так же будем использовать RGBa модель задания цвета для получения нужных оттенков:

background: rgba(196,89,30,0.65);
-moz-box-shadow: 0px 0px 8px rgba(0,0,0,0.3);
-khtml-box-shadow: 0px 0px 8px rgba(0,0,0,0.3);
-webkit-box-shadow: 0px 0px 8px rgba(0,0,0,0.3);

С помощью border-radius мы создадим приятные закругленные углы у наших box элементов.

-moz-border-radius: 10px; /*radius of 10px*/
-khtml-border-radius: 10px;
-webkit-border-radius: 10px;

Мы также будем использовать несколько свойств для создания треугольных форм. Код ниже рисует треугольник:

.triangle {
	border-color: transparent #7d90a3 transparent transparent;
	border-style:solid;
	border-width:15px;
	height:0px;
	width:0px;
}

Мы будем использовать треугольники для создания эффекта глубины трехмерных фигур, например лент. box-shadow поможет нам передать глубину через тени. border-radius позволит нам создать закругление углов там, где это необходимо.
На изображении ниже можно увидеть общую схему создания 3D лент:
схема создания ленты
Мы создадим простое меню, используя списки. Так же воспользуемся свойством transform для создания приятного эффекта:

-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);

Вот, что мы получим в итоге:
3d лента на CSS3
Посмотреть демо

Подготовим HTML документ. Ниже приведу схему нашей разметки для наглядности:
Схема HTML документа
Как видно из схемы нам понадобятся:

  • основной контейнер (центрированный)
  • «пузырь» для контента
  • 3 элемента для ленты — прямоугольник и 2 треугольника.

Вот так будет выглядеть HTML разметка:


3D лента на CSS

Используется только CSS3!

В этом примере использовано несколько свойств CSS3. Вы можете наблюдать 3D эффект получаемый с использованием чистого CSS3.
Внимание: не работает в IE!

 

CSS код для стилизации основных блоков будет выглядеть так:

/* Reset */
html, body, div, span, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, font, img, ul, li {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}

:focus {
	outline: 0;
}
/* // Reset */

body {
	background: url(bck.jpg); /* фоновое изображение созданное в фотошоп с применением фильтр шума (gaussian monochromatic) к заливке #ccc*/
	font-family: Georgia, Verdana, “Lucida Sans Unicode”, sans-serif;
	font-size: 12px;
	color: #999;
}

h2 {
	font-style: italic;
	font-weight: normal;
	line-height: 1.2em;
}

div#container {
	margin: 50px auto 0px auto; /* центрирован */
	width: 400px;
}

.bubble {
	clear: both;
	margin: 0px auto;
	width: 350px;
	background: #fff;
	-moz-border-radius: 10px;
  -khtml-border-radius: 10px;
  -webkit-border-radius: 10px;
	-moz-box-shadow: 0px 0px 8px rgba(0,0,0,0.3);
  -khtml-box-shadow: 0px 0px 8px rgba(0,0,0,0.3);
  -webkit-box-shadow: 0px 0px 8px rgba(0,0,0,0.3);
	position: relative;
	z-index: 90; /* порядок показа: прямоугольник показывается над треугольниками*/
}

.rectangle {
	background: #7f9db9;
	height: 50px;
	width: 380px;
	position: relative;
	left:-15px;
	top: 30px;
	float: left;
	-moz-box-shadow: 0px 0px 4px rgba(0,0,0,0.55);
  -khtml-box-shadow: 0px 0px 4px rgba(0,0,0,0.55);
  -webkit-box-shadow: 0px 0px 4px rgba(0,0,0,0.55);
	z-index: 100; /* порядок показа: впереди */
}

.rectangle h2 {
	font-size: 30px;
	color: #fff;
	padding-top: 6px;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.2);
	text-align: center;
}

Добавим несколько блоков для создания и позиционирования наших треугольников (class="triangle-l", class="triangle-r") и один блок для контента (class="info").

.triangle-l {
	border-color: transparent #7d90a3 transparent transparent;
	border-style:solid;
	border-width:15px;
	height:0px;
	width:0px;
	position: relative;
	left: -30px;
	top: 65px;
	z-index: -1; /* показывается за "пузырем" */
}

.triangle-r {
	border-color: transparent transparent transparent #7d90a3;
	border-style:solid;
	border-width:15px;
	height:0px;
	width:0px;
	position: relative;
	left: 350px;
	top: 35px;
	z-index: -1; /* показывается за "пузырем" */
}

.info {
	padding: 60px 25px 35px 25px;
}

.info h2 {
	font-size: 20px;
}

.info p {
	padding-top: 10px;
	font-size: 14px;
	line-height: 22px;
}

.info p a {
	color: #c4591e;
	text-decoration: none;
}

.info p a:hover {
	text-decoration: underline;
}

Теперь создадим приятное меню сверху:



А вот и стили для нашего меню:

.menu {
	position: relative;
	top:3px;
	left: 50px;
	z-index: 80; /* порядок показа: показывается за "пузырем" (90) */
}

.menu ul li {
	-webkit-transform: rotate(-45deg); /* поворот пункта меню на 45 градусов */
	-moz-transform: rotate(-45deg); /* поворот пункта меню на 45 градусов */
	width: 50px;
	overflow: hidden;
	margin: 10px 0px;
	padding: 5px 5px 5px 18px;
	float: left;
	background: #7f9db9;
	text-align: right;
}

.menu ul li a {
	color: #fff;
	text-decoration: none;
	display:block;
}

.menu ul li.l1 {
	background: rgba(131,178,51,0.65);
}

.menu ul li.l1:hover {
	background: rgb(131,178,51);
}

.menu ul li.l2 {
	background: rgba(196,89,30,0.65);
}

.menu ul li.l2:hover {
	background: rgb(196,89,30);
}

.menu ul li.l3 {
	background: rgba(65,117,160,0.65);
}

.menu ul li.l3:hover {
	background: rgb(65,117,160);
}

.menu span {
	margin: 15px 80px 0px 0px;
	float:right;
}

Теперь мы видим наше простое меню.
3d лента на CSS3
Вот и готова наша 3D лента. Делитесь своими мыслями и впечатлениями в комментариях.

Посмотреть демо

Если вы ищите гдз по русскому языку за 7 класс Баранов, то вам поможет сайт http://www.megabotan.ru — здесь собрано огромное количество решебников, которые помогут не только ученикам, но и родителям.



Запись опубликована в рубрике CSS3 с метками , , , . Добавьте в закладки постоянную ссылку.

2 комментария: CSS3 для начинающих. Часть 4.2. 3D ленты

  1. Уведомление: CSS3 для начинающих. Часть 4.2. 3D ленты. | Grabr

  2. Уведомление: CSS3 для начинающих | RusDigi.org Блог Гилязетдинова Руслана

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *