Обводка тела страницы

Обводка тела страницы - весьма изысканный и изящный эффект для оформления страниц.

Характеристики "обводки страницы":

  • Она проходит по всему окну браузера, прилипая к границам вне зависимости от размера экрана.
  • Все грани остаются на своих местах при прокрутке страницы.
  • Содержание проходит под обводкой при прокрутке страницы.

 

Метод №1. 4 элемента div.

Данный метод имеет наилучшую совместимость с браузерами. Для его реализации мы используем 4 элемента div.

<div id="left"></div>
<div id="right"></div>
<div id="top"></div>
<div id="bottom"></div>

Затем устанавливаем правила CSS. Некоторые свойства общие для всех элементов, некоторые - для пар верх/низ, право/лево, и есть уникальные для каждого элемента свойства. Код не содержит избыточных повторяющихся свойств.

top, #bottom, #left, #right {
        background: #a5ebff;
        position: fixed;
        }
        #left, #right {
                top: 0; bottom: 0;
                width: 15px;
                }
                #left { left: 0; }
                #right { right: 0; }

        #top, #bottom {
                left: 0; right: 0;
                height: 15px;
                }
                #top { top: 0; }
                #bottom { bottom: 0; }

Все должно работать в IE 7 и во всех остальных нормальных браузерах. Поддержка для IE 6, который не поддерживает фиксированного позиционирования, заключается в условном комментарии в разделе head, который отключает обводку. Никаких угрызений совести и сожалений по данному поводу нет.

<!--[if lte IE 6]>
        <style>#top, #bottom, #left, #right { display: none; }</style>
<![endif]-->

Также надо отгородиться от маленьких экранов (например, экранов мобильных устройств), которые не поддерживают фиксированное позиционирование:

		@media 
		
		/* Маленькие экраны, включая iPhone */
		only screen and (max-width: 500px),
		
		/* iPad */
		only screen and (min-device-width: 768px) and (max-device-width: 1024px) 
		
		{
			#top, #bottom, #left, #right { display: none; }
		}

 

Метод № 2. Псевдо элементы.

В вышеприведенном примере, нам нужно 4 уникальных элемента, чтобы добиться нужного эффекта. Но это четыре дополнительных элемента, которые встраиваются в семантику документа. В идеале таких элементов должно быть 0. Ну что ж, у нас есть два элемента, которые уже имеют размер равный размеру окна браузера - это <html> и <body>. Используем псевдо элементы :before и :after для них и получим нужные четыре!

Можно использовать те же свойства и значения, как и в методе №1, только с небольшими изменениями:

html:before, html:after, body:before, body:after {
    content: "";
    position: fixed;
    background: #a5ebff;

    /* и так далее... */
}

Хотя поддержка псевдо-элементов достаточно хороша, данный метод несколько хуже метода №1. Большой проблемой является ошибка браузеров WebKit, которая приводит к растеканию фона псевдо-элемента по всему экрану.  Такие проблемы делают использование псевдо элементов преждевременным.

Но есть решение. И при этом удовлетворяющее требованиям семантичности!

В действительности нам не нужно четыре уникальных элемента, нужно только два. Верх и низ должны быть уникальны, поэтому они могут иметь фиксированное положение и не прокручиваться. А для правой и левой стороны обводки можно использовать border для элемента <body>.

body:before, body:after {
    content: "";
    position: fixed;
    background: #900;
    left: 0;
    right: 0;
    height: 10px;
}
body:before {
    top: 0;
}
body:after {
    bottom: 0;
}
body {
    border-left: 10px solid #900;
    border-right: 10px solid #900;
}

Тот же эффект. Правда, с более слабой поддержкой, но зато весьма семантический.

 

Для примера: kottke.org

Сайт Jason Kottke Kottke.org имеет отличную обводку:

Jason использует восемь разных элементов и восемь (!) разных изображений для реализации эффекта. Так как данная рамка не фиксируется по экрану (фиксация осуществляется по верху и низу содержания), то ее легко реализовать  с помощью CSS3.

Будем использовать box-shadow для элемента <body> с множественными тенями:

body {
        padding: 40px;
        overflow-x: hidden; /* Для Opera */
        -webkit-box-shadow:
                inset #19d4ff 0 0 0 5px,
                inset #18cdf7 0 0 0 1px,
                inset #53dfff 0 0 0 10px,
                inset #50d8f7 0 0 0 11px,
                inset #8ce9ff 0 0 0 16px,
                inset #88e2f7 0 0 0 17px,
                inset #c5f4ff 0 0 0 22px,
                inset #bfecf7 0 0 0 23px;
        -moz-box-shadow:
                inset #19d4ff 0 0 0 5px,
                inset #18cdf7 0 0 0 1px,
                inset #53dfff 0 0 0 10px,
                inset #50d8f7 0 0 0 11px,
                inset #8ce9ff 0 0 0 16px,
                inset #88e2f7 0 0 0 17px,
                inset #c5f4ff 0 0 0 22px,
                inset #bfecf7 0 0 0 23px;
        box-shadow:
                inset #19d4ff 0 0 0 5px,
                inset #18cdf7 0 0 0 1px,
                inset #53dfff 0 0 0 10px,
                inset #50d8f7 0 0 0 11px,
                inset #8ce9ff 0 0 0 16px,
                inset #88e2f7 0 0 0 17px,
                inset #c5f4ff 0 0 0 22px,
                inset #bfecf7 0 0 0 23px;
}

Некоторые проблемы: Opera (Mac, 11.10) неправильно выполняет команды, расширяя размер элемента, чтобы он соответствовал тени снаружи (даже если тень установлена как внутренняя). В результате появляется ненужная полоска прокрутки, так как используется элемент body на всю ширину. Горизонтальная полоска прокрутки скрывается с помощью свойства overflow-x. Но, к сожалению, снизу остается небольшое пространство.

Решение работает в браузерах: IE 9+, Firefox 3.5+, Opera 10.5+, Chrome, Safari 3+

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/sW94iD5zBSw/lessons.php

Читать комменты и комментировать

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



Защитный код
Обновить

Обводка тела страницы | | 2012-06-19 12:07:07 | | Статьи Web-мастеру | | Обводка тела страницы - весьма изысканный и изящный эффект для оформления страниц. Характеристики обводки страницы:Она проходит по всему окну браузера, прилипая к границам вне зависимости от размера | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: