Создаем объёмный блок с тенью средствами CSS3
День, когда стандарт 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>
* This source code was highlighted with Source Code Highlighter.В принципе стандартно, ничего необычного.
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;
- }
* This source code was highlighted with Source Code Highlighter.Как видно на 7 и 8 строке, используем поворот каждого элемента списка на 45 градусов
Основной контейнер
- <div class="bubble"></div>
* This source code was highlighted with Source Code Highlighter.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) */
- }
* This source code was highlighted with Source Code Highlighter.Для этого элемента применяем закругленные уголки и тень.
Заголовок
- <div class="rectangle">
- <h2>3D CSS блок</h2>
- </div>
- <div class="triangle-l"></div><!-- Левый уголок под заголовком -->
- <div class="triangle-r"></div><!-- Правый уголок под заголовком -->
* This source code was highlighted with Source Code Highlighter.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; /* спрячем под основной блок */
- }
* This source code was highlighted with Source Code Highlighter.Для блока-прямоугольника под заголовком, а так текста самого заголовка применяем отбрасывание тени.
Классы .triangle-l и .triangle-r нужны чтобы создать «треугольнички» поз заголовком слева и справа соответственно.
Подводные камни
Так как CSS3 сейчас поддерживают не все браузеры, то и не все юзеры увидят одинаковую картинку.
Так ее увидят пользователи Mozilla Firefox, Google Chome и Apple Safari:

Так пользователи Оперы (Проверял на 9,64):

Так пользователи IE8:

Ссылки
Ссылка на работающий пример
Ссылка на архив с примером
Написано с использованием этой статьи
_________
Текст подготовлен в ХабраРедакторе



комментарии (101)