Двойная рамка с использованием CSS.

Рамки - это такие линии, которые окружают элемент (содержащийся в нём контент и отступы вокруг него). Пример, с которым мы уже сталкивались - рамки ячеек внутри таблицы.

CSS предусматривает два типа рамок: внутренние границы и внешние линии. Свойства CSS, отвечающие за оформление рамок, начинаются со слова «border», которое как раз и можно перевести как «Рамка», «Граница». Наличие и формат внешнего контура задаются свойствами, начинающимися словом «outline». Outline, в отличие от border, не влияет на ширину и положение обрамляемого блока. Кроме того, его нельзя установить только с одной стороны, как border - только со всех сторон сразу.

Сначала поговорим об оформлении border, потом перейдём к outline .

border-width

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

Задавать ширину можно как с помощью привычных пикселей, процентов и других единиц длины CSS, так и зарезервированными словами thin (2px), medium (4px) и thick (6px).

Border-width: 16px 12px 4px 8px;

border-style

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

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

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

border-style: solid double dotted none

border-color

Работает так же, как и предыдущие свойства, но отвечает за цвет границ. Ему тоже можно задавать от одного до четырёх значений, и результат вы уже знаете. Если правило не установить, рамки будут иметь цвет текста текущего элемента или, если не указан и он, цвет текста элемента-родителя.

Border-color: #C85EFA;

border

Упрощает запись и экономит код, позволяя установить все перечисленные свойства для границ со всех сторон элемента одной строкой:

P { border: 2px solid green; }

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

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

P { border-left: 6px dotted yellow; }

outline-width

То же самое, что и border-width , только для внешней, а не внутренней рамки. Задаёт толщину контура в тех же значениях, что и border-width . Кроме толщины обрамления элемента нужно указать его стиль, иначе контура не будет.

outline-style

Значения свойства дублируют значения border-style . Правило задаёт стиль внешнего контура.

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

Граница располагается между полем и отступом. Это значит, что margin находится за границей. Границу можно задавать как со всех четырех сторон (как бы заключая блок в рамку), так и с одной, двух или трех сторон. В CSS можно управлять толщиной, цветом и стилем границ. Изучим это подробнее.

Border-width: ширина границы

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

/* все 4 границы имеют ширину 2px: */ border-width: 2px; /* верхняя и нижняя границы имеют ширину 2px, левая и правая - 4px: */ border-width: 2px 4px; /* верхняя граница - 2px, левая и правая - 6px, нижняя - 3px: */ border-width: 2px 6px 3px; /* верхняя граница - 2px, правая - 3px, нижняя - 4px, левая - 5px: */ border-width: 2px 3px 4px 5px;

Кроме этого, существуют ключевые слова для обозначения ширины границы:

  • thin - граница шириной 2px;
  • medium - граница шириной 4px;
  • thick - граница шириной 6px.

Border-color: цвет границы

Свойство border-color задает цвет для границ. Цвета можно указывать в любом формате CSS: ключевыми словами, в шестнадцатеричном виде либо в RGB - зависит от того, как вам удобнее. По аналогии с предыдущим свойством, можно устанавливать как один цвет для всех границ, так и выбирать разные цвета для каждой границы.

Border-color: #FFFF00;

Также можно задать прозрачный цвет, записав:

Border-color: transparent;

Border-style: стиль границы

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

  • solid - сплошная граница;
  • dotted - граница из точек;
  • dashed - пунктирная граница;
  • double - двойная граница;
  • groove - объемная граница-выемка;
  • ridge - объемная граница с толстой кромкой (по сути, инверсия предыдущего стиля);
  • outset - выдавленная граница;
  • inset - вдавленная граница (по сути, инверсия предыдущего стиля).

Как и в случае со свойствами border-width и border-color , для каждой границы блока можно задавать отдельный стиль - например, вы можете сделать верхнюю и нижнюю границы пунктирными, а правую и левую - двойными. Здесь уже все зависит лишь от фантазии.

Border-style: double dotted;

Обратите внимание: в разных браузерах внешний вид границ может немного отличаться.

Общее CSS-свойство border: 3 в 1

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

Border: 2px dotted #FF0000;

Границы для отдельных сторон

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

  • border-top - стиль для верхней границы;
  • border-right - для правой границы;
  • border-bottom - для нижней границы;
  • border-left - для левой границы.
border-top: 2px solid #0000FF; border-bottom: 7px double #000080;

Итоги

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

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

