Ľubovoľnému prvku môžete dať zaoblené rohy použitím border-radius
kódu CSS. Všimnete si, iba ak dôjde k farebnej zmene. Napríklad ak má prvok farbu pozadia alebo orámovanie, ktoré je odlišné od prvku, je po ňom. Jednoduché príklady:
#example-one ( border-radius: 10px; background: #BADA55; ) #example-two ( border-radius: 10px; border: 3px solid #BADA55; )
Už to naozaj nie je potrebné, ale pre čo najlepšiu možnú podporu prehľadávača môžete predponu -webkit-
a -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; )
Všimnite si poradie týchto vlastností: prefixy dodávateľov sú uvedené ako prvé a verzia s predponou „spec“ je uvedená ako posledná. Toto je správny spôsob, ako to urobiť. Polomer hranice je obzvlášť dobrým príkladom toho, prečo to robíme týmto spôsobom. V mierne komplikovanejšej verzii použitia border-radius
(kde namiesto jednej odovzdáte dve hodnoty) -webkit-
by predpona staršieho dodávateľa urobila niečo úplne iné ako verzia „spec“. Takže ak slepo kopírujeme / vkladáme rovnaké hodnoty do všetkých troch vlastností, mohli by sme vidieť rôzne výsledky naprieč prehliadačmi. Získajte viac informácií o tomto scenári. Pre dlhodobú konzistenciu je najlepšie uviesť zoznam „spec“ verzií ako posledný.
V dnešnej dobe je celkom realistické upustiť od predpôn a použiť iba polomer hranice, ako je tu popísané.
Ak má prvok pozadie obrázka, bude orezaný v zaoblenom rohu prirodzene:
#example-three ( border-radius: 20px; background: url(bglines.png.webp); /* will get clipped */ )
Niekedy je možné spozorovať background-color
„únik“ mimo hranice, keď border-radius
je prítomný. (pozri). Aby ste tomu zabránili, použijete klip na pozadie:
.round ( border-radius: 10px; /* Prevent background color leak outs */ -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; )
S iba jednou hodnotou border-radius
bude rovnaká vo všetkých štyroch rohoch prvku. Ale nemusí to tak byť. Každý roh môžete určiť osobitne, ak si prajete:
.round ( border-radius: 5px 10px 15px 20px; /* top left, top right, bottom right, bottom left */ )
Môžete tiež určiť dve alebo tri hodnoty. MDN to vysvetľuje dobre:
Ak je nastavená jedna hodnota, tento polomer platí pre všetky 4 rohy .
Ak sú nastavené dve hodnoty, prvá platí pre top-left
a bottom-right
rohová, druhá platí pre top-right
a bottom-left
rohová.
Štyri hodnoty sa vzťahujú k top-left
, top-right
, bottom-right
, bottom-left
kútik v tomto poradí.
Tri hodnoty: Druhá hodnota platí pre top-right
a tiež bottom-left
.
#example-four ( border-radius: 5px 20px 5px; background: #BADA55; )
Môžete tiež určiť polomery, v ktorých je roh zaoblený. Inými slovami, zaoblenie nemusí byť úplne kruhové, môže byť eliptické. To sa deje pomocou lomky („/“) medzi dvoma hodnotami.
#example-five ( border-radius: 10px/30px; /* horizontal radius / vertical radius */ ) #example-six ( border-radius: 30px/10px; /* horizontal radius / vertical radius */ )
Poznámka: Firefox podporuje iba eliptické ohraničenia v prehliadačoch WebKit verzie 3.5 a vyššej (napr. Safari 4), ktoré nesprávne považujú „40px 10px“ za rovnaké ako „40px / 10px“.
Hodnotu môžete určiť border-radius
v percentách. To je obzvlášť užitočné, keď chcete vytvoriť tvar kruhu alebo elipsy, ale môžete ho použiť kedykoľvek, keď chcete, aby bol polomer ohraničenia priamo korelovaný so šírkou prvkov.
#example-seven, #example-eight ( border-radius: 50%; ) #example-eight ( width: 200px; )
Poznámka: V Safari sú percentuálne hodnoty pre polomer ohraničenia podporované iba v 5.1 a novšej. V prehliadači Opera je podporované iba vo verzii 11.5 a novšej.
Tu je každá jednotlivá vlastnosť s predponami dodávateľov:
.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; )
Poznámka: Každá z týchto hodnôt môže mať aj hodnotu oddelenú medzerou, napríklad „5px 10px“, ktorá sa chová ako hodnota oddelená lomítkom v skratke (horizontálny polomer (medzera), vertikálny polomer).
Zdroje
- Rýchly nástroj na generovanie kódu polomeru hranice
- Dokumenty Mozilla
- Pri hľadaní dokonalého polomeru
- Potrebujeme už predponu polomeru hranice?
Tu je malá vec na hranie s rôznymi vlastnosťami a hodnotami:
Prezrite si pero Celý polomer hranice 'od Chrisa Coyiera (@chriscoyier) na stránkach CodePen.
Podpora prehľadávača
Údaje o podpore tohto prehľadávača sú od spoločnosti Caniuse, ktorá obsahuje viac podrobností. Číslo označuje, že prehliadač podporuje túto funkciu v danej verzii alebo vyššej.
Desktop
Chrome | Firefox | IE | Hrana | Safari |
---|---|---|---|---|
4 * | 3 * | 9 | 12 | 3,1 * |
Mobil / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 2,1 * | 3,2 * |