Как сделать рамку? CSS-свойство border

В этой статье изучим CSS-свойства для стилизации границ элемента: border , border-width , border-style , border-color , border-radius , border-image , border-image-source , border-image-slice , border-image-width , border-image-outset и border-image-repeat .
border — оформление границ элемента
CSS-свойство border предназначено для управления оформлением границ элемента. Границы располагаются перед фоном элемента.
border – это универсальное свойство для стилизации границ (рамки) вокруг элемента. Оно позволяет установить сразу три характеристики: толщину границ ( border-width ), стиль линий ( border-style ) и цвет ( border-color ).

border состоит из трёх других свойств (в скобках приведены значения каждого из них, которые они имеют по умолчанию):
- border-width (medium);
- border-style (none);
- border-color (currentcolor).
Свойство border устанавливает стили сразу для всех четырёх границ. В отличие от него border-width , border-style и border-color могут принимать до 4 значений, и тем самым стилизовать каждую из сторон по-отдельности.

При установке меньшего количества значений:
border-width – толщина границы
CSS-свойство border-width определяет толщину границы. По умолчанию данное свойство имеет значение medium , что эквивалентно 3px.
Задавать значение можно с помощью ключевых слов: thin (эквивалентно 1px), medium (3px) и thick (5px), а также используя различные единицы измерения: px, em, rem, vh, vw.

border-style – тип линии
CSS-свойство border-style предназначено для установки стилей границам.
- solid – сплошная непрерывная линия;
- none (по умолчанию) – без отображения границы;
- hidden – то же самое, что none , за исключением отображения границ у ячеек таблицы с border-collapse: collapse ;
- dashed – штриховая линия;
- dotted – линия из точек;
- double – двойная линия;
- groove – линия со вдавленным эффектом;
- ridge – линия с выпуклым эффектом;
- inset – добавляет эффект к границе таким образом, чтобы весь блок выглядел вдавленным;
- outset – добавляет эффект к границе таким образом, чтобы весь блок выглядел выпуклым;
Отличие между border-style: none и border-style: hidden :

border-color – цвет линии
CSS-свойство border-color используется для установки цвета границам элемента. По умолчанию оно имеет значение currentcolor , т.е. наследует цвет элемента.
Задать определённый цвет границам можно разными способами, а именно с помощью:
- названия цвета, например: red , green и т.д.;
- шестнадцатеричного кода, например: #ff0000 , #00ff00 и т.д.;
- rgb() , rgba() , hsl() или hsla() ;
- transparent (прозрачный);
Если указать одно значение, то оно будет применено сразу к 4 границам (верхней, правой, нижней и левой).

Но можно установить и отдельно для каждой, для этого значения необходимо перечислить через пробел:

Свойства для стилизации границ по-отдельности
В CSS имеются свойства, которые позволяют задать стиль определённой границы (top – верхней, right – правой, bottom – нижней и left – левой): border-top , border-right , border-bottom и border-left .
Кроме этого также доступны CSS-свойства для задания отдельных характеристик границ:
- для толщины: border-top-width , border-right-width , border-bottom-width и border-left-width ;
- для типа линии: border-top-style , border-right-style , border-bottom-style и border-left-style ;
- для цвета: border-top-color , border-right-color , border-bottom-color и border-left-color .
border-radius – закругление углов
CSS-свойство border-radius позволяет скруглить углы границ элементов.

border-radius работает даже если у элемента нет границ, т.к. его действие распространяется и на фон.

В основном border-radius используется с одним значением.
Когда вы используете только одно значение, все углы элемента скругляются на это значение.
Кроме указания значений, с помощью единиц измерения для задания фиксированной длины (например: px, rem, em и т.д.), вы также можете использовать проценты.
В основном это используется для создания круга путем установки border-radius , равным 50%.

Значение, заданное в процентах, вычисляется в зависимости от ширины и высоты элемента. Поэтому, когда вы используете его для прямоугольника, углы у вас будут не симметричными.
Пример, показывающий разницу между border-radius: 40px и border-radius: 40% применительно к прямоугольнику:

border-radius позволяет установить радиус скругления отдельно для каждого угла. Для этого необходимо перечислить значения через пробел (начиная с верхнего левого угла и далее двигаясь по часовой стрелке):
Кроме этого, скруглить отдельно каждый угол можно с помощью свойств border-top-left-radius , border-top-right-radius , border-bottom-right-radius и border-bottom-left-radius .
С двумя значениями:
С тремя значениями:
Кроме этого, border-radius позволяет создавать ассиметрично скруглённые углы. Осуществляется это с помощью косой черты.
Перед косой черты указываются значения, отвечающие за горизонтальные расстояния, а после — вертикальные.
border-image – изображение в качестве рамки
border-image – это CSS-свойство, которое позволяет установить в качестве границ элемента изображение или CSS градиент.
border-image можно применить к любому элементу, за исключением тегов, определяющих содержимое таблицы ( tr , th , td ) когда в качестве значения border-collapse установлено collapse .