Div { border-right: 8px double #FF0000; border-left: 8px double #FF0000; border-bottom: 8px double #FF0000; border-top: 4px dotted #FDD201; }

Но это слишком длинная запись. Всё это можно записать короче:

Div { border: 8px double #FF0000; border-top: 4px dotted #FDD201; }

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

Мини-задание

Попробуйте создать рамку для блока div с размерами 200×200 пикселей. Стили для рамки должны быть такими:

  • Верхнюю и нижнюю границы сделайте сплошнымиsolid , задайте им одинаковый цвет на выбор и ширину 5 пикселей.
  • Левую границу сделайте пунктирнойdashed , шириной 3 пикселя, цвет выберите отличный от предыдущего.
  • Правую границу сделайте двойнойdouble , шириной 7 пикселей, цвет отличный от двух предыдущих.

В конечном итоге ваша работа должна выглядеть так (за исключением цвета, который вы выбираете сами):

Результат задания (вид в Chrome)

letter-spacing line-height list-style margin max-height max-width min-height min-width outline overflow padding position right text-align text-decoration text-indent text-transform top vertical-align white-space width word-spacing z-index
  • Справочник HTML Уроки HTML Видеокурсы по созданию сайта
  • С войство BORDER

    Свойство Значения Пр* Нc*
    border + -
    border-width [ thin, medium, thick, ШИРИНА ]{1,4}, inherit + -
    border-style [ none, hidden, dotted, dashed, solid, double, groove, ridge, inset, outset ]{1,4}, inherit + -
    border-color [ ЦВЕТ, transparent ]{1,4}, inherit + -
    border-bottom
    border-left
    border-right
    border-top
    [ border-width; border-style; border-color ], inherit + -
    border-bottom-width
    border-left-width
    border-right-width
    border-top-width
    thin, medium , thick, ШИРИНА, inherit + -
    border-bottom-style
    border-left-style
    border-right-style
    border-top-style
    none , hidden, dotted, dashed, solid, double, groove, ridge, inset, outset, inherit + -
    border-bottom-color
    border-left-color
    border-right-color
    border-top-color
    ЦВЕТ , transparent, inherit + -

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

    Применение:

    p { border: 5px groove #00ff00;} — для абзаца задана рамка: шириной 5px, стиль groove , цвета лайм:

    Border-width

    Свойство задает ширину рамки элемента или отдельно для каждой её стороны, если стиль рамки отличен от none .

    Значения:

    Ширину можно указывать в разных единицах, удобнее в px. Одно значение задает ширину всей рамки. Два значения: 1-ое — для верхней и нижней рамок, 2-ое — для левой и правой. Три значения: 1-ое — для верхней, 2-ое — для левой и правой, 3-е — для нижней. Четыре значения установят ширину рамок в следующем порядке: верхняя, правая, нижняя, левая. Это — стандартный порядок в CSS.

    thin — узкая.
    medium — средняя.
    thick — широкая.
    inherit

    Border-style

    Свойство задает стиль рамки элемента или отдельно для каждой её стороны, его значение должно отличаться от none .

    Значения:

    none — нет, а ширина равна 0.
    hidden — аналогично none , кроме применения к таблицам, где значение свойства Border-collapse равно collapse .
    inherit — наследование от родительского элемента.

    Допустимо использовать 1-4 значения — порядок применения, как для Border-width . Остальные значения лучше видны на картинке:

    Border-color

    Свойство задает цвет рамки элемента, либо различные цвета для её четырех сторон. Значение стиля должно отличаться от none и hidden .

    Значения:


    transparent — задает прозрачный цвет рамки.
    inherit — наследование от родительского элемента.
    Можно использовать 1-4 значения — порядок применения, как для Border-width .

    Border-

    Свойства задают ширину, стиль и цвет рамки элементов для определенной стороны.
    Значения : как для свойства Border .

    Border--width

    Свойства задают ширину рамки элемента для определенной стороны.
    Значения : как для свойства Border-width .

    Border--style

    Свойства задают стиль рамки элемента для определенной стороны.
    Значения : как для свойства Border-style .

    Border--color

    Свойства задают цвет рамки элемента для определенной стороны.
    Значения : как для свойства Border-color .

    CSS-рамка элемента представляет собой одну или несколько линий, окружающих содержимое элемента и его отступы padding . Рамка задаётся с помощью краткого свойства border . Стиль рамки задается с помощью трех свойств: стиль , цвет и ширина .

    Оформление рамок и границ HTML-элементов с помощью CSS-свойств

    1. Стиль рамки border-style

    По умолчанию рамки всегда отрисовываются поверх фона элемента, фон распространяется до внешнего края элемента. Стиль рамки определяет ее отображение, без этого свойства рамки не будут видны вообще. Для элемента можно задавать рамку для всех сторон одновременно с помощью свойства border-style или для каждой стороны отдельно с помощью уточняющих свойств border-top-style и т.д. Не наследуется.

    border-style
    (border-top-style, border-right-style, border-bottom-style, border-left-style)
    Значения:
    none Значение по умолчанию, означает отсутствие рамки. Также убирает рамку элемента из группы элементов с установленным значением данного свойства.
    hidden Эквивалентно none .
    dotted
    dotted
    dashed
    dashed
    solid
    solid
    double
    double
    groove
    groove
    ridge
    ridge
    inset
    inset
    outset
    outset
    {1,4}
    Одновременное перечисление четырех разных стилей для рамок элемента, только для свойства border-style:
    {border-style: solid dotted none dotted;}
    initial
    inherit

    Синтаксис

    P {border-style: solid;} p {border-top-style: solid;}

    2. Цвет рамки border-color

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

    border-color
    (border-top-color, border-right-color, border-bottom-color, border-left-color)
    Значения:
    transparent Устанавливает прозрачный цвет для рамки. При этом ширина рамки остается. Можно использовать для смены цвета рамки при наведении курсора мыши на элемент, чтобы избежать смещение элемента.
    цвет Цвет рамок задается при помощи значений свойства .
    {border-color: #cacd58;}
    {1,4}
    Одновременное перечисление четырех разных цветов для рамок элемента, только для свойства border-color:
    {border-color: #cacd58 #5faf8a #b9cea5 #aab238;}
    initial Устанавливает значение свойства в значение по умолчанию.
    inherit Наследует значение свойства от родительского элемента.

    Синтаксис

    P {border-color: #cacd58;}

    3. Ширина рамки border-width

    Ширина рамки задается с помощью единиц измерения длины или ключевых слов. Если для свойства border-style задано значение none , и для рамки элемента установлена какая-то ширина, то в данном случае ширина рамки приравнивается к нулю. Не наследуется.

    Синтаксис

    P {border-width: 2px;}

    4. Задание рамки одним свойством

    Свойство border позволяет объединить в себе следующие свойства: border-width , border-style , border-color , например:

    Div { width: 100px; height: 100px; border: 2px solid grey; }

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

    5. Задание рамки для одной границы элемента

    В случае, когда необходимо задать разный стиль границ элемента, можно воспользоваться краткой записью для соответствующей границы.
    Перечисленные ниже свойства объединяют в одно объявление следующие свойства: border-width , border-style и border-color . Перечень свойств указывается в заданном порядке, при этом одно или два значения могут быть пропущены, в этом случае их значения примут значения по умолчанию.

    Стиль верхней границы задается с помощью свойства border-top , нижней — border-bottom , левой — border-left , правой — border-right .

    Синтаксис

    P {border-top: 2px solid grey;}

    6. Внешний контур outline

    Свойство задаёт внешнюю границу вокруг элементов (т.е. за пределами обычной границы). Основная цель данного свойства — выделить какой-либо элемент. В отличие от свойства border , применение данного свойства не влияет на размер или местоположение элемента, т.к. контур отображается поверх блока элемента, что в свою очередь, может привести к перекрыванию внешних отступов элемента и соседних областей.

    Также, внешний контур, в отличие от рамки элемента, окружает элемент со всех сторон, обрамляя его целиком.

    Внешний контур всегда имеет прямоугольную форму, он не повторяет границы блока, для которого задан border-radius .

    Свойство outline позволяет объединить в себе следующие свойства: outline-color , outline-style , outline-width . Если какое-то из значений не указано, его место займет значение по умолчанию.

    Div { width: 100px; height: 100px; outline: #cacd58 solid 2px; }

    6.1. Стиль внешнего контура outline-style

    Вид линии внешнего контура задаётся аналогично со стилем рамки элемента. Не наследуется.

    Синтаксис

    P {outline-style: ridge;}

    6.2. Цвет внешнего контура outline-color

    Цвет внешнего контура можно прописывать только при установленном значении outline-style . Не наследуется.

    Синтаксис

    P { outline-style: ridge; outline-color: silver; }

    6.3. Толщина внешнего контура outline-width

    Толщина линии внешнего контура задается аналогично с толщиной рамки элемента. Не наследуется.

    Синтаксис

    P { outline-style: dotted; outline-width: 5px; }

    Свойство CSS border слажит для создания границы объекта, а именно за толщину рамки, за ее цвет и стиль. Это свойство широко используется в HTML. Можно создавать различные эффекты для лучшего восприятия контента на странице. Например, оформить сайдбар, шапку сайта, меню и т.п.

    1. Синтаксис CSS border

    border : border-width border-style border-color | inherit ;
    • border-width - толщина рамки. Можно задавать в пикселях (px) или воспользоваться стандартными значениями thin, medium, thick (они отличаются только шириной в пикселях)
    • border-style - стиль выводимой рамки. Может принимать следующие значения
      • none или hidden - отменяет границу
      • dotted - рамка из точек
      • dashed - рамка из тире
      • solid - простая линия (применяется чаще всего)
      • double - двойная рамка
      • groove - рифленая 3D граница
      • ridge , inset , outset - различные 3D эффекты рамки
      • inherit - применяется значение родительского элемента
    • border-color - цвет рамки. Можно задавать с помощью конкретного названия цвета или в формате RGB (см. названия html цветов для сайта)
    Примечание

    Значения в свойстве CSS border можно задавать в любой последовательности. Чаще всего используют последовательность "толщина стиль цвет".

    2. Примеры с различными границами рамок CSS border

    2.1. Пример. Разные стили оформления границы рамки border-style

    border-style: dashed
    border-style: dashed
    border-style: solid
    border-style: double
    border-style: groove
    border-style: ridge
    border-style: inset
    border-style: outset

    border-style: dotted

    border-style: dashed

    border-style: solid

    border-style: double

    border-style: groove

    border-style: ridge

    border-style: inset

    border-style: outset

    Четыре разных рамки

    2.2. Пример. Изменения цвета рамки при наведении курсора мыши

    Этот пример очень простой, но интересный. Он показывает, как можно использовать псевдокласс :hover и рамку CSS border для создания простых эффектов (например, для меню).

    При наведении курсора мыши на блок цвет рамки изменится

    Вот как это выглядит на странице:

    2.3. Пример. Как сделать прозрачную рамку border

    Рамку можно сделать прозрачной. Этот эффект редко, но иногда может быть очень полезен для веб-дизайнеров. Для задания прозрачности надо воспользоваться заданием цвета в виде RGBA (R, G, B, P) , где последним параметром задается прозрачность (вещественное число от 0.0 до 1.0)

    Вот как это выглядит на странице:

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

    Задает толщину линии. Ранее мы задавали ее в едином описании border.

    Синтаксис CSS border-width

    border-width : thin | medium | thick | значение ;
    • thin - тонкая толщина линии
    • medium - средняя толщина линии
    • thick - толстая толщина линии

    Ниже приведены несколько примеров. Самым необычным будет - это разная толщина границы у каждой стороны.

    border-width: thin
    border-width: medium
    border-width: thick
    Разная толщина у границ

    Вот как это выглядит на странице:

    border-width: thin


    border-width: medium


    border-width: thick


    Разная толщина у границ

    4. Как сделать рамку border только с одного края (границы)

    У свойства CSS border есть производные свойства для задания односторонних границ у элемента:

    • border-top - для задания рамки сверху (верхняя граница)
    • border-bottom - для задания рамки снизу (нижняя граница)
    • border-right - для задания рамки справа (правая граница)
    • border-left - для задания рамки слева (левая граница)

    Эти границы можно совмещать, т.е. прописать для каждого направления свою рамку. Синтаксис точно такой же как и у border.

    Также есть свойства

    • border-top-color - задание цвета верхний границы
    • border-top-style - задание стиля верхней границы
    • border-top-width - задание толщины верхней границы
    • и т.д. для каждого направления

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

    /* Описание двух одинаковых стилей: */

    4.1. Пример. Красивая рамка для выделения цитат

    Пример рамки для цитаты

    Вот как это выглядит на странице:

    Пример рамки для цитаты

    Примечание
    Можно задать отдельную границу для каждой из сторон.

    5. Как сделать несколько границ border у элемента html

    Иногда требуется сделать несколько границ. Приведем пример

    5.1. Первый вариант с несколькими границами

    Вот как это выглядит на странице:

    Есть второй способ через наложение теней.

    5.2. Наложение теней для создания нескольких границ

    Вот как это выглядит на странице:

    6. Скругление углов у границ (border-radius)

    Для создания красивых рамок используют свойство CSS border-radius (доступно только в CSS3). С помощью него можно делать скругления углов, что создает совсем другой вид. Например

    7. Вдавленная линия CSS

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


    Вот как это выглядит на странице:

    Для обращения к border из JavaScript нужно писать следующую конструкцию:

    document.getElementById("elementID").style.border ="VALUE "