Raio da borda:
Primeiro, você precisa entender que a propriedade border-radius usa 2 valores. Esses valores são os raios no eixo X / Y de um quarto de elipse que define a forma do canto.
Se apenas um dos valores estiver definido, o segundo valor será igual ao primeiro. Então border-radius: x
é equivalente a border-radius:x/x;
.
Valores percentuais
Referindo-se às especificações do W3C: Módulo CSS Backgrounds and Borders Level 3 propriedade border-radius, é o que podemos ler sobre os valores percentuais:
Porcentagens: consulte a dimensão correspondente da caixa de borda.
Então border-radius:50%;
define o raio da elipse da seguinte maneira:
- os raios no eixo X são 50% da largura dos contêineres
- os raios no eixo Y são 50% da altura dos contêineres
Pixel e outras unidades
Usar um valor diferente de uma porcentagem para o raio da borda (em, in, unidades relacionadas à porta de visualização, cm ...) sempre resultará em uma elipse com os mesmos raios X / Y. Em outras palavras, um círculo .
Quando você define border-radius:999px;
os raios do círculo, deve ser 999px. Mas outra regra é aplicada quando as curvas se sobrepõem, reduzindo os raios do círculo para metade do tamanho do lado menor. Portanto, no seu exemplo, é igual à metade da altura do elemento: 50px.
Neste exemplo (com um elemento de tamanho fixo), você pode obter o mesmo resultado com px e porcentagens. Como o elemento é 230px x 100px
, border-radius: 50%;
é equivalente a border-radius:115px/50px;
(50% de ambos os lados):
div {
display: inline-block;
background: teal;
width: 230px;
height: 100px;
padding: 40px 10px;
box-sizing: border-box;
font-family: courier;
font-size: 0.8em;
color: #fff;
}
.percent {
border-radius: 50%;
}
.pixels {
border-radius: 115px/50px;
}
<div class="percent">border-radius:50%;</div>
<div class="pixels">border-radius:115px/50px;</div>