Можете да дадете на всеки елемент „заоблени ъгли“, като приложите border-radius
чрез CSS. Ще забележите само ако има промени в цвета. Например, ако елементът има цвят на фона или граница, който е различен от елемента, над който е свършил. Прости примери:
#example-one ( border-radius: 10px; background: #BADA55; ) #example-two ( border-radius: 10px; border: 3px solid #BADA55; )
Наистина вече не е необходимо, но за възможно най-добрата поддръжка на браузъра можете да добавите префикс с -webkit-
и -moz-
:
.round ( /* Safari 3-4, iOS 1-3.2, Android 1.6- */ -webkit-border-radius: 12px; /* Firefox 1-3.6 */ -moz-border-radius: 12px; /* Opera 10.5, IE 9, Safari 5, Chrome, Firefox 4, iOS 4, Android 2.1+ */ border-radius: 12px; )
Обърнете внимание на реда на тези свойства: Префиксите на доставчика са изброени първи, а непредфиксираната версия „spec“ е посочена последна. Това е правилният начин да го направите. Радиусът на границата е особено добър пример за това, защо го правим по този начин. В малко по-сложната версия на използването border-radius
(където предавате две стойности вместо една) по-старият -webkit-
префикс на доставчик би направил нещо съвсем различно от версията „spec“. Така че ако копираме / поставяме сляпо едни и същи стойности във всичките три свойства, можем да видим различни резултати в различни браузъри. Научете повече за този сценарий. За най-голяма последователност в дългосрочен план, най-добре е да посочите последната версия със спецификация.
В наши дни е доста реалистично да изпускате префиксите и просто да използвате граничен радиус, както е обсъдено тук.
Ако елементът има фон на изображение, той естествено ще бъде отрязан в заобления ъгъл:
#example-three ( border-radius: 20px; background: url(bglines.png.webp); /* will get clipped */ )
Понякога можете да видите background-color
„изтичане“ извън границата, когато border-radius
е налице. (виж). За да предотвратите това, използвате фонов клип:
.round ( border-radius: 10px; /* Prevent background color leak outs */ -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; )
Само с една стойност border-radius
ще е същото и на четирите ъгъла на елемент. Но това не е необходимо. Можете да посочите всеки ъгъл отделно, ако желаете:
.round ( border-radius: 5px 10px 15px 20px; /* top left, top right, bottom right, bottom left */ )
Можете също така да посочите две или три стойности. MDN го обяснява добре:
Ако е зададена една стойност, този радиус се прилага за всичките 4 ъгъла .
Ако са зададени две стойности, първата се отнася за top-left
и bottom-right
ъгъл, втората се отнася за top-right
и bottom-left
ъгъл.
Четири стойности се прилагат към top-left
, top-right
, bottom-right
, bottom-left
ъгъл в този ред.
Три стойности: Втората стойност се отнася за top-right
и също bottom-left
.
#example-four ( border-radius: 5px 20px 5px; background: #BADA55; )
Можете също така да посочите радиусите, в които ъгълът се закръглява с. С други думи, закръгляването не трябва да е идеално кръгло, може да е елипсовидно. Това се прави с помощта на наклонена черта („/”) между две стойности.
#example-five ( border-radius: 10px/30px; /* horizontal radius / vertical radius */ ) #example-six ( border-radius: 30px/10px; /* horizontal radius / vertical radius */ )
Забележка: Firefox поддържа само елипсовидни граници в 3.5+ и по-стари браузъри WebKit (например Safari 4) неправилно третира „40px 10px“ като същото като „40px / 10px“.
Можете да посочите стойността на border-radius
в проценти. Това е особено полезно, когато искате да създадете форма на кръг или елипса, но може да се използва по всяко време, когато искате радиусът на границата да бъде директно свързан с ширината на елементите.
#example-seven, #example-eight ( border-radius: 50%; ) #example-eight ( width: 200px; )
Забележка: В Safari процентни стойности за радиус на границата се поддържат само в 5.1+. В Opera се поддържа само в 11.5+.
Ето всяко отделно свойство с префикси на доставчика:
.round ( -webkit-border-top-left-radius: 1px; -webkit-border-top-right-radius: 2px; -webkit-border-bottom-right-radius: 3px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-topleft: 1px; -moz-border-radius-topright: 2px; -moz-border-radius-bottomright: 3px; -moz-border-radius-bottomleft: 4px; border-top-left-radius: 1px; border-top-right-radius: 2px; border-bottom-right-radius: 3px; border-bottom-left-radius: 4px; )
Забележка: Всяка от тези стойности може да има и стойност, разделена с интервал, като „5px 10px“, която се държи като стойност, разделена на наклонена черта в стенография (хоризонтален радиус (интервал) вертикален радиус).
Ресурси
- Бърз инструмент за генериране на код на радиус на границата
- Mozilla Docs
- В търсене на перфектния радиус
- Трябва ли вече да добавяме префикс border-radius?
Ето малко нещо, което да играете с различните свойства и стойности:
Вижте писалката All-border-radius 'от Chris Coyier (@chriscoyier) на CodePen.
Поддръжка на браузър
Тези данни за поддръжка на браузъра са от Caniuse, който има повече подробности. Число показва, че браузърът поддържа функцията на тази версия и по-нова.
работен плот
Chrome | Firefox | IE | Ръб, край | Сафари |
---|---|---|---|---|
4 * | 3 * | 9 | 12 | 3.1 * |
Мобилен / таблет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 2.1 * | 3,2 * |