CSS border: radius, color, style та інші css властивості border. Зміщення зовнішньої рамки outline-offset. Встановлення значень для сторін окремо

Думаю, всі знають, що зробити закруглені кути біля блоків – велика проблема. Крос-браузерного рішення без застосування JS милиць поки не існує. З релізом IE9 головного болю поменшає, але якщо ви все ще кип'ятите верстаєте під IE6/7, для вас це не стане порятунком. Але навіть якщо IE6/7 кануть у лету, ще чимало часу пройде, поки ми забудемо про 8 версії цього браузера, який теж не підтримує параметр border-radius. Іншими словами, сидіти на яваскриптових стероїдах наші сайти будуть ще довго.

Статей на тему округлих форм написано чимало, але всі вони (ті, що я зміг знайти), замовчують тонкощі і нюанси застосування фіксів для існуючої проблеми. Я постараюся перерахувати всі труднощі, з якими мені довелося зіткнутися при використанні популярних рішень.

Для початку, скажу пару слів про те, як змінюється ситуація з border-radiusпід час виходу нових версій браузерів.

По-перше, 4-а версія FireFox тепер не потребує свого власного параметра -moz-border-radius. IE9, як я вже говорив, теж реалізує підтримку border-radius, принаймні, в RС версії вона вже є. Opera все чудово з версії 10.5.

Тепер рішення для тих, кого Бог поділив.

І так, існує два найбільш відомих та застосовуваних способи зробити border-radius крос-браузерним. Перший з них – Curved-corner, який використовує VML та behaviour. Другий – CSS3 PIE, який має дві реалізації. Одна також заснована на VML і behaviour, друга являє собою JavaScript бібліотеку.

Розглянемо обидва рішення.

Curved-corner

З плюсів я знайшов тільки один - мала вага файлу, що підключається border-radius.htc. Поточна версіяреалізації займає лише 5кб. Проти PIE, який важить 33 кб, безумовно, це є значною перевагою. Але на цьому плюси закінчуються, принаймні для мене.

Мінусів дуже багато. Наприклад, не працюватиме така ось конструкція:

#selector ( border: #c6c5c2 1px solid; border-top: none; border-radius: 0 0 6px 6px; background: #f0ecdf; behavior: url(border-radius.htc); )

По-перше, не можна забрати рамку з однієї зі сторін. Тобто, параметр border-top приб'є рамку взагалі всього блоку, хоча кути залишаться закругленими. Кумедно, але параметр border-bottom рамку залишить на місці, але ніякого ефекту не дасть, тобто бордер залишиться навколо всього блоку.

По-друге, якщо вам необхідно обтесати всього два кути, як у прикладі, то на вас чекає розчарування. Curved-cornerтакого не вміє. Він може закруглювати лише всі кути блоку і на рівне значення радіуса. Кутів з різним радіусом заокруглення досягти не вийде. Правильні та робочий варіант виглядає тільки так:

#selector ( border: #c6c5c2 1px solid; border-radius: 6px; behavior: url(border-radius.htc); )

По-третє, Curved-corner не працює для блоків, у яких як тло задано зображення.

Ну останній неприємний момент- швидкість роботи. Кути закруглюються далеко не одразу. З моменту завантаження сторінки і до того, як кути приймуть потрібну формупроходить близько секунди. Візуально затримка дуже помітна і добре впадає у вічі.

Були ще якісь проблеми (читайте нюанси), але зараз уже не пригадаю.

Резюмуючи, можна сказати, що цей фікс підходить лише для дуже простих завдань. Хоча, як показує практика, такі прості завдання трапляються нечасто.

CSS3 PIE

Важить багато, нічого не скажеш. Версія PIE 1.0 beta 4 займає 33 кб, як у реализации.htc, і js аналог. Але при цьому CSS3 PIE позбавлений всіх тих проблем із border-radius, які є у Curved-corner. Також мені значно імпонує можливість використовувати JS реалізацію, яка не вимагає додаткового коду CSS і може чіплятися на будь-який селектор (при використанні jQuery, наприклад).

CSS3 PIE затримка у малюванні також присутня (іноді ні), але значно менша, ніж у випадку з Curved-corner. Вона практично непомітна, що робить бібліотеку дуже привабливою та придатною до використання.

Ну і найпрекрасніше полягає в тому, що CSS3 PIE виправляє проблему не тільки з border-radius, але й додає значно кількість властивостей CSS3 у криві майкрософтівські браузери. Так, наприклад, працюватимуть border-image та box-shadow, властивості роботи з градієнтами. Вирішується проблема прозорості pngі багато іншого. Все це хвацько компенсує і пояснює розмір CSS3 PIE.

Ще дьогтю

На жаль, ні CSS3 PIE, ні Curved-corner не здатні заткнути собою всі щілини. Так, наприклад, круглих кутів ви не отримаєте тих елементів, які спочатку приховані - мають параметр display: none . Аналогічно з параметром visible та його значенням hidden. Можуть виникнути проблеми, якщо елемент абсолютно позиціонується. На жаль, дати детальний описситуації не можу, тому що не вдалося повторити умови, за яких виникали проблеми, але пам'ятаю, що проблеми безперечно були.

Є ще одна відома мені проблема. Для того, щоб застосувати border-radius для елемента при наведенні на нього курсору миші, наприклад:

A:hover ( background: #ccc; color: #000; border: #ccc 1px solid; border-radius: 6px )

Необхідно, щоб цей елемент мав закруглені кути спочатку, інакше ефекту не буде. Тобто, в даному прикладі, повинен бути селектор A, у якого також буде заданий border-radius і border:

A ( background: #fff; color: #000; border: #fff 1px solid; border-radius: 6px ) a:hover ( background: #ccc; color: #000; border: #ccc 1px solid; border-radius: 6px )

Підсумки

Особисто для мене безумовним фаворитом є CSS3 PIE. Справді справляється зі своїм завданням і робить це гідно. До того ж, бібліотека розвивається. Цей розвиток супроводжується регулярним виходом нових версій, що дуже обнадіює.

Я впевнений, що ви вже знайомі з css властивістю border. Чи дізнаєтесь ви щось нове, чого не знали раніше про css border? Що ж, не тільки дізнаєтесь, а й побачите кілька нових речей, яких ви ніколи не знали раніше!

Не тільки CSS3 можна використовувати для закруглення куточків, але й чистий CSS-код підійде для створення складних форм. Раніше ви могли використовувати background-image для створення враження закруглених куточків. Завдяки новим технікам використання border, ми можемо зробити це на чистому css коді.

Основи використання css border

Напевно, ви вже ознайомлені з стандартним використанням border властивості:

Border: 1px solid black;

Код вище, виведе рамку у 1px, яка буде чорного кольору. Легко і просто. Також можна трохи розширити синтаксис:

Border-width: thick; border-style: solid; border-color: black;

Як додаток можна використовувати специфічні значення властивості border-width, три ключових слова: thin, medium, thick.

Але використання розширеного синтаксису який завжди практично. Давайте розглянемо приклад, коли потрібно змінити колір рамки блоку при наведенні миші. У такому разі використання скороченого синтаксису набагато простіше:

Box ( border: 1px solid red; ) .box:hover ( border: 1px solid green; )

Елегантніше і простіше можна зробити наступним чином:

Box ( border: 1px solid red; ) .box:hover ( border-color: green; )

Як бачите, розширена техніка також корисна, коли ми змінюємо лише деякі властивості: width, style, color та інші.

Border-Radius

Border-radius- це "золота" властивість CSS3 - перша, найбільш поширена властивість, яка стала практичною і корисною. Виключаючи IE8 та версії нижче, всі браузери відображають закруглені куточки за допомогою цього.

Хоча, необхідно використовувати спеціальні префікси для Webkit та Mozilla, щоб стилізація була коректною.

Webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px;

В даний час ми можемо прибрати спеціальні префікси, і використовувати стандартну форму border-radius.

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

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

У коді вище, встановлюючи border-top-right-radius та border-bottom-left-radius на «нуль», можна досягти дивовижних форм. Хоча елемент може успадковувати деякі властивості, які потрібно обнулити.

На кшталт margin і padding, ми можемо стиснути синтаксис:

/* top left, top right, bottom right, bottom left */ border-radius: 20px 0 30px 0;

Як приклад застосування властивості border-radius покажу вам «лимон», який часто використовують дизайнери при верстці сайтів:

Lemon ( width: 200px; height: 200px; background: #F5F240; border: 1px solid #F0D900; border-radius: 10px 150px 30px 150px; )

Ідемо далі основ

У багатьох дизайнерів всі знання, в області css властивості border, на цьому закінчуються. Але існує ще кілька крутих штук, за допомогою яких можна створити чудові речі!

Складні структури css border

Існує безліч технік для створення дизайну із застосуванням складних структур border. Наприклад, розберемо такі…

Border-Style

Ми завжди використовуємо найбільш відомі властивості solid, dashed та dotted. Але існує кілька інших властивостей border-style: groove і ridge.

Border: 20px groove #e3e3e3;

Або в розширеному синтаксисі:

Border-color: #e3e3e3; border-width: 20px; border-style: groove;

Хоча ці властивості корисні, але вони є основою створення складних рамок.

Outline

Найбільш популярна техніка створення подвійний рамки- Використання властивості outline.

Box ( border: 5px solid #292929; outline: 5px solid #e3e3e3; )

Цей спосіб працює відмінно, хоча він нас обмежує тільки двома рамками. Іноді буває потрібно створити градієнтний border, який складається з багатьох верств… як тоді?

Псевдоелементи

Коли техніки outline мало, альтернативним засобомє використання псевдо елементів:before та:after. За допомогою яких можна додати додаткові рамкидо елемента:

Box ( width: 200px; height: 200px; background: #e3e3e3; position: relative; border: 10px solid green; ) /* Create 2 boxes with same width of container */ .box:after, .box:before ( content: ""; position: absolute; top: 0; left: 0; bottom: 0; right: 0; ) .box:after ( border: 5px solid red; : 10px solid blue;

На вигляд не дуже елегантно, але принаймні це працює. Трохи проблемно розібратися з послідовністю кольорів у межах… але зрозуміти можна.

Box-Shadow

Цікавим «дитячим способом» створення подібного ефекту є використання CSS3 властивості box-shadow:

Box ( border: 5px solid red; box-shadow: 0 0 0 5px green, 0 0 0 10px yellow, 0 0 0 15px orange; )

У цьому випадку ми були розумнішими, використовували спеціально призначену властивість box-shadow. Змінюючи параметри x, y, blur на нуль, ми можемо використовувати різні кольори для створення безлічі рамок.

Але є проблемка, в старих браузерах, які не розуміють властивості box-shadow, буде видно лише одну червону рамку в 5px.

«Пам'ятайте! Дизайн сайту має виглядати кроссбраузерно, тобто однаково у всіх браузерах. Включаючи старі версії.

Змінюємо кути

На додаток до використовуваного простого значення border-radius, ми можемо вказати два окремі - розділяючи їх через / ми вкажемо горизонтальний і вертикальний радіус.

Для прикладу:

Border-radius: 50px/100px; /* horizontal radius, vertical radius */

… це рівносильно:

Border-top-left-radius: 50px 100px; border-top-right-radius: 50px 100px; border-bottom-right-radius: 50px 100px; border-bottom-left-radius: 50px 100px;

Ця техніка підходить для створення унікальних форм блоків. Наприклад, ось створення ефекту загорнутого паперу:

Box ( width: 200px; height: 200px; background: #666; border-top-left-radius: 15em 1em; border-bottom-right-radius: 15em 1em; )

CSS форми, з використанням border

Ця техніка показує, як можна створювати css форми, при цьому використовувати елементи з нульовими розмірамивисоти та ширини. Здивовані? Давайте подивимося на прикладі…

Для наступних кількох прикладів ми будемо використовувати наступну розмітку:

…і наступний базовий стиль:

Box ( width: 200px; height: 200px; background: black; )

Найчастіший приклад використання CSS форм - створення обтічної стрілки. Секрет цієї стрілки криється у створенні border із різними кольорами для кожної із сторін. Потім ставимо атрибути width і height на 0.

Призначимо до блоку div клас arrow:

Arrow ( width: 0; height: 0; border-top: 100px solid red; border-right: 100px solid green; border-bottom: 100px solid blue; border-left: 100px solid yellow; )

Щоб продемонструвати, спочатку ми використовуємо розширений синтаксис. Далі ми можемо забрати зайвий код, використовуючи скорочений синтаксис:

Arrow ( width: 0; height: 0; border: 100px solid; border-color: red green blue yellow; )

Цікаво, чи не так? Тепер ми встановимо прозорі кольорина всі боки, крім блакитної сторони.

Arrow ( width: 0; height: 0; border: 100px solid; border-bottom-color: blue; )

Чудово вийшло! Але це суперечить семантичній верстці, створювати.arrow div, тільки для того, щоб додати стрілку на сторінку. Для цієї мети ми можемо використовувати псевдоелементи, що ми зараз і зробимо.

Створюємо Speech Bubble

Для створення Speech Bubble («Мовленевого хмари»), нам знадобиться невеликий шматочок чистого CSSкоду та один div блок.

Hi there!

Speech-bubble ( position: relative; background-color: #292929; width: 200px; height: 150px; line-height: 150px; /* vertically center */ color: white; text-align: center; )

Speech-bubble:after (content: ""; )

На цьому етапі ми створимо стрілочку, яку робили раніше, додамо до елемента і залишається лише позиціонувати:

Speech-bubble:after ( content: ""; position: absolute; width: 0; height: 0; border: 10px solid; border-color: red green blue yellow; )

Якщо ми хочемо, щоб стрілочка була спрямована вниз, нам доведеться встановити все border прозорими, крім верхнього.

Speech-bubble:after ( content: ""; position: absolute; width: 0; height: 0; border: 10px solid; border-top-color: red; )

Коли ми створюємо цю CSS форму, ми можемо конкретно вказати розмір стрілочки. Натомість ми можемо встановити властивість border-width, яка призначатиме розмір для стрілочки. Також ми встановимо позицію стрілочки внизу посередині. Відповідно для цього використовуємо значення top та left.

Speech-bubble:after ( content: ""; position: absolute; width: 0; height: 0; border: 15px solid; border-top-color: red; top: 100%; left: 50%; )

Крім цього, нам залишається надати колір, такий самий як у блоку. Пам'ятайте, що при позиціонуванні, потрібно враховувати розмір інших border, які невидимі (15px). Також додамо блоку заокруглення по кутах.

Speech-bubble ( /* … інші styles */ border-radius: 10px; ) .speech-bubble:after ( content: ""; position: absolute; width: 0; height: 0; border: 15px solid; border-top -color: #292929; top: 100%; left: 50%; margin-left: -15px; /* adjust for border width */ )

Не погано, га? Використовуючи кілька css класів та хитрощі border, можна створити таку штуку.

/* Speech Bubbles Usage: застосуйте клас.speech-bubble і.speech-bubble-НАПРЯМ, як показано нижче

Hi there
*/ .speech-bubble ( position: relative; background-color: #292929; width: 200px; height: 150px; line-height: 150px; /* vertically center */ color: white; text-align: center; border- radius: 10px; font-family: sans-serif; ) .speech-bubble:after ( content: ""; position: absolute; width: 0; height: 0; border: 15px solid; ) /* Position the Arrow .speech-bubble-top:after ( border-bottom-color: #292929; left: 50%; bottom: 100%; margin-left: -15px; ) .speech-bubble-right:after ( border-left-color : #292929; left: 100%; top: 50%; margin-top: -15px; ) .speech-bubble-bottom:after ( border-top-color: #292929; top: 100%; left: 50%; margin-left: -15px; ) .speech-bubble-left:after ( border-right-color: #292929; top: 50%; right: 100%;

Бонус! Вертикальне центрування всередині блоку

Для одного рядка тексту можна використовувати line-height. Але якщо у вас два або більше рядків тексту ... найкращим рішенням буде встановити display властивість на table, і помістити весь текст у параграф. Ось як це виглядає на html розмітці:

Speech-bubble ( /* other styles */ display: table; ) .speech-bubble p ( display: table-cell; vertical-align: middle; )

Ми не обмежуємось трикутниками. CSS здатний відобразити різні форми - навіть серця і символ біологічної небезпеки.

Biohazard ( width: 0; height: 0; border: 60px solid; border-radius: 50%; border-top-color: black; border-bottom-color: black; border-left-color: yellow; border-right- color: yellow; )

Висновок


У попередньому уроці ми вивчили, як встановити кордон для елемента. Також були розглянуті такі властивості як border-color та border-style, за допомогою яких можна налаштовувати колір та стиль кордону. Однак усі рамки у нас виходили з прямими кутами. Тепер ми розповімо, як можна зробити закруглені кути в CSS для кордонів.

Як закруглити кути: властивість CSS3 border-radius

Закруглення кутів CSS можна зробити для будь-якого елементу HTML-сторінки. І тому необхідно застосувати щодо нього властивість border-radius з відповідним значенням. Найчастіше значення вказується в пікселях, але можна також використовувати інші одиниці, наприклад, em або відсотки (в останньому випадку обчислення проводиться щодо ширини блоку).

Ефект даної властивостібуде помітний лише за умови, що стилізований елемент має кольорове тло та/або кордон. Наприклад:

BorderElement ( background-color: #EEDDFF; border: 6px solid #7922CC; border-radius: 25px; )

Стиль, описаний вище, дасть наступний результат на елементі

розміром 200×200 пікселів:


Ви також можете зробити закруглені краї тільки для верхніх або нижніх кутів елемента або задати кожному куту різний радіус заокруглення – велике поле для фантазії! Приклад:

BorderElement ( background-color: #EEDDFF; border: 6px solid #7922CC; border-radius: 25px; ) .borderElement1 ( background-color: #FFE8DB; border: 6px solid #FF5A00; border-radius: 15px 100px 0

Але це ще не все: замість простих круглих кутів можна задавати еліптичне округлення. Для цього знадобиться вказати два значення, розділені косою межею (для горизонтальної та вертикальної півосей еліпса). Наведемо приклад на блоці розміром 150×450 пікселів:

BorderElement ( background-color: #EEDDFF; border: 6px solid #7922CC; border-radius: 280px/100px; )

Значення можна змішувати (тобто використовувати в одному стилі і звичайне і еліптичне закруглення), а також додавати персональний стиль для кожного кута, використовуючи відповідні властивості:

  • border-top-left-radius – для верхнього лівого кута;
  • border-top-right-radius – для верхнього правого кута;
  • border-bottom-left-radius – для нижнього лівого кута;
  • border-bottom-right-radius – для нижнього правого кута.

Принцип заокруглення кутів

На малюнку нижче показано, яким чином обчислюється округлення кутів CSS. Так, якщо для кута вказано одне значення, - наприклад, 20px - це означає, що закруглення відбуватиметься по колу з радіусом 20 пікселів. У випадку, коли задаються два значення через косу межу, наприклад, 30px/20px, закруглення кутів відбуватиметься еліпсом. Перше значення в такому випадку є довжиною горизонтальної півосі еліпса - 30px, а друге - довжиною вертикальної півосі - 20px:



Властивість CSS border-radius підтримується всіма сучасними версіямибраузерів.

Border-radius property does не apply to table elements коли має shared або separate borders."> border-collapse is collapse .

Note:Як з будь-якою шортою і властивістю, окремі sub-properties неможуть бути inherit, such as in border-radius:0 0 inherit inherit , які будуть partially override existing definitions. Instead, окремі longhand properties have to be used.

Syntax

/* Syntax з перших radius дозволить один до чотирьох цін *//* Radius is set for all 4 sides */ border-radius: 10px; /* top-left-and-bottom-right | top-right-and-bottom-left*/ border-radius: 10px 5%; /* top-left | top-right-and-bottom-left | bottom-right*/ border-radius: 2px 4px 2px; /* top-left | top-right | bottom-right | bottom-left*/ border-radius: 1px 0 3px 4px; /* The syntax of second radius allows one to four values*/ /* (first radius values) / radius*/ border-radius: 10px 5% / 20px; /* (First radius values) / top-left-and-bottom-right | top-right-and-bottom-left*/ border-radius: 10px 5% / 20px 30px; /* (First radius values) / top-left | top-right-and-bottom-left | bottom-right*/ border-radius: 10px 5px 2em / 20px 25px 30%; /* (First radius values) / top-left | top-right | bottom-right | bottom-left*/ border-radius: 10px 5% / 20px 25em 30px 35em; /* Global values ​​*/ border-radius: inherit; border-radius: initial; border-radius: unset;

Border-radius property is specified as:

  • один, два, три, або чотири CSS дані типу представляють величину величини. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. values. Це використовується для набору єдиних радіусів для corners.
  • наведено опційно "/" і один, два, три, або чотири or Values. Це використовується для набору додаткових радіусу, так що ви можете мати elliptical corners.

Values

radius Is a CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. denoting a radius to use for border in each corner of border. Це використовується тільки в одному-вимірюванні syntax.
top-left-and-bottom-right Is a CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. помітно радіусом для використання для межі в top-left і внизу літери corners of element"s box.
top-right-and-bottom-left Is a CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. Відображає радіус для використання в межах у верхньому правому та нижньому лівому куті елемента box.
top-left Is a CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. помітно радіусом для використання в межах у верхньому правому куті елемента box.
top-right Is a CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. помітно радіусом, щоб використовувати для border в верхньому правому куті елемента box.
bottom-right Is a CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. помітно радіусом для використання для межі в нижній частині елемента з box.
bottom-left Is a CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. помітити радіус для використання в межах аркуша в нижньому лівому куті елемента box.
CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> Відмітьте розмір кола радіусу, або semi-major і semi-minor axes of ellipse, використовуючи length values. p align="justify"> Negative values ​​are invalid. Відмітьте розмір кола радіусу, або semi-major і semi-minor axes of ellipse, використовуючи відсоткові значення. Percentages for the horizontal axis refer to the width of the box; Відсотки для vertical xis refer to the height of the box. p align="justify"> Negative values ​​are invalid.

Border-radius: 1em/5em; /* ... is equivalent to: */ border-top-left-radius: 1em 5em; border-top-right-radius: 1em 5em; border-bottom-right-radius: 1em 5em; border-bottom-left-radius: 1em 5em; border-radius: 4px 3px 6px/2px 4px; /* ... is equivalent to: */ border-top-left-radius: 4px 2px; border-top-right-radius: 3px 4px; border-bottom-right-radius: 6px 2px; border-bottom-left-radius: 3px 4px;

Formal syntax

1,4 / 1,4

where
=
!}

Examples

border: solid 10px; /* border will curve into a "D" */ border-radius: 10px 40px 40px 10px; border: groove 1em red; border-radius: 2em; background: gold; border: ridge gold; border-radius: 13em/3em; border: none; border-radius: 40px 10px; border: none; border-radius: 50%; border: dotted; border-width: 10px 4px; border-radius: 10px 40px; border: dashed; border-width: 2px 4px; border-radius: 40px;

Live Samples

Specifications

Specification Status Comment
CSS Backgrounds and Borders Module Level 3
Definition of "border-radius" в тому specification.
Candidate Recommendation Initial definition
Initial value
Applies toall elements; but User Agents are not required to apply to table and inline-table elements when have shared or separate borders."> border-collapse is collapse .
Inheritedno
Відсоткиrefer to to corresponding dimension of border box
Mediavisual
Computed valueas each of the properties of the shorthand:
  • border-bottom-left-radius : два загальних CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> s або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. s
  • border-bottom-right-radius : два загальних CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> s або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. s
  • border-top-left-radius : два загальних CSS даних типу представляють значення distance. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> s або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. s
  • border-top-right-radius : два загальних CSS data типу представляють distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> s або CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. s
Animation typeas each of the properties of the shorthand:























































  • |











































































































































































  • |
Canonical orderunique non-ambiguous order defined by the formal grammar

Browser compatibility

Компактність таблиці в цій сторінці генерується з структурованих даних. Якщо ви знайдете, щоб дізнатися про ваші дані, клацніть на https://github.com/mdn/browser-compat-data і пишуть.

Update compatibility data on GitHub

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support 4

Notes

Full support 4

Notes

Notes
Edge Full support 12 Full support 12 Full support 12

Prefixed

Prefixed Implemented with the vendor prefix: -webkit-
Firefox Full support 4

Notes

Full support 4

Notes

Notes Prior to Firefox 50, border styles of rounded corners (with border-radius) були завжди rendered as if border-style був solid . This has been fixed in Firefox 50. Для того, щоб визначити CSS3 стандарт, Firefox 4 змінити handling of values ​​to match the specification. Ви можете specify an ellipse as border on arbitrary sized element with border-radius: 50%; . Firefox 4 also makes rounded corners clip content and images if : visible is not set. No support 1 - 12

Prefixed

Prefixed Implemented with the vendor prefix: -moz-
IE Full support 9Opera Full support 10.5

Notes

Full support 10.5

Notes

Notes В Opera prior to version 11.60, переміщені елементи з border-radius не мають рівних куточків.
Safari Full support 5

Notes

Full support 5

Notes

Notes Current Chrome і Safari versions ignore border-radius on
WebView Android Full support 2

Prefixed

Full support 2

Prefixed

Prefixed Implemented with the vendor prefix: -webkit-
Edge Mobile Full support Yes Full support Yes Full support Yes

Prefixed

Prefixed Implemented with the vendor prefix: -webkit-
Firefox Android Full support Yes

Notes

Full support Yes

Notes

Notes Prior to Firefox 50, border styles of rounded corners (with border-radius) були завжди rendered as if border-style був solid . Це має бути встановлене в Firefox 50.
Opera Android Full supportSafari iOS Full support Yes
Elliptical bordersChrome Full support Yes

Notes

Full support Yes

Notes

Notes Prior to Chrome 4, slash / notation isunsupported. Якщо два значення є специфічними, еліптичний ліхтарик є намальованим на всіх чотирьох куточках. -webkit-border-radius: 40px 10px; is equivalent до border-radius: 40px/10px; .
Edge Full support 12Firefox Full support 3.5IE Full support YesOpera Full support YesSafari Full support Yes

Notes

Full support Yes

Notes

Notes Prior to Safari 4.1, slash / notation is unsupported. Якщо два значення є специфічними, еліптичний ліхтарик є намальованим на всіх чотирьох куточках. -webkit-border-radius: 40px 10px; is equivalent до border-radius: 40px/10px; .
WebView Android?Chrome Android Full support YesSafari iOS?Samsung Internet Android Full support Yes
4 values ​​for 4 cornersChrome Full support 4Edge Full support 12Firefox Full support YesIE Full support YesOpera Full support YesSafari Full support 5WebView Android?Chrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support YesOpera Android No support NoSafari iOS?Samsung Internet Android Full support Yes
ВідсоткиChrome Full support Yes

Notes

Full support Yes

Notes

Notes Ці параметри не підтримуються в рамках Chrome і Safari versions (це було fixed в Sepember 2010).
Edge Full support 12Firefox

Legend

Full support Full support No support No support Compatibility unknown Compatibility unknown See implementation notes. See implementation notes. Requires a vendor prefix or different name for use.

See also

  • Border-radius-related CSS properties:
CSS властивості

Визначення та застосування

CSS властивість border-radius дозволяє визначити форму меж елемента. Ця властивість є коротким записом для наступних чотирьох властивостей:

Радіус заокруглення застосовується до всього заднього фону, або фонового зображення, заданими властивістю background (навіть якщо у елемента немає меж). Точне місцевідсікання визначається і задається значенням властивості background-clip.


  1. Заокруглення кутів відсутнє. Стандартне значення 0 (нуль).
  2. Заокруглення кутів ( за типом дуги кола). Значення /-я (від одного до чотирьох) вказуються в одиницях CSS (px, em, cm і т.д.) і визначають r adius (радіус) заокруглення. Значення для кожного радіусу задаються у такому порядку: top-left(верхній лівий кут), top-right(верхній правий вугол), bottom-right(нижній правий кут), bottom-left(Нижній лівий). Якщо bottom-left(нижній лівий) опущений, то він такий самий, як top-right(верхній правий вугол). Якщо bottom-right(нижній правий кут) опущений, то він такий самий, як top-left(Верхній лівий кут). Якщо top-right(верхній правий кут) опущений, то він такий самий, як top-left(Верхній лівий кут). Допускається вказувати значення у відсотках.
  3. Заокруглення кутів ( за типом дуги еліпса). Значення вказуються в одиницях виміру CSS (px, em, cm тощо). Порядок вказівки значень наступний (нижнє зображення): задаються значення /-я (від одного до чотирьох) h orisontal (горизонтального) радіуса заокруглення, а через косу межу задаються значення /-я (від одного до чотирьох) v ertical (вертикального). Допускається вказувати значення у відсотках. Негативні значення неприпустимі.

Підтримка браузерами

Властивість
Opera

IExplorer

Edge
border-radius5.0
4.0
-webkit-
4.0
3.0
-moz-
10.5 5.0
3.1
-webkit-
9.0 12.0

CSS синтаксис:

border-radius: "1-4 length | 1-4 % | 1-4 length або 1-4 % / 1-4 length або 1-4 % | initial | inherit"; /* Радіус застосовується до всіх чотирьох кутів (за типом дуги кола) */ border-radius: 15px; /* перше значення top-left і bottom-right, друге top-right і bottom-left */ border-radius: 15px 35%; /* перше значення top-left, друге top-right і bottom-left, третє bottom-right */ border-radius : 14px 18px 50%; /* перше значення top-left, друге top-right, третє bottom-right, четверте bottom-left */ border-radius : 22% 11px 14px 15px; /
вертикальний радіус - значення застосовується до всіх чотирьох кутів */ border-radius : 15px 15% / 15px; /* горизонтальний радіус перше значення top-left та bottom-right, друге top-right та bottom-left/
вертикальний радіус - перше значення top-left і bottom-right, друге top-right і bottom-left */ border-radius : 10px 15% / 10px 40px; /* горизонтальний радіус перше значення top-left, друге top-right і bottom-left, третє bottom-right/
вертикальний радіус - перше значення top-left, друге top-right і bottom-left, третє bottom-right */ border-radius : 20px 15px 6em / 20px 25px 30%; /* горизонтальний радіус перше значення top-left та bottom-right, друге top-right та bottom-left/
вертикальний радіус - перше значення top-left, друге top-right, третє bottom-right, четверте bottom-left */ border-radius : 15px 15% / 10px 15em 15px 5em;

JavaScript синтаксис:

Object.style.borderRadius = "5px"

Значення якості

Версія CSS

CSS3

успадковується

Ні.

Анімоване

Так.

Приклад використання

Встановлення форми межі кутів елемента в CSS
class = "orange" > 50px
50px 25%
25px 75% / 4em