# Border
The border-radius property allows you to change the shape of the basic box model.
Every corner of an element can have up to two values, for the vertical and horizontal radius of that corner (for a maximum of 8 values).

The first set of values defines the horizontal radius. The optional second set of values, preceded by a ‘/’ , defines the vertical radius. If only one set of values is supplied, it is used for both the vertical and horizontal radius.
The 10px is the horizontal radius of the top-left-and-bottom-right. And the 5% is the horizontal radius of the top-right-and-bottom-left. The other four values after ‘/’ are the vertical radii for top-left, top-right, bottom-right and bottom-left.
As with many CSS properties, shorthands can be used for any or all possible values. You can therefore specify anything from one to eight values. The following shorthand allows you to set the horizontal and vertical radius of every corner to the same value:
Border-radius is most commonly used to convert box elements into circles. By setting the border-radius to half of the length of a square element, a circular element is created:
Because border-radius accepts percentages, it is common to use 50% to avoid manually calculating the border-radius value:
If the width and height properties are not equal, the resulting shape will be an oval rather than a circle.
Browser specific border-radius example:
# border-style
The border-style property sets the style of an element’s border. This property can have from one to four values (for every side of the element one value.)

border-style can also have the values none and hidden . They have the same effect, except hidden works for border conflict resolution for <table> elements. In a <table> with multiple borders, none has the lowest priority (meaning in a conflict, the border would show), and hidden has the highest priority (meaning in a conflict, the border would not show).
# Multiple Borders
Using a pseudo element:

# border (shorthands)
In most cases you want to define several border properties ( border-width , border-style and border-color ) for all sides of an element.
Instead of writing:
You can simply write:
These shorthands are also available for every side of an element: border-top , border-left , border-right and border-bottom . So you can do:
# border-image
With the border-image property you have the possibility to set an image to be used instead of normal border styles.
A border-image essentially consist of a
- border-image-source : The path to the image to be used
- border-image-slice : Specifies the offset that is used to divide the image into nine regions (four corners, four edges and a middle)
- border-image-repeat : Specifies how the images for the sides and the middle of the border image are scaled
Consider the following example wheras border.png is a image of 90×90 pixels:
border-image: url("border.png") 30 stretch;
The image will be split into nine regions with 30×30 pixels. The edges will be used as the corners of the border while the side will be used in between. If the element is higher / wider than 30px this part of the image will be stretched. The middle part of the image defaults to be transparent.
# border-collapse
The border-collapse property applies only to table s (and elements displayed as display: table or inline-table ) and sets whether the table borders are collapsed into a single border or detached as in standard HTML.
# Creating a multi-colored border using border-image
The above example would produce a border that comprises of 5 different colors. The colors are defined through a linear-gradient (you can find more information about gradients in the docs
(opens new window) ). You can find more information about border-image-slice property in the border-image example

(Note: Additional properties were added to the element for presentational purpose.)
You’d have noticed that the left border has only a single color (the start color of the gradient) while the right border also has only a single color (the gradient’s end color). This is because of the way that border image property works. It is as though the gradient is applied to the entire box and then the colors are masked from the padding and content areas, thus making it look as though only the border has the gradient.
Which border(s) have a single color is dependant on the gradient definition. If the gradient is a to right gradient, the left border would be the start color of the gradient and right border would be the end color. If it was a to bottom gradient the top border would be the gradient’s start color and bottom border would be end color. Below is the output of a to bottom 5 colored gradient.

If the border is required only on specific sides of the element then the border-width property can be used just like with any other normal border. For example, adding the below code would produce a border only on the top of the element.

Note that, any element that has border-image property won’t respect the border-radius (that is the border won’t curve). This is based on the below statement in the spec:
A box’s backgrounds, but not its border-image, are clipped to the appropriate curve (as determined by ‘background-clip’).
# border-[left|right|top|bottom]
The border-[left|right|top|bottom] property is used to add a border to a specific side of an element.
For example if you wanted to add a border to the left side of an element, you could do:
Как сделать рамку? 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
Все знакомы с css параметром border, но есть ли вещи, которые мы не знаем о нем?
Основы
Всем знакомо такое использование:
Это однопиксельная сплошная рамка. Немного меняем синтаксис:
Например у параметра border-width есть три параметра: thin, medium, thick:
Если необходимо менять цвет границы при наведении на объект:
Но так это реализовать проще и правильнее:
Border-Radius
border-radius — это новый параметр CSS3 для отображения закругленных углов, который корректно работает во всех современных браузерах, за исключением Internet Explorer 8 (и более старых версий).
Для каждого угла можно назначить свое закругление:
В приведенном примере необязательно назначать «0» border-top-right-radius и border-bottom-left-radius, если они не наследуют значения, которые должны быть изменены.
Всю конструкцию можно сжать в одну строку:
А вот как можно нарисовать лимон средствами CSS:
Здесь описаны самые простые и популярные примеры применения параметра border. Перейдем к более сложным.
Несколько границ
Border-Style
solid, dashed, and dotted — самые популярные значения параметра border-style, но давайте рассмотрим другие, например, groove and ridge.
Или более подробно:
Outline
Самый популярный способ создания двойной границы — это параметр outline:
Этот способ отлично работает, но ограничен созданием двойной рамки. Если вам необходимо отобразить несколько границ элемента, то необходимо использовать другую технику.
Псевдоэлементы
Можно использовать такую конструкцию:
Возможно это не самое элегантное решение, однако оно работает
Box-Shadow
Еще один способ, с применением теней:
Изменение углов
К параметру border-radius можно применять два значения, используя "/", например:
Это то же самое, что:
Эта техничка бывает полезна, если необходимо имитировать искривление, а не закругление. Например, так можно получить эффект скрученной бумаги:
CSS фигуры
В следующих примерах предполагается такая разметка:
И такой базовый css:
Наиболее частым примером использования CSS фигур является отображение стрелок. Чтобы понять, как это работает, необходимо разобраться с использованием отдельного border-color для каждой стороны и установкой значения «0» для width и height:
Или то же самое:
А теперь оставляем только синий треугольник:

Создание Speech Bubble
Наша базовая разметка:
Теперь нужно расположить стрелку-треугольник в нужном месте. Вот наш цветной квадратик:
Оставляем только четверть квадратика:
Теперь перемещаем ниже и закрашиваем:
Примеры применения:
Вертикальное центрирование текста
минус использования line-height при вертикальном центрировании в ограничении текста одной строкой. Для решения этой проблемы, можно применить display: table к нашему Speech Bubble и display: table-cell к тексту:
Еще один пример нестандартного использования границ:
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: