Реалистичные тени при помощи CSS3

(Ответов: 5, Просмотров: 1130)
  1. Sunshine reggae Аватар для OKyJIucT
    • Регистрация: 02.09.2011
    • Сообщений: 3,240
    • Репутация: 1830
    • Webmoney BL: ?
    Наткнулся на Хабре на один интересный материал. Сам там нахожусь в режиме read-only (кстати, если кто поделится инвайтом, буду весьма признателен), поэтому решил запостить тут. Интересно, полезно, а заодно и пообсуждать можно. Может для кого то это и не будет новым, но такой материал для форума будет полезен я думаю. Итак, приступим.

    Блок с приподнятыми уголками


    Развернуть текст

    HTML
    Код:
    <div class="lifted">
            <p>Содержимое</p>
    </div>
    CSS
    Код:
    .lifted p {
            font-size:16px;
            font-weight:bold;
    }
     
    .lifted {
            position:relative;
            width:40%;
            padding:1em;
            margin:2em 10px 4em;
            background:#fff;
            border-radius:4px;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
            -moz-border-radius:4px;
     
    }
     
    .lifted:before,
    .lifted:after {
            content:"";
            position:absolute;
            z-index:-2;
            bottom:15px;
            left:10px;
            width:50%;
            height:20%;
            max-width:300px;
        -webkit-box-shadow:0 15px 10px rgba(0, 0, 0, 0.7);
           -moz-box-shadow:0 15px 10px rgba(0, 0, 0, 0.7);
                box-shadow:0 15px 10px rgba(0, 0, 0, 0.7);
        -webkit-transform:rotate(-3deg);
           -moz-transform:rotate(-3deg);
            -ms-transform:rotate(-3deg);
             -o-transform:rotate(-3deg);
                transform:rotate(-3deg);
    }
     
    .lifted:after {
        right:10px;
        left:auto;
        -webkit-transform:rotate(3deg);
           -moz-transform:rotate(3deg);
            -ms-transform:rotate(3deg);
             -o-transform:rotate(3deg);
                transform:rotate(3deg);
    }
    [свернуть]


    Блок с завитками на уголках


    Развернуть текст

    HTML
    Код:
    <div class="curled">
            <p>Содержимое</p>
    </div>
    CSS
    Код:
    .curled {
        position:relative;
        width:40%;
        padding:1em;
        margin:2em 10px 4em;
        background:#fff;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
        border:1px solid #efefef;
        -moz-border-radius:0 0 120px 120px / 0 0 6px 6px;
             border-radius:0 0 120px 120px / 0 0 6px 6px;
    }
     
    .curled:before,
    .curled:after {
        content:"";
        position:absolute;
        z-index:-2;
        bottom:12px;
        left:10px;
        width:50%;
        height:55%;
        max-width:200px;
        -webkit-box-shadow:0 8px 12px rgba(0, 0, 0, 0.5);
           -moz-box-shadow:0 8px 12px rgba(0, 0, 0, 0.5);
                box-shadow:0 8px 12px rgba(0, 0, 0, 0.5);
         -webkit-transform:skew(-8deg) rotate(-3deg);
            -moz-transform:skew(-8deg) rotate(-3deg);
             -ms-transform:skew(-8deg) rotate(-3deg);
              -o-transform:skew(-8deg) rotate(-3deg);
                 transform:skew(-8deg) rotate(-3deg);
    } 
     
    .curled:after {
        right:10px;
        left:auto;
        -webkit-transform:skew(8deg) rotate(3deg);
           -moz-transform:skew(8deg) rotate(3deg);
            -ms-transform:skew(8deg) rotate(3deg);
             -o-transform:skew(8deg) rotate(3deg);
                transform:skew(8deg) rotate(3deg);
            }
    .curled p {
        font-size:16px;
        font-weight:bold;
    }
    [свернуть]


    Перспектива


    Развернуть текст

    HTML
    Код:
    <div class="perspective">
            <p>Содержимое</p>
    </div>
    CSS
    Код:
    .perspective {
        position:relative;
        width:40%;
        padding:1em;
        margin:2em 10px 4em;
        background:#fff;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    }
     
    .perspective:before,
    .perspective:after {
        content:"";
        position:absolute;
        z-index:-2;
    }        
     
    .perspective:before {
        left:80px;
        bottom:5px;
        width:50%;
        height:35%;
        max-width:200px;
        -webkit-box-shadow:-80px 0 8px rgba(0, 0, 0, 0.4);
           -moz-box-shadow:-80px 0 8px rgba(0, 0, 0, 0.4);
                box-shadow:-80px 0 8px rgba(0, 0, 0, 0.4);
        -webkit-transform:skew(50deg);
           -moz-transform:skew(50deg);
            -ms-transform:skew(50deg);
             -o-transform:skew(50deg);
                transform:skew(50deg);
        -webkit-transform-origin:0 100%;
           -moz-transform-origin:0 100%;
            -ms-transform-origin:0 100%;
             -o-transform-origin:0 100%;
                transform-origin:0 100%;
    }
     
    .perspective:after {
        display:none;
    }
     
    .perspective p {
        font-size:16px;
        font-weight:bold;
    }
    [свернуть]


    Приподнятый бокс


    Развернуть текст

    HTML
    Код:
    <div class="raised">
            <p>Содержимое</p>
    </div>
    CSS
    Код:
    .raised {
        position:relative;
        width:40%;
        padding:1em;
        margin:2em 10px 4em;
        background:#fff;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
        -webkit-box-shadow: 0 15px 10px -10px rgba(0, 0, 0, 0.5), 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow: 0 15px 10px -10px rgba(0, 0, 0, 0.5), 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow: 0 15px 10px -10px rgba(0, 0, 0, 0.5), 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    }        
     
    .raised:before,
    .raised:after {
        content:"";
        position:absolute;
        z-index:-2;
    }
     
    .raised p {
        font-size:16px;
        font-weight:bold;
    }
    [свернуть]


    Блок с одним вертикальным изгибом


    Развернуть текст

    HTML
    Код:
    <div class="curved-vt-1">
            <p>Содержимое</p>
    </div>
    CSS
    Код:
    .curved-vt-1 {
        position:relative;
        width:40%;
        padding:1em;
        margin:2em 10px 4em;
        background:#fff;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    }
     
    .curved-vt-1:before,
    .curved-vt-1:after {
        content:"";
        position:absolute;
        z-index:-2;
    }
     
    .curved-vt-1:before {
        top:10px;
        bottom:10px;
        left:0;
        right:50%;
        -webkit-box-shadow:0 0 15px rgba(0,0,0,0.6);
           -moz-box-shadow:0 0 15px rgba(0,0,0,0.6);
                box-shadow:0 0 15px rgba(0,0,0,0.6);
        -moz-border-radius:10px / 100px;
             border-radius:10px / 100px;
    }
     
    .curved-vt-1 p {
        font-size:16px;
        font-weight:bold;
    }
    [свернуть]


    Блок с двумя вертикальными изгибами


    Развернуть текст

    HTML
    Код:
    <div class="curved-vt-2">
            <p>Содержимое</p>
    </div>
    CSS
    Код:
    .curved-vt-2 {
        position:relative;
        width:40%;
        padding:1em;
        margin:2em 10px 4em;
        background:#fff;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    }
     
    .curved-vt-2:before,
    .curved-vt-2:after {
        content:"";
        position:absolute;
        z-index:-2;
    }
     
    .curved-vt-2:before {
        top:10px;
        bottom:10px;
        left:0;
        right:0;
        -webkit-box-shadow:0 0 15px rgba(0,0,0,0.6);
           -moz-box-shadow:0 0 15px rgba(0,0,0,0.6);
                box-shadow:0 0 15px rgba(0,0,0,0.6);
        -moz-border-radius:10px / 100px;
             border-radius:10px / 100px;
    }
     
    .curved-vt-2 p {
        font-size:16px;
        font-weight:bold;
    }
    [свернуть]


    Блок с одним горизонтальным изгибом


    Развернуть текст

    HTML
    Код:
    <div class="curved-hz-1">
            <p>Содержимое</p>
    </div>
    CSS
    Код:
    .curved-hz-1 {
        position:relative;
        width:40%;
        padding:1em;
        margin:2em 10px 4em;
        background:#fff;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    }
     
    .curved-hz-1:before,
    .curved-hz-1:after {
        content:"";
        position:absolute;
        z-index:-2;
    }
     
    .curved-hz-1:before {
        top:50%;
        bottom:0px;
        left:10px;
        right:10px;
        -webkit-box-shadow:0 0 15px rgba(0,0,0,0.6);
           -moz-box-shadow:0 0 15px rgba(0,0,0,0.6);
                box-shadow:0 0 15px rgba(0,0,0,0.6);
        -moz-border-radius:100px / 10px;
             border-radius:100px / 10px;
    }
     
    .curved-hz-1 p {
        font-size:16px;
        font-weight:bold;
    }
    [свернуть]


    Блок с двумя горизонтальными изгибами


    Развернуть текст

    HTML
    Код:
    <div class="curved-hz-2">
            <p>Содержимое</p>
    </div>
    CSS
    Код:
    .curved-hz-2 {
        position:relative;
        width:40%;
        padding:1em;
        margin:2em 10px 4em;
        background:#fff;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    }
     
    .curved-hz-2:before,
    .curved-hz-2:after {
        content:"";
        position:absolute;
        z-index:-2;
    }
     
    .curved-hz-2:before {
        top:0px;
        bottom:0px;
        left:10px;
        right:10px;
        -webkit-box-shadow:0 0 15px rgba(0,0,0,0.6);
           -moz-box-shadow:0 0 15px rgba(0,0,0,0.6);
                box-shadow:0 0 15px rgba(0,0,0,0.6);
        -moz-border-radius:100px / 10px;
             border-radius:100px / 10px;
    }
     
    .curved-hz-2 p {
        font-size:16px;
        font-weight:bold;
    }
    [свернуть]


    Повернутый бокс


    Развернуть текст

    HTML
    Код:
    <div class="rotated">
            <p>Содержимое</p>
    </div>
    CSS
    Код:
    .rotated {
        position:relative;
        width:40%;
        padding:1em;
        margin:2em 10px 4em;
        background:#fff;
        border-radius:4px;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
        -moz-border-radius:4px;
        -webkit-box-shadow:none;
           -moz-box-shadow:none;
                box-shadow:none;
        -webkit-transform:rotate(-3deg);
           -moz-transform:rotate(-3deg);
            -ms-transform:rotate(-3deg);
             -o-transform:rotate(-3deg);
                transform:rotate(-3deg);
    }
     
    .rotated > :first-child:before {
        content:"";
        position:absolute;
        z-index:-1;
        top:0px;
        bottom:0;
        left:0;
        right:0px;
        background:#fff;
        -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
           -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
                box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
    }      
     
    .rotated:before,
    .rotated:after {
            content:"";
            position:absolute;
            z-index:-2;
            bottom:15px;
            left:10px;
            width:50%;
            height:20%;
            max-width:300px;
        -webkit-box-shadow:0 15px 10px rgba(0, 0, 0, 0.7);
           -moz-box-shadow:0 15px 10px rgba(0, 0, 0, 0.7);
                box-shadow:0 15px 10px rgba(0, 0, 0, 0.7);
        -webkit-transform:rotate(-3deg);
           -moz-transform:rotate(-3deg);
            -ms-transform:rotate(-3deg);
             -o-transform:rotate(-3deg);
                transform:rotate(-3deg);
    }
     
    .rotated:after {
        right:10px;
        left:auto;
        -webkit-transform:rotate(3deg);
           -moz-transform:rotate(3deg);
            -ms-transform:rotate(3deg);
             -o-transform:rotate(3deg);
                transform:rotate(3deg);
    }
     
    .rotated p {
            font-size:16px;
            font-weight:bold;
    }
    [свернуть]
    • 6

    Спасибо сказали:

    adamantstudio(29.11.2011), Diamaxx(29.11.2011), NightHawk(29.11.2011), Orcstation(29.11.2011), vadimon(29.11.2011), Zvеr(29.11.2011),
  2. Sunshine reggae Аватар для OKyJIucT
    • Регистрация: 02.09.2011
    • Сообщений: 3,240
    • Репутация: 1830
    • Webmoney BL: ?
    Ближе к вечеру про кнопочки выложу) Тоже весьма эффектно!
    • 0
  3. Студент Аватар для adamantstudio
    • Регистрация: 31.10.2011
    • Сообщений: 61
    • Репутация: 5
    • Webmoney BL: ?
    Спасибо за полезную инфу.
    А как на счет браузеров? Какие будут нормально работать а какие нет?
    • 0
  4. Новичок
    • Регистрация: 28.06.2011
    • Сообщений: 2
    • Репутация: 0
    Тоже хотелось бы узнать, насчет кроссбраузерности.
    • 0
  5. Пастафариани Аватар для Orcstation
    • Регистрация: 05.01.2011
    • Сообщений: 3,183
    • Записей в дневнике: 2
    • Репутация: 1427
    • Webmoney BL: ?
    Цитата Сообщение от Int3R Посмотреть сообщение
    Тоже хотелось бы узнать, насчет кроссбраузерности.
    В осле все равно нифига работать не будет)))
    ВДВ РФ — Вернёшься Домой В РеФрижераторе.
    • 0
  6. Sunshine reggae Аватар для OKyJIucT
    • Регистрация: 02.09.2011
    • Сообщений: 3,240
    • Репутация: 1830
    • Webmoney BL: ?
    Должно работать на всех, которые поддерживают CSS3. Но для каждого движка надо писать свой код, например

    Код HTML:
        -webkit-transform:rotate(-3deg); - Гугл Хром и Сафари
           -moz-transform:rotate(-3deg); - Мозила
            -ms-transform:rotate(-3deg); - ИЕ
             -o-transform:rotate(-3deg); - Опера
    У меня на Хроме 16 и Мозиле 8.0.1 работает :)

    ---------- Сообщение добавлено 09:39 ---------- Предыдущее 09:38 ----------

    Orcstation, в ИЕ 9 не верно отображается) Но я проверял кнопочки и анимацию, о которых расскажу ближе к вечеру)
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Экспериментальные селекторы CSS3
Дайджест блогосферы 4 10.06.2011 21:02
картинка выходит из "тени"
Web программирование 10 13.04.2011 00:25
Фотогалерея на CSS3
Дайджест блогосферы 2 18.09.2010 19:24
CSS3 и браузеры. Проверяем совместимость
Дайджест блогосферы 0 17.09.2010 12:17
Учим Internet Explorer понимать CSS3
Дайджест блогосферы 0 25.07.2010 01:37

Интересные темы

верстка с помощью div

Что проще и эффективнее табличная верстка или верстка с помощью div, ответ здесь.

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры