Voici le CSS:
div {
width: 0;
height: 0;
border: 180px solid red;
border-radius: 180px;
}
Comment produit-il le cercle ci-dessous?
Supposons que si une largeur de rectangle est de 180 pixels et une hauteur de 180 pixels, elle apparaîtra ainsi:
Après avoir appliqué un rayon de bordure de 30 pixels, cela ressemblerait à ceci:
Le rectangle devient plus petit, c'est-à-dire qu'il va presque disparaître si la taille du rayon augmente.
Alors, comment une bordure de 180 pixels height/width-> 0px
devient-elle un cercle avec un rayon de 180 pixels?
html
css
css-shapes
Navin Rauniyar
la source
la source
circle
avec la frontière ??? nous pouvons facilement fairecircle
avecwidth
etheight
pourquoi nous le faisonsborder
Réponses:
Reformulons cela en deux questions:
Où
width
puis- jeheight
postuler?Jetons un coup d'œil aux zones d'une boîte typique ( source ):
Le
height
etwidth
s'appliquent uniquement au contenu, si le modèle de boîte correct est utilisé (pas de mode excentrique, pas d'ancien Internet Explorer).Où
border-radius
s'applique?Le
border-radius
s'applique sur la bordure. S'il n'y a ni remplissage ni bordure, cela affectera directement votre bord de contenu, ce qui donne votre troisième exemple.Qu'est-ce que cela signifie pour notre rayon / cercle frontière?
Cela signifie que vos règles CSS aboutissent à une boîte qui se compose uniquement d'une bordure. Vos règles stipulent que cette bordure doit avoir une largeur maximale de 180 pixels de chaque côté, tandis que d'un autre côté, elle doit avoir un rayon maximum de la même taille:
Dans l'image, le contenu réel de votre élément (le petit point noir) est vraiment inexistant. Si vous n'en appliquiez pas,
border-radius
vous vous retrouveriez avec la boîte verte. Leborder-radius
vous donne le cercle bleu.Il est plus facile à comprendre si vous appliquez le
border-radius
seul aux deux coins :Étant donné que dans votre exemple, la taille et le rayon de tous les coins / bordures sont égaux, vous obtenez un cercle.
Autres ressources
Références
Démonstrations
border-radius
affecte la bordure (pensez à la boîte bleue intérieure comme boîte de contenu, la bordure noire intérieure comme bordure de rembourrage, l'espace vide comme rembourrage et la bordure rouge géante comme, eh bien, frontière). Les intersections entre la boîte intérieure et la bordure rouge affectent généralement le bord du contenu.Afficher l'extrait de code
la source
border-radius
(quels changements sont à prévoir dans la réécriture de css3- boîte?).circle
avec la frontière ??? nous pouvons facilement fairecircle
avecwidth
etheight
pourquoi nous le faisonsborder
height/width-> 0px
devient-elle un cercle avec un rayon de 180px?" . J'ai simplement répondu à la question. Il existe d'autres façons de créer un cercle, mais OP ne s'intéressait qu'au fonctionnement de cette méthode spécifique.overflow
famille de propriétés) vit maintenant dans son propre module, css-overflow-3, mais cela n'a pas encore été reflété dans l'ED. Vous verrez beaucoup de problèmes dans l'ED, mais j'imagine que ce n'est pas une liste exhaustive: dev.w3.org/csswg/css3-boxDémo
Examinons la question d'une autre manière avec cette démonstration d'image:
Voyons d'abord comment le rayon de bordure est produit?
Pour produire un rayon, il prend deux côtés de sa bordure. Si vous définissez border-radius à 50 pixels, cela prendrait 25 pixels d'un côté et 25 pixels d'un autre côté.
Et en prenant 25 pixels de chaque côté, cela produirait comme ceci:
Maintenant, voyez combien cela peut prendre un maximum de carré pour appliquer sur un coin?
Il peut prendre jusqu'à 180 pixels du haut et 180 pixels de la droite. Ensuite, cela produirait comme ceci:
Et voyez comment cela produit-il si nous définissons une valeur de rayon non égale?
Supposons que si vous appliquez le rayon de bordure uniquement aux deux coins de manière inégale:
coin supérieur droit à 180 pixels
coin inférieur droit à 100 pixels
Ensuite, il faudrait
en haut à droite: 90 pixels en haut et 90 pixels en partant de la droite
en bas à droite: 50 pixels à partir de la droite et 50 pixels à partir du bas
Ensuite, cela produirait comme ça
Combien maximum de sa bordure peut-il prendre de carré à appliquer sur tous les côtés? Et voyez comment cela produit un cercle?
Cela peut prendre jusqu'à la moitié de la taille de la bordure, c'est-à-dire 180 pixels / 2 = 90 pixels. Ensuite, cela produirait un cercle comme celui-ci
Pourquoi faut-il seulement la moitié du carré pour appliquer sur tous les côtés?
Parce que tous les coins doivent définir leur valeur de rayon également.
Prenant des parties égales de sa bordure, il produit un cercle.
la source
Les bordures sont la boîte extérieure de tout contenu et si vous lui appliquez un rayon, cela produira simplement le bord circulaire.
la source
Je pense qu'il crée initialement un rectangle avec
height and width = 180px
puis fait une courbe avec un rayon donné comme30px
avec chaque coin. Donc, ça partborder
avec donnéradius
.la source
Les deux
.a
et.b
donneront la sortie identique.Q. Pourquoi ai-je utilisé
width: 360px; height: 360px;
?A.
border: 180px solid red;
dans des.a
œuvres commeborder-width: 180px 180px 180px 180px; /* Top Right Bottom Left */
.J'espère que ce violon vous aidera à comprendre le concept.
la source