Перейти к содержимому

Как задать border в css

  • автор:

Как правильно задать border кнопке (CSS)?

Нормально, для border-radius надо немного подправить код:

button

button с transparent и оберткой:

div < background: red; /*Цвет для отображения transparent в button*/ border-radius: 20px; border-left: 10px solid #ff7382; border-right: 10px solid #cb2fe7; background-image: linear-gradient(to right, #ff7382, #cb2fe7), linear-gradient(to right, #ff7382, #cb2fe7); background-size: 100% 10px; background-position: 0 0, 0 100%; background-repeat: no-repeat; width: 200px; >button
 

Отслеживать
ответ дан 21 мар 2018 в 14:45
2,359 6 6 серебряных знаков 17 17 бронзовых знаков
А в данном случае полностью прозрачный центр кнопки можно как-то сделать?
21 мар 2018 в 15:21
К сожалению, нет.
21 мар 2018 в 15:40
Но можно если обернуть кнопку. Добавил в ответ.
21 мар 2018 в 15:58
Да, про обертку тоже думал, но проблема в том, что теперь будем видеть фон обертки.
21 мар 2018 в 16:55

Фон обвертке можно задать прозрачный background: transparent, в примере просто красный задал, для наглядности.

22 мар 2018 в 6:49

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Свойство border: границы для блоков

Несколькими уроками ранее мы рассматривали схематическое изображение блока веб-страницы, а также вкратце рассказывали о таком свойстве 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 вы можете делать из обычной границы пунктирную, двойную, объемную — существует много различных значений. Для этого воспользуйтесь следующими ключевыми словами:

Варианты значений 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;

Разнообразие стилей border

Итоги

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

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

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

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

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

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

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

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

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

CSS Borders

The CSS border properties allow you to specify the style, width, and color of an element’s border.

I have borders on all sides.

I have a red bottom border.

I have rounded borders.

I have a blue left border.

CSS Border Style

The border-style property specifies what kind of border to display.

The following values are allowed:

  • dotted — Defines a dotted border
  • dashed — Defines a dashed border
  • solid — Defines a solid border
  • double — Defines a double border
  • groove — Defines a 3D grooved border. The effect depends on the border-color value
  • ridge — Defines a 3D ridged border. The effect depends on the border-color value
  • inset — Defines a 3D inset border. The effect depends on the border-color value
  • outset — Defines a 3D outset border. The effect depends on the border-color value
  • none — Defines no border
  • hidden — Defines a hidden border

The border-style property can have from one to four values (for the top border, right border, bottom border, and the left border).

Example

Demonstration of the different border styles:

p.dotted
p.dashed
p.solid
p.double
p.groove
p.ridge
p.inset
p.outset
p.none
p.hidden
p.mix

A dotted border.

A dashed border.

A double border.

A groove border. The effect depends on the border-color value.

A ridge border. The effect depends on the border-color value.

An inset border. The effect depends on the border-color value.

An outset border. The effect depends on the border-color value.

A hidden border.

Note: None of the OTHER CSS border properties (which you will learn more about in the next chapters) will have ANY effect unless the border-style property is set!

Как сделать рамку? 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 ).

Создание сплошной границы вокруг элемента

.card { border: 3px /* width */ solid /* style */ magenta; /* color */ }

border состоит из трёх других свойств (в скобках приведены значения каждого из них, которые они имеют по умолчанию):

  • border-width (medium);
  • border-style (none);
  • border-color (currentcolor).

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

Стилизация каждой границы по-отдельности посредством border-width, border-style и border-color