border-image является краткой записью следующих пяти свойств:
- border-image-source (none);
- border-image-slice (100%);
- border-image-width (1);
- border-image-outset (0);
- border-image-repeat (stretch).
Таким образом, пример приведённый выше с помощью специальных CSS-свойств можно записать следующим образом:
Пример создания градиентной границы с помощью border-image :

border-image-source
border-image-source – задаёт изображение (посредством URL-адреса, URI-данных или встроенного SVG) или CSS градиент, который необходимо использовать для отрисовки границы. Значение по умолчанию: none .
border-image-slice
border-image-slice – сообщает браузеру, как необходимо «разрезать» изображение и тем самым определить области для отрисовки границ.
В процессе нарезки изображения образуется 9 областей: четыре угла, четыре стороны и центр.
- Области 1 – 4 используется всего один раз для отрисовки соответствующих углов границ элемента;
- Области 5 – 8 применяются для отрисовки соответствующих сторон границ, расположенных между углами. В зависимости от значения свойства border-image-repeat область исходного изображения может растягиваться, повторяться, масштабироваться или иным образом изменяться, чтобы соответствовать размерам элемента;
- Область 9 является центральной и по умолчанию отбрасывается.
Для использования области 9 в качестве фонового изображения элемента, необходимо добавить в любое место значения border-image-slice ключевое слово fill . При этом это фоновое изображение будет располагаться поверх фактического background .
Указывать смещения от краёв для нарезки изображения можно с помощью числа, так и процентов. При указании числа расстояние будет определяться количеством пикселей для растровых изображений или координатой для векторных. При указании процентов – в процентах от размера исходного изображения.
В border-image-slice можно установить от одного до четырёх значений:
- при указании одного значения, все четыре среза создаются на одинаковом расстоянии от соответствующих сторон;
- если два значения, то первая величина определяет срезы сверху и снизу, а вторая — слева и справа;
- когда указаны три значения, первое создает срез сверху, второе – слева и справа, а третье – снизу;
- при задании четырех значений, они определяют срезы соответственно сверху, справа, снизу и слева (т.е. по часовой стрелке).
При указании одного значения:

При указании двух значений:

Свойства border-image-repeat , border-image-width и border-image-outset позволяют задать каким образом эти области должны использоваться для формирования окончательной отрисовки границы.
border-image-width
Свойство border-image-width устанавливает толщину границы для изображения. По умолчанию имеет значение 1 (это означает, что она равна border-width ).
Если значение этого свойства задать больше, чем border-width , то тогда граница будет накладываться под внутренний контент элемента.
В border-image-width можно задать от одного до четырех значений:
- при указании одного значения, все четыре границы будут иметь одну эту толщину;
- при задании двух значений, первая величина будет определять толщину верхней и нижней границы, а вторая – левой и правой;
- когда указаны три значения: первая величина будет задавать толщину верхней границы, вторая – левой и правой, а третья – нижней;
- при задании четырёх значений: первая величина – за толщину верхней границы, вторая – правой, третья – нижней и четвёртая – левой (т.е. по часовой стрелке, начиная с верхней).
Задавать значение можно с помощью:
- числа – в этом случае, толщина границы будет вычисляться как значение border-width умноженное на это число;
- px и других единиц – в соответствии с указанными единицами;
- процентов (%) – толщина границы будет вычисляться в процентах относительно размера блока;
- ключевого слова auto – толщина границы берётся из border-image-slice (если подходящего размера нет, то используется то, что задано в border-width ).
Пример установки толщины границы для изображения в раза превышающей border-width :

border-image-outset
СSS-свойство border-image-outset задает расстояние, на которое нужно сместить границы наружу относительно их начального положения.
В border-image-outset можно задать от одного до четырёх значений:
- при задании одного значения, оно применяется ко всем четырем сторонам;
- если указаны два значения, то первое применяется к верхней и нижней границам, а второе — к левой и правой;
- указании трёх значений, первое применяется к верхней границе, второе — к левой и правой, а третье — к нижней;
- указаны четыре значения, они применяются к верхней, правой, нижней и левой границам в указанном порядке (по часовой стрелке).
Задавать значения можно с помощью:
- px, em, rem и других CSS единиц — в этом случае смещение будет определяться в соответствии с этим значением;
- числа – в этом случае расстояние будет равно этому число умноженное на значение border-width .
Пример, в котором сместим границы на величину, равную 1 * border-width :

border-image-repeat
CSS свойство border-image-repeat определяет как должны быть заполнены части границ, расположенные между углами в соответствии с областями 5 – 8 исходного изображения.
border-image-repeat может быть установлено с использованием одного или двух значений.
Когда указано одно значение, то оно применяет одно и то же поведение ко всем четырем сторонам. При задании двух значений, первое применяется к верхней и нижней сторонам, а второе — к левому и правому.
border-color¶
Свойство border-color устанавливает цвет границы на разных сторонах элемента.
Свойство позволяет задать цвет границы сразу для всех сторон элемента или только для указанных.
Каждую сторону можно установить по отдельности, используя border-top-color , border-right-color , border-bottom-color и border-left-color ; или с использованием режима записи border-block-start-color , border-block-end-color , border-inline-start-color и border-inline-end-color .
Это свойство является сокращением для следующих свойств CSS:
- border-bottom-color
- border-left-color
- border-right-color
- border-top-color
Синтаксис¶
Значения¶
Разрешается использовать одно, два, три или четыре значения, разделяя их между собой пробелом. Результат зависит от количества и указан в табл. 1.
CSS Border
![]()
CSS border property is used to set the border of an HTML element.
The border property is shorthand for three sub-properties that define the style, color, and width of a border.
border-width
Sets the thickness of the border. Defaults to medium if absent.
OR
border-style ♀️
Sets the style of the border. Defaults to none if absent.
color
Sets the color of the border. Defaults to currentcolor if absent.
CSS Individual Borders
The border sub-properties and property can also be applied to an individual side of a web element.
border-inline ✣
This maps to a physical border style depending on the element’s writing mode, directionality, and text orientation
border-inline-start-style/border-inline-end-style ✣
The border-inline-start-style CSS property defines the style of the logical inline start/end border of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation.
border-block ▀
The border-block-end CSS property is a shorthand property for setting the individual logical block-end border property values in a single place in the style sheet.
border-image
The border-image CSS property draws an image around a given element. It replaces the element’s regular border.
- border-image-outset
- border-image-repeat
- border-image-slice
- border-image-source
- border-image-width
1️. border-image-outset
The border-image-outset CSS property sets the distance by which an element's border image is set out from its border box.
The distance of the border image from the element’s outside edge. Up to four values may be specified.
The parts of the border image that are rendered outside the element’s border box with border-image-outset do not trigger overflow scrollbars and don't capture mouse events.
The border-image-outset property may be specified as one, two, three, or four values.
Each value is a length/number. Negative values are invalid and will cause the border-image-outset declaration to be ignored.
2️. border-image-repeat
The border-image-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element’s border image.
stretch
The source image’s edge regions are stretched to fill the gap between each border.
repeat
The source image’s edge regions are tiled (repeated) to fill the gap between each border. Tiles may be clipped to achieve the proper fit.
round
The source image’s edge regions are tiled (repeated) to fill the gap between each border. Tiles may be stretched to achieve the proper fit.
space
The source image’s edge regions are tiled (repeated) to fill the gap between each border. Extra space will be distributed in between tiles to achieve the proper fit.
3️. border-image-slice
The border-image-slice CSS property divides the image specified by border-image-source into regions. These regions form the components of an element’s border image.
The slicing process creates nine regions in total: four corners, four edges, and a middle region. Four slice lines, set a given distance from their respective sides, control the size of the regions.
- Zones 1–4 are corner regions. Each one is used a single time to form the corners of the final border image.
- Zones 5–8 are edge regions. These are repeated, scaled, or otherwise modified in the final border image to match the dimensions of the element.
- Zone 9 is the middle region. It is discarded by default, but is used like a background image if the keyword fill is set.
The border-image-repeat, border-image-width, and border-image-outset properties determine how these regions are used to form the final border image.
4️. border-image-source
The border-image-source CSS property sets the source image used to create an element’s border image.
5️. border-image-width
The border-image-width CSS property sets the width of an element’s border image.
Created few border & border-image example, Checkout the link in @codepen:
Свойство CSS border
Свойство CSS border слажит для создания границы объекта, а именно за толщину рамки, за ее цвет и стиль. Это свойство широко используется в HTML. Можно создавать различные эффекты для лучшего восприятия контента на странице. Например, оформить сайдбар, шапку сайта, меню и т.п.
1. Синтаксис CSS border
- border-width — толщина рамки. Можно задавать в пикселях (px) или воспользоваться стандартными значениями thin, medium, thick (они отличаются только шириной в пикселях)
- border-style — стиль выводимой рамки. Может принимать следующие значения
- none или hidden — отменяет границу
- dotted — рамка из точек
- dashed — рамка из тире
- solid — простая линия (применяется чаще всего)
- double — двойная рамка
- groove — рифленая 3D граница
- ridge , inset , outset — различные 3D эффекты рамки
- inherit — применяется значение родительского элемента
Значения в свойстве CSS border можно задавать в любой последовательности. Чаще всего используют последовательность «толщина стиль цвет».