Dies ist das CSS:
div {
width: 0;
height: 0;
border: 180px solid red;
border-radius: 180px;
}
Wie entsteht der Kreis darunter?
Angenommen, eine Rechteckbreite von 180 Pixel und eine Höhe von 180 Pixel sieht folgendermaßen aus:
Nach dem Anwenden des Randradius von 30 Pixel sieht es folgendermaßen aus:
Das Rechteck wird kleiner, das heißt, es verschwindet fast, wenn der Radius größer wird.
Wie wird aus einem Rand von 180 Pixel height/width-> 0px
ein Kreis mit einem Radius von 180 Pixel?
html
css
css-shapes
Navin Rauniyar
quelle
quelle
circle
mit Grenze machen willst ??? können wir leicht machencircle
mitwidth
undheight
so , warum wir tun mitborder
Antworten:
Lassen Sie uns das in zwei Fragen umformulieren:
Wo
width
undheight
tatsächlich bewerben?Werfen wir einen Blick auf die Bereiche einer typischen Box ( Quelle ):
Die
height
undwidth
gelten nur für Inhalte, wenn das richtige Box-Modell verwendet wird (kein Mackenmodus, kein alter Internet Explorer).Wo
border-radius
gilt?Das
border-radius
gilt am Rand. Wenn weder Polster noch Rahmen vorhanden sind, wirkt sich dies direkt auf Ihre Inhaltskante aus, was zu Ihrem dritten Beispiel führt.Was bedeutet das für unseren Randradius / Kreis?
Dies bedeutet, dass Ihre CSS-Regeln zu einem Feld führen, das nur aus einem Rahmen besteht. Ihre Regeln besagen, dass dieser Rand auf jeder Seite eine maximale Breite von 180 Pixel haben sollte, während er andererseits einen maximalen Radius derselben Größe haben sollte:
Auf dem Bild ist der tatsächliche Inhalt Ihres Elements (der kleine schwarze Punkt) wirklich nicht vorhanden. Wenn Sie keine anwenden, erhalten
border-radius
Sie das grüne Kästchen. Dasborder-radius
gibt dir den blauen Kreis.Es wird einfacher zu verstehen, wenn Sie
border-radius
nur zwei Ecken anwenden :Da in Ihrem Beispiel Größe und Radius für alle Ecken / Ränder gleich sind, erhalten Sie einen Kreis.
Weitere Ressourcen
Verweise
Demonstrationen
border-radius
auf den Rand auswirkt (stellen Sie sich das innere blaue Feld als Inhaltsfeld, den inneren schwarzen Rand als Polsterrand, den leeren Raum als Polster und den riesigen roten Rand als, gut, vor. Rand). Schnittpunkte zwischen dem inneren Feld und dem roten Rand wirken sich normalerweise auf die Inhaltskante aus.Code-Snippet anzeigen
quelle
border-radius
(welche Änderungen beim Umschreiben von css3- zu erwarten sind). Box?).circle
mit Grenze machen willst ??? können wir leicht machencircle
mitwidth
undheight
so , warum wir tun mitborder
height/width-> 0px
ein Kreis mit einem Radius von 180px?" . Ich habe die Frage einfach beantwortet. Es gibt andere Möglichkeiten, einen Kreis zu erstellen, aber OP war nur daran interessiert, wie diese spezielle Methode funktioniert.overflow
Familie von Eigenschaften) jetzt in einem eigenen Modul, css-overflow-3, lebt, aber das hat sich noch nicht in der ED niedergeschlagen. Sie werden viele Probleme in der ED sehen, aber ich kann mir vorstellen, dass es keine vollständige Liste ist: dev.w3.org/csswg/css3-boxDemo
Lassen Sie uns die Frage mit dieser Bilddemonstration auf andere Weise untersuchen:
Mal sehen, wie der Randradius erzeugt wird.
Um einen Radius zu erzeugen, werden zwei Seiten des Randes benötigt. Wenn Sie den Rahmenradius auf 50 Pixel einstellen, werden 25 Pixel von einer Seite und 25 Pixel von einer anderen Seite benötigt.
Und wenn man 25 Pixel von jeder Seite nimmt, würde das so aussehen:
Nun sehen Sie, wie viel Quadrat maximal für die Anwendung an einer Ecke erforderlich ist.
Es kann bis zu 180 Pixel von oben und 180 Pixel von rechts dauern. Dann würde es so produzieren:
Und sehen Sie, wie es erzeugt, wenn wir den ungleichen Wert des Radius einstellen?
Angenommen, Sie wenden den Randradius nur ungleichmäßig auf zwei Ecken an:
obere rechte Ecke auf 180 Pixel
rechts unten auf 100 Pixel
Dann würde es dauern
oben rechts: 90 Pixel von oben und 90 Pixel von rechts
unten rechts: 50 Pixel von rechts und 50 Pixel von unten
Dann würde es so produzieren
Wie viel Maximum seiner Grenze kann es von Quadrat nehmen, um auf allen Seiten aufzutragen? Und sehen Sie, wie es einen Kreis erzeugt?
Es kann bis zur Hälfte der Randgröße dauern, dh 180 Pixel / 2 = 90 Pixel. Dann würde es einen Kreis wie diesen erzeugen
Warum dauert es nur die Hälfte des Quadrats, um auf allen Seiten aufzutragen?
Weil alle Ecken ihren Radiuswert gleich einstellen müssen.
Er nimmt gleiche Teile seines Randes und erzeugt einen Kreis.
quelle
Rahmen sind das äußere Feld eines Inhalts. Wenn Sie einen Radius darauf anwenden, wird einfach die kreisförmige Kante erzeugt.
quelle
Ich denke, dass es zunächst ein Rechteck mit
height and width = 180px
und dann eine Kurve mit einem bestimmten Radius wie30px
bei jeder Ecke erstellt. Also setzt esborder
mit gegebenradius
.quelle
Beide
.a
und.b
geben die identische Ausgabe.Q. Warum habe ich verwendet
width: 360px; height: 360px;
?A.
border: 180px solid red;
in.a
Arbeiten wieborder-width: 180px 180px 180px 180px; /* Top Right Bottom Left */
.Ich hoffe, diese Geige hilft Ihnen, das Konzept zu verstehen.
quelle