• Создание рамок в CSS. Свойство border. Параметры рамки Css параметры рамки элемента

    К созданию различных красивостей вокруг него, и первой такой красивостью будет рамка.

    Для начала рассмотрим, самые простые рамки. Для их создания, в CSS используется свойство border , которому можно задать следующие значения:

    solid – сплошная рамка;

    dashed – пунктирная рамка;

    dotted – точечная рамка;

    double – рамка двойной линией;

    groove – рамка с тенью;

    ridge — с рельефом;

    Ещё два свойства необходимые для создания простых рамок — это

    widht – толщина рамки;

    color – цвет рамки;

    Согласно техники сокращения, записываются значения, одной строкой, через пробел.

    p {
    border : 2px solid #ffff00 ;
    }

    padding – внутренний (отступ рамки от содержания);

    margin — внешний (отступ рамки от внешних объектов);

    Ещё для отступов задаются направления (с какой стороны на сколько отступить). Эти свойства применяются, когда возникает необходимость разместить содержимое не по центру рамки, или саму рамку с каким либо смещением.

    top – отступ сверху;

    righnt – отступ cправа;

    bottom – отступ снизу;

    left – отступ слева

    Записываются значения этих свойств в сокращённом варианте друг за другом (padding: 10px 30px 15px 20px ), и первым ставится значение top , а дальше по часовой стрелке остальные.

    Если поставить только одно значение, то это будет значить, что отступ со всех сторон будет одинаковый.

    p {
    border : 2px solid #ffff00 ;

    margin : 20px ;
    }

    Если нужно разместить текст, или изображение по центру рамки, то в селектор «p» можно добавить свойство text-align: center ;

    Далее рассмотрим, как задаются высота и ширина рамки . Высота рамки задаётся браузером автоматически, и выбирается таким образом, чтобы в нем уместилось содержание, с учётом заданных отступов. А вот ширину мы с вами будем задавать самостоятельно.

    Задаётся она свойством width, и в значении его указывается желаемый размер в пикселях, или других мерах длины, принятых в веб.

    p {
    border : 2px solid #ffff00 ;
    padding : 10px 20px 10px 20px ;
    margin : 20px ;
    width : 400px ;
    }

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

    И последнее, что необходимо сделать — это расположить рамку на странице. Делается это при помощи, уже имеющегося, свойства margin.

    А если нужно просто расположить блок рамки по центру страницы, то в свойство margin добавляется значение auto.

    p {
    border : 2px solid #ffff00 ;
    padding : 10px 20px 10px 20px ;
    margin : 20px auto ;
    width : 400px ;
    }

    Для первого примера создадим html документ, и создадим рамки solid для блока body (тело документа), и одному абзацу.

    В следующих примерах будет изменяться только CSS (то, что заключено в тег style ).





    Документ без названия



    Здравствуйте уважаемые будущие веб-мастера!
    Мне 55 лет и я рад приветствовать Вас на своём сайте.



    Результат:

    Следующая рамка dashed (пунктир).

    p{
    text-indent : 30px ;
    border : 2px dashed #ff4f00 ;
    padding : 10px 20px 10px 20px ;
    margin : 20px auto ;
    width : 400px ;
    }

    Результат:

    Рамка dotted :

    p {
    text-indent : 30px ;
    border : 3px dotted #ff4f00 ;
    padding : 10px 20px 10px 20px ;
    margin : 20px auto ;
    width : 400px ;
    }

    Рамка double :

    p {
    text-indent : 30px ;
    border : 5px double #ff4f00 ;
    padding : 10px 20px 10px 20px ;
    margin : 20px auto ;
    width : 400px ;
    }

    Рамка groove :

    p {
    text-indent : 30px ;
    border : 7px groove #ff4f00 ;
    padding : 10px 20px 10px 20px ;
    margin : 20px auto ;
    width : 400px ;
    }

    Рамка ridge :

    p {
    text-indent : 30px ;
    border : 10px ridge #ff4f00 ;
    padding : 10px 20px 10px 20px ;
    margin : 20px auto ;
    width : 400px ;
    }

    Для этого уберём border , и добавим border-radius и box-shadow .

    p {
    border-radius : 10px ;
    box-shadow : 0 0 0 3px #ff4f00 ;
    text-indent : 30px ;
    padding : 10px 20px 10px 20px ;
    margin : 20px auto ;
    width : 400px ;
    }

    Размоем внешний край рамки. Для этого в свойстве box-shadow , увеличим третью цифру.

    p {
    border-radius : 10px ;
    box-shadow : 0 0 7px 3px #ff4f00 ;
    text-indent : 30px ;
    padding : 10px 20px 10px 20px ;
    margin : 20px auto ;
    width : 400px ;
    }

    Сделаем разноцветную рамку. Для этого в свойство box-shadow , через запятую, добавим ещё несколько комплектов значений с разными цветами.

    p {
    border-radius : 10px ;

    0 0 0 7px #ffdb00 ,
    0 0 0 10px #00ffa2 ;
    text-indent : 30px ;
    padding : 10px 20px 10px 20px ;
    margin : 20px auto ;
    width : 400px ;
    }

    Можно сделать круг в рамке. Для этого зададим абзацу одинаковую высоту и ширину, то есть сделаем квадрат, изменим значение border-radius

    p {
    border-radius : 50%/50% ;
    box-shadow : 0 0 0 3px #ff4f00 ,
    0 0 0 7px #ffdb00 ,
    0 0 0 10px #00ffa2 ;
    padding : 40px ;
    margin : 20px auto ;
    width : 130px ;
    height : 130px ;
    text-align : center;
    }

    Для управления границей элемента применяется универсальное свойство border . Это свойство позволяет установить в одном объявлении толщину, стиль и цвет границы элемента.

    Эти три свойства (толщину, стиль и цвет границы) можно установить в одном объявлении. Вот пример:

    Границы в CSS

    Блок div с рамкой 3px красного цвета.

    Можно указать стиль границы только на одной стороны элемента. Для этого применяют свойства border-top (верхняя граница), border-right (правая граница), border-bottom (нижняя граница), border-left (левая граница).

    Границы в CSS

    Блок div с разными границами.

    В этом примере для каждой стороны блока задана своя толщина границы, стиль и цвет.

    Подумайте, как при помощи CSS можно создать такую фигуру:

    Значения границы - толщину, стиль и цвет - можно задать отдельно используя специальные свойства.

    • border-style - стиль границы.
    • border-width - ширина границы.
    • border-color - цвет границы.

    Рассмотрим каждое из значений по отдельности.

    Свойство border-style. Стиль границы.

    Свойство border-style устанавливает стиль рамки. В CSS, в отличии HTML, граница элемента может быть не только сплошной. Допустимы следующие значения для стиля границы:

    1. none - граница отсутствует (по умолчанию).
    2. solid - сплошная граница.
    3. double - двойная граница.
    4. dashed - пунктирная граница.
    5. dotted - граница из ряда точек.
    6. ridge - граница "гребень".
    7. groove - граница "бороздка".
    8. inset - вдавленная граница.
    9. outset - выдавленная граница.

    Примеры того, как они выглядят.

    граница отсутствует (none)


    сплошная граница (solid)


    двойная граница (double)


    граница из ряда точек (dotted)


    пунктирная граница (dashed)


    граница "бороздка" (groove)


    граница "гребень" (ridge)


    вдавленная граница (inset)


    выдавленная граница (outset)

    Кстати, если для рамки ridge задать цвет границы чёрный, то получится вот такой результат.

    Блок div с рамкой чёрного цвета и стиля ridge.

    Рамка выглядит как solid , но это потому что стиль ridge создаётся добавлением чёрного эффекта тени, а чёрный эффект на чёрной рамке не виден.

    При помощи свойства border-style стиль границы может быть задан не только для всех сторон блока. Есть возможность задавать несколько значений одному свойству border-style , в зависимости от числа значений стиль границы будет присвоен разному числу сторон блока. Можно задать одно, два, три и четыре значения. Давайте рассмотрим примеры для каждого случая.

    Одно значение (solid) - стиль границы установлен для всех сторон блока.


    Два значения (solid double) - первое значение установило стиль для верхней и нижней сторон, второе для боковой.


    Три значения (solid double dotted) - первое значение для верхней стороны, второе для боковых, стретье для нижней.


    Четыре значения (solid double dotted dashed) - каждое значение для одной стороны по часовой стрелке начиная с верхней.

    Свойство border-width. Толщина границы.

    Для установки толщины границы элемента используется свойство border-width . Толщину границы можно задать в любых абсолютных единицах измерения, например в пикселах.

    Как и для свойства border-style , для свойства также можно задавать от одного до четырёх значений. Рассмотрим примеры для каждого случая.



    Код примера:

    Толщина границы в CSS

    Одно значение (2px) - толщина границы установлен для всех сторон блока.

    Два значения (1px 5px) - первое значение установило толщину для верхней и нижней сторон, второе для боковой.

    Три значения (1px 3px 5px) - первое значение для верхней стороны, второе для боковых, стретье для нижней.

    Четыре значения (1px 3px 5px 7px) - каждое значение для одной стороны по часовой стрелке начиная с верхней.

    Также для свойства border-width существуют значения в виде ключевых слов. Всего их три:

    • thin - тонкая граница;
    • medium - средняя толщина;
    • thick - толстая граница;

    Толщина границы: thin.


    Толщина границы: medium.


    Толщина границы: thick.

    Свойство border-color. Цвет границы.

    Для управления цветом границы используется средство border-color . Цвета для этого свойства можно задать используя любой способ, описанный в статье "Цвета в CSS ", а именно:

    • Шестнадцатеричная запись (#ff00aa ) цвета.
    • Формат RGB - rgb(255,12,110) . Формат RGBA для CSS3.
    • Форматы HSL и HSLA для CSS3.
    • Название цвета, например black (чёрный). Полный список названий цветов приведён в таблице названий цветов CSS .

    Свойство border-color также может иметь от одного до четырёх значений и обрабатывает их аналогично предыдущим свойствам.

    Одно значение (red).


    Два значения (red black).


    Три значения (red black yellow).


    Четыре значения (red black yellow blue).

    Теперь вернёмся к задаче, озвученной выше, и нарисуем фигуру:

    Вот код, который рисует такую фигуру, только побольше размером:

    Толщина границы в CSS

    Установка значений для сторон отдельно

    Выше упоминалось, что можно указать значения свойств границы только для одной стороны блока. Для этих целей есть свойства:

    • border-top (верхняя граница)
    • border-right (правая граница)
    • border-bottom (нижняя граница)
    • border-left (левая граница)

    Напомню, для всех свойств указывается три значения (толщина, стиль и цвет) в любом порядке. Но существуют свойства, которые позволяют устанавливать толщину, цвет и стиль для каждой стороны отдельно. Написание этих свойст производно от вышеуказанных.

    Параметры верхней границы (border-top ).

    • border-top-color - задаёт цвет верхней границы элемента.
    • border-top-width - задаёт толщину верхней границы элемента.
    • border-top-style - задаёт стиль верхней границы элемента.

    Параметры правой границы (border-right ).

    • border-right-color - задаёт цвет правой границы элемента.
    • border-right-width - задаёт толщину правой границы элемента.
    • border-right-style - задаёт стиль правой границы элемента.

    Параметры нижней границы (border-bottom ).

    • border-bottom-color - задаёт цвет нижней границы элемента.
    • border-bottom-width - задаёт толщину нижней границы элемента.
    • border-bottom-style - задаёт стиль нижней границы элемента.

    Параметры левой границы (border-left ).

    • border-left-color - задаёт цвет левой границы элемента.
    • border-left-width - задаёт толщину левой границы элемента.
    • border-left-style - задаёт стиль левой границы элемента.

    Пример использования этих свойств:

    Толщина границы в CSS

    В этом примере блоку div сначала заданы границы толщиной 3px и стилем solid для всех сторон. Затем:
    • переопределён цвет верхней границы при помощи свойства border-top-color в красный,
    • при помощи свойства border-right-width установлена толщина правой границы 10px,
    • при помощи свойства border-bottom-style стиль нижней границы переопределён как double,
    • при помощи свойства border-left-color левой границе установлен синий цвет.

    Свойство border-radius. Округление углов границы.

    Свойство border-radius предназначено для округления углов границ элемента. Это свойство появилось в CSS3 и корректно работает во всех современных браузерах, за исключением Internet Explorer 8 (и более старых версий).

    Значениями могут быть любые числа, используемые в CSS.

    Свойство border-radius: 15px.

    Если рамка блока не задана, то скругление происходит с фоном. Вот пример закругления блока без рамки, но с фоновым цветом:

    Свойство border-radius: 15px.

    Существуют свойства для скругленя каждого отдельно угла элемента. В этом примере использованы они все:

    Border-top-left-radius: 15px; border-top-right-radius: 0; border-bottom-right-radius: 15px; border-bottom-left-radius: 0;

    Свойство border-radius: 15px.

    Хотя этот код можно записать одним объявлением: border-radius : 15px 0 15px 0 . Дело в том, что для свойства border-radius можно задавать от одного до четырёх значений. В таблице ниже приведены правила, которые определяют такие объявления.

    Внимательно изучив эту таблицу можно понять, что самая короткая запись нужного стиля будет такой: border-radius : 15px 0 . Всего два значения.

    Немного практики

    Рисуем лимон средствами CSS.

    Вот код такого блока:

    Margin: 0 auto; /* Размещаем блок по центру */ width: 200px; height: 200px; background: #F5F240; border: 1px solid #F0D900; border-radius: 10px 150px 30px 150px;

    Мы уже рисовали фигуру:

    Теперь оставим от неё треугольник:

    Код треугольника такой:

    Margin: 0 auto; /* Размещаем блок по центру */ padding: 0px; width: 0px; height: 0; border: 30px solid white; border-bottom-color: red;

    Свойство для оформления текста и шрифта мы изучили, теперь пришла очередь переходить к другим элементам. В этом уроке мы рассмотрим, создание рамок средствами CSS . Данное свойство используется достаточно часто, поэтому ему стоит уделить немного больше внимания.

    И так, давайте предположим, что вокруг какого-то элемента нужно сделать рамку. Например, создадим заголовок и вокруг него сделаем рамку.

    Параметры характеризующие рамку: 1) Толщина рамки, 2) Стиль рамки и 3) Цвет рамки. И давайте по порядку:

    • 1. Толщина рамки: border-width:2px ;
    • 2. Стиль рамки: border-style:solid ;
    • 3. Цвет рамки: border-color:#ff0000 ;

    Какие бывают стили рамок в CSS ? Ниже приведены все доступные стили рамок:

    • dotted - Это точечная рамка.
    • dashed - Это пунктирная рамка
    • solid - Это сплошная рамка
    • double - Это двойная рамка
    • groove - Объемный вид
    • ridge - Объемный вид
    • inset - Объемный вид
    • outset - Объемный вид

    Теперь у нас есть все, чтобы создать рамку вокруг заголовка.

    HTML

    HTML страница

    Создание рамки вокруг заголовка.

    И сам стиль для рамки.

    H2{ border-width: 2px; border-style: solid; border-color: #FF0000; }

    В результате вокруг созданного заголовка появилась сплошная рамка красного цвета толщиной в 2px.

    Рамка формируется из четырех сторон: Верхней , Правой , Нижней и Левой и, так как у нас указанно свойство border , то браузер по умолчанию рисует все четыре стороны рамки. Таким образом, если требуется задать рамку только с какой-то одной стороны, то используются приставки указывающие сторону, где создать рамку.

    • top - Верх.
    • right - Право
    • bottom - Низ
    • left - Лево

    Таким образом если мы хотим рамку сделать только снизу абзаца то есть подчеркнуть его то к каждому свойству border добавляем приставку bottom . В результате получится следующая структура кода.

    H2{ border-bottom-width: 2px; border-bottom-style: double; border-bottom-color: #FF0000; }

    Использование данных стилей для браузера будет означать, что нужно создать рамку только с нижней части, т.е. подчеркивающую заголовок. Точно так же можно и продублировать данный код, задав рамку уже с другой стороны, например верхней.

    H2{ border-bottom-width: 2px; border-bottom-style: double; border-bottom-color: #FF0000; border-top-width: 2px; border-top-style: double; border-top-color: #FF0000; }

    Теперь заголовок будет обводится красной рамкой сверху и снизу. Аналогично можно сделать и для других сторон.

    Как Вы уже наверное заметили, запись получилась достаточно большая, поэтому существует сокращенный вид записи который за частую на практике и используется.

    На картинке выше представлена структура сокращённой записи, где указывается свойство border и в качестве значений, через пробел, указывается ширина рамки - border-width , стиль рамки - border-style и цвет рамки - #ff0000 .

    То есть браузер, увидев такую, сокращенную запись border:2px solid #ff0000 ; , так же создаст рамку со всех четырех сторон заголовка. Вот такая короткая запись эквивалентна той записи, что мы использовали выше (где применялось три свойства).

    Если с помощью короткой записи нужно указать рамку только с одной стороны, то к свойству добавляем простаку указывающую сторону с которой создать рамку.

    H2{ border-top:2px solid #ff0000; }

    Вот так, с помощью короткой записи делается рамка с верху, где так же указаны толщина, стиль, и цвет рамки.

    Вот таким образом с помощью свойства border делается рамка вокруг любого элемента. Так же с помощью рамки создается подчеркивание ссылок, когда нужен другой цвет подчеркивающей линии. Ну а на этом с рамками все, переходим к следующему важному уроку, где будем рассматривать

    Рамки имеют многообразное применение, например, как декоративный элемент или для отделения двух объектов. CSS предоставляет бесчисленное множество вариантов использования рамок.

    Толщина рамки

    Толщина рамки определяется свойством border-width , которое может иметь значения thin, medium и thick, или числовое значение в пикселах. На рисунке показана эта система:

    Цвет рамки

    Свойство border-color определяет цвет рамки. Значения - нормальные значения цвета, например: "#123456", "rgb(123,123,123)" или "yellow" .

    Типы рамок

    Существуют различные типы рамок. Ниже показаны восемь типов рамки и их интерпретация в Internet Explorer 5.5. Все примеры показаны цветом "gold" и толщиной "thick", но могут, естественно, выводиться другим цветом и толщиной.

    Значения none или hidden могут использоваться, если вы не хотите отображать рамку.

    Примеры определения рамок

    Три рассмотренных выше свойства можно объединить в каждом элементе и, соответственно, устанавливать разные рамки. Для иллюстрации взглянем на документ, где определены разные рамки для

    ,

    ,
      и

      Результат, может быть, не столь впечатляющ, но он демонстрирует некоторые возможности:

      H1 { border-width: thick; border-style: dotted; border-color: gold; } h2 { border-width: 20px; border-style: outset; border-color: red; } p { border-width: 1px; border-style: dashed; border-color: blue; } ul { border-width: thin; border-style: solid; border-color: orange; }

      Можно также установить специальные свойства для верхнего, нижнего, правого и левого края рамки. Вот как это делается:

      H1 { border-top-width: thick; border-top-style: solid; border-top-color: red; border-bottom-width: thick; border-bottom-style: solid; border-bottom-color: blue; border-right-width: thick; border-right-style: solid; border-right-color: green; border-left-width: thick; border-left-style: solid; border-left-color: orange; }

      Сокращённая запись

      Как и для многих других свойств, вы можете объединить несколько свойств в одно, используя слово border. Пример:

      P { border-width: 1px; border-style: solid; border-color: blue; }

      можно объединить в:

      P { border: 1px solid blue; }

      Резюме

      В этом уроке вы познакомились с безграничными возможностями CSS при использовании рамок.

      В следующем уроке мы рассмотрим, как определять размеры в боксовой модели - height и width.

      Одним из занятных приложений свойства CSS3 box-shadow является создание двойной рамки вокруг элемента. Очень интересный эффект для оформления страниц, Но работать он будет только в новых версиях браузеров, которые поддерживают box-shadow .

      Однако существует еще несколько методов для создания такого эффекта. Причем очевидное использование фонового изображения является весьма далеким от идеала.

      В данном уроке представлены пять методов для создания двойной рамки вокруг элемента. Причем только один из них требует изображение, а все остальные используют чистый код CSS с отличной поддержкой в браузерах.

      Метод 1: border и outline

      Данный метод работает только в тех браузерах, которые поддерживают свойство outline (все, кроме IE6/7). Вы добавляете элементу оба свойства border и outline .

      One { border: solid 6px #fff; outline: solid 6px #888; }

      Причина по которой данный метод работает заключается в том, что рамка outline всегда выводится с внешней стороны прямоугольника. Проблема свойства outline проявляется при использовании плавающих элементов, так как рамка перекрывается с соседними элементами.

      Метод 2: псевдо элемент

      Данный метод требует абсолютного позиционирования рамки:

      Two { border: solid 6px #fff; position: relative; z-index: 1; } .two:before { content: ""; display: block; position: absolute; top: -12px; left: -12px; border: solid 6px #888; width: 312px; padding-bottom: 12px; min-height: 100%; z-index: 10; }

      Ключевыми моментами являются установка свойства z-index (чтобы псевдо элемент перекрывал содержание), позиционирование и значение min-height . Последнее свойство сохраняет эластичность рамки.

      Метод 3: тень

      Самый лучший метод, так как требуется только одна строчка кода с установками свойства box-shadow .

      Three { box-shadow: 0 0 0 6px #fff, 0 0 0 12px #888; }

      Для появления двойной рамки используются две тени. Они определяются через запятую. Размытие устанавливается в 0. Так как вторая тень перекрывается первой, то она имеет вдвое большую ширину. Ключевой момент - использование непрозрачных цветов, что создает четкую границу между рамками.

      Как и свойство outline , box-shadow не влияет на соседние элементы и может перекрывать их. Поэтому надо установить поле для формирования внешнего вида композиции.

      Естественно, поддержка свойства box-shadow ограничена новыми браузерами.

      Метод 4: Дополнительный элемент div

      В данном методе используется внешний элемент

      для вывода двойной рамки. Единственный метод, который работает везде:

      Four { border: solid 6px #888; background: #fff; width: 312px; min-height: 312px; } .four div { width: 300px; min-height: 300px; background: #222; margin: 6px auto; overflow: hidden; }

      Внешний элемент имеет немного больший размер, что создает иллюзию двойной рамки.

      Метод 5: свойство border-image

      Еще одним новым методом является часто забываемое свойство CSS3 border-image:

      Five { border-width: 12px; -webkit-border-image: url(multiple-borders.gif) 12 12 12 12 repeat; -moz-border-image: url(multiple-borders.gif) 12 12 12 12 repeat; border-image: url(multiple-borders) 12 12 12 12 repeat; /* for Opera */ }

      Знаете другой метод?

      Конечно, здесь собраны давно известные и широко используемые методы. Но может быть вам известен какой-нибудь трюк. Поделитесь с читателями в комментариях.