Продолжаем изучать CSS3 с циклом статей CSS3 для начинающих. Сегодня продолжение четвертой части. Речь пойдет о создании 3D лент с помощью CSS3.
[adsense]
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);
Вот, что мы получим в итоге:
Посмотреть демо
Подготовим 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 лента. Делитесь своими мыслями и впечатлениями в комментариях.
Посмотреть демо
Если вы ищите гдз по русскому языку за 7 класс Баранов, то вам поможет сайт http://www.megabotan.ru — здесь собрано огромное количество решебников, которые помогут не только ученикам, но и родителям.
2 комментария для “0”