Este é o CSS:
div {
width: 0;
height: 0;
border: 180px solid red;
border-radius: 180px;
}
Como ele produz o círculo abaixo?
Suponha que, se a largura do retângulo for de 180 pixels e a altura de 180 pixels, apareceria assim:
Depois de aplicar o raio da borda de 30 pixels, apareceria assim:
O retângulo está ficando menor, ou seja, quase desaparecendo se o tamanho do raio aumentar.
Então, como uma borda de 180 pixels height/width-> 0px
se torna um círculo com um raio de 180 pixels?
html
css
css-shapes
Navin Rauniyar
fonte
fonte
circle
com borda ??? podemos facilmente fazercircle
comwidth
eheight
assim por que fazemos comborder
Respostas:
Vamos reformular isso em duas perguntas:
Onde
width
eheight
realmente aplicar?Vamos dar uma olhada nas áreas de uma caixa típica ( fonte ):
O
height
ewidth
aplica-se apenas ao conteúdo, se o modelo de caixa correto estiver sendo usado (sem modo peculiar, sem Internet Explorer antigo).Onde se
border-radius
aplica?O
border-radius
aplica-se na borda da borda. Se não houver preenchimento nem borda, isso afetará diretamente a borda do conteúdo, o que resultará no seu terceiro exemplo.O que isso significa para o raio da borda / círculo?
Isso significa que suas regras CSS resultam em uma caixa que consiste apenas de uma borda. Suas regras afirmam que essa borda deve ter uma largura máxima de 180 pixels em todos os lados, enquanto, por outro lado, deve ter um raio máximo do mesmo tamanho:
Na figura, o conteúdo real do seu elemento (o pequeno ponto preto) é realmente inexistente. Se você não aplicou,
border-radius
você terminaria com a caixa verde. Oborder-radius
te dá o círculo azul.Fica mais fácil de entender se você aplicar
border-radius
apenas os dois cantos :Como no seu exemplo, o tamanho e o raio de todos os cantos / bordas são iguais, você obtém um círculo.
Mais recursos
Referências
Manifestações
border-radius
afeta a borda (pense na caixa azul interna como a caixa de conteúdo, a borda preta interna como a borda do preenchimento, o espaço vazio como o preenchimento e a borda vermelha gigante como, bem, fronteira). As interseções entre a caixa interna e a borda vermelha geralmente afetam a borda do conteúdo.Mostrar snippet de código
fonte
border-radius
(que mudanças devem ser esperadas na reescrita do css3- caixa?).circle
com borda ??? podemos facilmente fazercircle
comwidth
eheight
assim por que fazemos comborder
height/width-> 0px
se torna um círculo com um raio de 180px?" . Eu simplesmente respondi a pergunta. Existem outras maneiras de criar um círculo, mas o OP estava interessado apenas em como esse método específico funciona.overflow
família de propriedades) agora vive em seu próprio módulo, css-overflow-3, mas isso ainda não foi refletido no ED. Você verá a abundância de questões no ED, mas eu imagino que não é uma lista exaustiva: dev.w3.org/csswg/css3-boxDemo
Vamos examinar a questão de outra maneira com esta demonstração de imagem:
Vamos ver primeiro como o raio da borda é produzido?
Para produzir raio, são necessários dois lados de sua borda. Se você definir o raio da borda para 50 pixels, serão necessários 25 pixels de um lado e 25 pixels de outro lado.
E tirar 25 pixels de cada lado produziria assim:
Agora veja quanto pode ser necessário no máximo quadrado para aplicar em um canto?
Pode levar até 180 pixels da parte superior e 180 pixels da direita. Então produziria assim:
E veja isso como ele produz se definirmos um valor diferente de raio?
Suponha que, se você aplicar o raio da borda apenas a dois cantos de maneira desigual:
canto superior direito a 180 pixels
canto inferior direito a 100 pixels
Então levaria
canto superior direito: 90 pixels da parte superior e 90 pixels da direita
canto inferior direito: 50 pixels da direita e 50 pixels da parte inferior
Então produziria assim
Quanto máximo de sua borda pode ser necessário para aplicar em todos os lados? E veja como isso produz um círculo?
Pode levar até metade do tamanho da borda, ou seja, 180 pixels / 2 = 90 pixels. Então produziria um círculo como este
Por que leva apenas metade do quadrado para aplicar em todos os lados?
Porque todos os cantos precisam definir o valor do raio igualmente.
Tomando partes iguais de sua borda, produz um círculo.
fonte
Bordas são a caixa externa de qualquer conteúdo e, se você aplicar um raio, simplesmente produzirá a borda circular.
fonte
Eu acho que ele inicialmente cria um retângulo com
height and width = 180px
e depois faz uma curva com um raio específico, como30px
em cada canto. Por isso, defineborder
com dadoradius
.fonte
Ambos
.a
e.b
dará a saída idêntica.Q. Por que eu usei
width: 360px; height: 360px;
?A.
border: 180px solid red;
em.a
trabalhos comoborder-width: 180px 180px 180px 180px; /* Top Right Bottom Left */
.Espero que este violino ajude você a entender o conceito.
fonte