День, когда стандарт CSS3 будет официально утвержден, а все популярные браузеры начнут его отображать приблизит нас, верстальщиков, к нашему же «раю верстальщиков» в несколько раз. Пока же заглянем в будущее и узнаем, как можно создать псевдо-3D блок используя только css и html.
Выглядеть блок будет так:
Для его создания воспользуемся 4 свойствами CSS3:
Вставлять целиком html и css не буду — ниже дам ссылочку на пример, остановлюсь на конкретных пунктах.
Пойдем сверху вниз.
В принципе стандартно, ничего необычного.
CSS для него:
Как видно на 7 и 8 строке, используем поворот каждого элемента списка на 45 градусов
CSS:
Для этого элемента применяем закругленные уголки и тень.
CSS:
Для блока-прямоугольника под заголовком, а так текста самого заголовка применяем отбрасывание тени.
Классы .triangle-l и .triangle-r нужны чтобы создать «треугольнички» поз заголовком слева и справа соответственно.
Так как CSS3 сейчас поддерживают не все браузеры, то и не все юзеры увидят одинаковую картинку.
Так ее увидят пользователи Mozilla Firefox, Google Chome и Apple Safari:
Так пользователи Оперы (Проверял на 9,64):
Так пользователи IE8:
Ссылка на работающий пример
Написано с использованием этой статьи
Выглядеть блок будет так:
Для его создания воспользуемся 4 свойствами CSS3:
- box-shadow — тень от элемента
- text-shadow — тень от текста
- transform — поворот
- background: rgba(0,0,0,0.65) — возможность задать прозрачность фону
Вставлять целиком html и css не буду — ниже дам ссылочку на пример, остановлюсь на конкретных пунктах.
Пойдем сверху вниз.
Меню
<ul class="menu">
<li class="l1"><a href="#">CSS3</a></li>
<li class="l2"><a href="#">реально</a></li>
<li class="l3"><a href="#">круто</a></li>
</ul>
В принципе стандартно, ничего необычного.
CSS для него:
.menu {
position: relative;
top:7px;
left: 50px;
z-index: 80; /* Спрячемм под основной блок с закругленными уголками */
}
.menu li {
-webkit-transform: rotate(-45deg); /* Повернем элемент в вебките */
-moz-transform: rotate(-45deg); /* Повернем элемент в Мозилле */
width: 50px;
overflow: hidden;
margin: 10px 0px;
padding: 5px 5px 5px 18px;
float: left;
background: #7f9db9;
text-align: right;
}
Как видно на 7 и 8 строке, используем поворот каждого элемента списка на 45 градусов
Основной контейнер
<div class="bubble"></div>
CSS:
.bubble { /* Это основной контейнер с закругленными уголками */
clear: both;
margin: 0px auto;
width: 350px;
background: #fff;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-moz-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, у него z-index: 100) */
}
Для этого элемента применяем закругленные уголки и тень.
Заголовок
<div class="rectangle">
<h2>3D CSS блок</h2>
</div>
<div class="triangle-l"></div><!-- Левый уголок под заголовком -->
<div class="triangle-r"></div><!-- Правый уголок под заголовком -->
CSS:
.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);
-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;
}
.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; /* спрячем под основной блок */
}
Для блока-прямоугольника под заголовком, а так текста самого заголовка применяем отбрасывание тени.
Классы .triangle-l и .triangle-r нужны чтобы создать «треугольнички» поз заголовком слева и справа соответственно.
Подводные камни
Так как CSS3 сейчас поддерживают не все браузеры, то и не все юзеры увидят одинаковую картинку.
Так ее увидят пользователи Mozilla Firefox, Google Chome и Apple Safari:
Так пользователи Оперы (Проверял на 9,64):
Так пользователи IE8:
Ссылки
Ссылка на работающий пример
Написано с использованием этой статьи