.card { border-width: 5px 5px 5px 5px; border-style: solid dashed solid dashed; border-color: #9c27b0 #f3e5f5 #9c27b0 #f3e5f5; }

При установке меньшего количества значений:

.card { border-width: 5px 10px 20px; /* top - 5px, left и right - 10px, bottom - 20px */ border-width: 5px 10px; /* top и bottom - 5px, left и right - 10px */ border-width: 5px; /* top, bottom, left и right - 5px */ }

border-width – толщина границы

CSS-свойство border-width определяет толщину границы. По умолчанию данное свойство имеет значение medium , что эквивалентно 3px.

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

Задание толщины границы с помощью border-width

.thin { border-width: thin; } .medium { border-width: medium; } .thick { border-width: thick; }

border-style – тип линии

CSS-свойство border-style предназначено для установки стилей границам.

Задание типа линиям границы с помощью CSS-свойства border-style

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

Отличие между border-style: none и border-style: hidden :

Отличие между border-style: none и border-style: hidden

   
hidden solid
none solid

border-color – цвет линии

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

Задать определённый цвет границам можно разными способами, а именно с помощью:

  • названия цвета, например: red , green и т.д.;
  • шестнадцатеричного кода, например: #ff0000 , #00ff00 и т.д.;
  • rgb() , rgba() , hsl() или hsla() ;
  • transparent (прозрачный);

Если указать одно значение, то оно будет применено сразу к 4 границам (верхней, правой, нижней и левой).

Использование CSS-свойства border-color для установки цвета границам элемента

.danger { border-color: #f44336; } .primary { border-color: #2196f3; } .success { border-color: #4caf50; }

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

.box { border-color: #f44336 #2196f3 #4caf50 #ff9800; }

Свойства для стилизации границ по-отдельности

В 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 используется с одним значением.

.box { border-radius: 20px; }

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

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

В основном это используется для создания круга путем установки border-radius , равным 50%.

.circle { border-radius: 50%; }

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

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

Скругление углов у элемента, у которого нет границ

.rect-1 { width: 150px; height: 100px; border: thick solid #689f38; border-radius: 40%; } .rect-2 { width: 150px; height: 100px; border: thick solid #689f38; border-radius: 40px; }

border-radius позволяет установить радиус скругления отдельно для каждого угла. Для этого необходимо перечислить значения через пробел (начиная с верхнего левого угла и далее двигаясь по часовой стрелке):

Кроме этого, скруглить отдельно каждый угол можно с помощью свойств border-top-left-radius , border-top-right-radius , border-bottom-right-radius и border-bottom-left-radius .

С двумя значениями:

.rect { border-radius: 10px 20px; }

С тремя значениями:

.rect { border-radius: 10px 20px 30px; }

Кроме этого, border-radius позволяет создавать ассиметрично скруглённые углы. Осуществляется это с помощью косой черты.

.rect { border-radius: 10px 20px 30px 40px / 20px 40px 60px 80px; }

Перед косой черты указываются значения, отвечающие за горизонтальные расстояния, а после — вертикальные.

border-image – изображение в качестве рамки

border-image – это CSS-свойство, которое позволяет установить в качестве границ элемента изображение или CSS градиент.

border-image можно применить к любому элементу, за исключением тегов, определяющих содержимое таблицы ( tr , th , td ) когда в качестве значения border-collapse установлено collapse .

Использование border-image для установки в качестве границ элемента изображение

  
square

border-image является краткой записью следующих пяти свойств:

  • border-image-source (none);
  • border-image-slice (100%);
  • border-image-width (1);
  • border-image-outset (0);
  • border-image-repeat (stretch).

Таким образом, пример приведённый выше с помощью специальных CSS-свойств можно записать следующим образом:

.square { border: 30px solid transparent; /* border-image: url('/examples/images/border.png') 16.66666667% / 1 / 0 stretch; */ border-image-source: url('/examples/images/border.png'); border-image-slice: 16.66666667%; border-image-width: 1; border-image-outset: 0; border-image-repeat: stretch; }

Пример создания градиентной границы с помощью border-image :

Использование border-image для создания градиентной границы

  
square

border-image-source

border-image-source – задаёт изображение (посредством URL-адреса, URI-данных или встроенного SVG) или CSS градиент, который необходимо использовать для отрисовки границы. Значение по умолчанию: none .

border-image-slice

border-image-slice – сообщает браузеру, как необходимо «разрезать» изображение и тем самым определить области для отрисовки границ.

В процессе нарезки изображения образуется 9 областей: четыре угла, четыре стороны и центр.

Области, которые образуется в результате нарезки изображения с помощью border-image-slice

  • Области 1 – 4 используется всего один раз для отрисовки соответствующих углов границ элемента;
  • Области 5 – 8 применяются для отрисовки соответствующих сторон границ, расположенных между углами. В зависимости от значения свойства border-image-repeat область исходного изображения может растягиваться, повторяться, масштабироваться или иным образом изменяться, чтобы соответствовать размерам элемента;
  • Область 9 является центральной и по умолчанию отбрасывается.

Для использования области 9 в качестве фонового изображения элемента, необходимо добавить в любое место значения border-image-slice ключевое слово fill . При этом это фоновое изображение будет располагаться поверх фактического background .

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

В border-image-slice можно установить от одного до четырёх значений:

  • при указании одного значения, все четыре среза создаются на одинаковом расстоянии от соответствующих сторон;
  • если два значения, то первая величина определяет срезы сверху и снизу, а вторая — слева и справа;
  • когда указаны три значения, первое создает срез сверху, второе – слева и справа, а третье – снизу;
  • при задании четырех значений, они определяют срезы соответственно сверху, справа, снизу и слева (т.е. по часовой стрелке).

При указании одного значения:

Использование border-image-slice для того, чтобы определить как необходимо разрезать изображение и тем самым определить области для отрисовки границ

.square { border: 30px solid transparent; border-image-source: url('/examples/images/border.png'); border-image-slice: 16.67%; }

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

Использование в border-image-slice двух значений для нарезки изображения и определения областей для отрисовки границ Изображение границ элемента при использовании в border-image-slice двух значений

.square { border: 30px solid transparent; border-image-source: url('/examples/images/border-01.png'); border-image-slice: 30% 10%; }

Свойства 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-width для установки толщины границы для изображения

  
square

border-image-outset

СSS-свойство border-image-outset задает расстояние, на которое нужно сместить границы наружу относительно их начального положения.

В border-image-outset можно задать от одного до четырёх значений:

  • при задании одного значения, оно применяется ко всем четырем сторонам;
  • если указаны два значения, то первое применяется к верхней и нижней границам, а второе — к левой и правой;
  • указании трёх значений, первое применяется к верхней границе, второе — к левой и правой, а третье — к нижней;
  • указаны четыре значения, они применяются к верхней, правой, нижней и левой границам в указанном порядке (по часовой стрелке).

Задавать значения можно с помощью:

  • px, em, rem и других CSS единиц — в этом случае смещение будет определяться в соответствии с этим значением;
  • числа – в этом случае расстояние будет равно этому число умноженное на значение border-width .

Пример, в котором сместим границы на величину, равную 1 * border-width :

Смещение границ элемента на величину, равную 1 * border-width

  
square

border-image-repeat

CSS свойство border-image-repeat определяет как должны быть заполнены части границ, расположенные между углами в соответствии с областями 5 – 8 исходного изображения.

border-image-repeat может быть установлено с использованием одного или двух значений.

Когда указано одно значение, то оно применяет одно и то же поведение ко всем четырем сторонам. При задании двух значений, первое применяется к верхней и нижней сторонам, а второе — к левому и правому.

  • stretch (по умолчанию) – растягивает области 5 – 8 исходного изображения для заполнения частей границ между углами;
  • repeat – повторяет области 5 – 8 исходного для заполнения промежутка между углами границ границей (если область изображения целиком не помещается, то оно обрезается);
  • round – тоже самое что repeat , за исключением того, что когда часть изображения не помещается, оно масштабируется таким образом, чтобы вписать его N раз;
  • space – тоже самое что repeat , за исключением того, что когда часть изображения не помещается, между ними добавляется пустое пространство таким образом, чтобы вписать его N раз.

Пример border-image-repeat с одним значением:

Пример border-image-repeat с одним значением

  
rectangle

Пример border-image-repeat с двумя значениями:

Пример border-image-repeat с двумя значениями

  
rectangle

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *