Wie erstelle ich einen Kreis oder ein Quadrat nur mit CSS – mit einem hohlen Mittelpunkt?
Lesezeit: 4 Minuten
Markmillion
Es sollte im Grunde nur ein Umriss des Quadrats oder Kreises sein – den ich entsprechend gestalten kann (dh die Farbe nach Belieben ändern, die Dicke des Randes ändern usw.).
Ich möchte diesen Kreis oder dieses Quadrat auf etwas anderes anwenden (wie ein Bild oder so) und der mittlere Teil sollte ausgehöhlt werden, sodass Sie das Bild unter dem Quadrat oder Kreis sehen können.
Ich würde es vorziehen, wenn es hauptsächlich CSS + HTML wäre.
Ich kenne keine einfache CSS-Lösung (2.1 Standard) nur für Kreise, aber für Quadrate können Sie Folgendes tun:
.squared {
border: 2px solid black;
}
Verwenden Sie dann den folgenden HTML-Code:
<img src="…" alt="an image " class="squared" />
Das ist interessant … Ich mag es einfach nicht, die zu benutzen <img> Schild. Ich nehme lieber ein normales <div> wie die obige Lösung. Trotzdem danke. Übrigens habe ich nie runtergestimmt. Ich habe hochgestimmt 🙂
– Markmillion
28. September 2010 um 18:18 Uhr
@marcamillion: Ich habe nur ein Bild-Tag verwendet, weil es wirklich keine Rolle spielt. (Zitat: »Ich möchte diesen Kreis oder dieses Quadrat auf etwas anderes anwenden (wie eine Bild oder so)«) – Sie können natürlich ein div, einen Absatz oder irgendetwas anderes verwenden. Wenden Sie einfach die Klasse an und gestalten Sie sie nach Ihren Wünschen
– Strickl
28. September 2010 um 18:21 Uhr
@nick, weil das div dafür erstellt wurde (ein Standardcontainer) im Gegensatz zu einem img-Tag zum Abrufen von Bildern. Ich weiß, dass es nicht für das verwendet werden muss, wofür es gemacht wurde, aber ich würde es vorziehen, das zu tun 🙂 @Knittl …. Ich glaube, Sie haben falsch verstanden, wonach ich gesucht habe. Ich suche keinen quadratischen Rand. Ich möchte ein Quadrat erstellen, das beispielsweise 50 Pixel x 50 Pixel groß ist, das ist nur ein Umriss. Wie Caspar in seinem Beispiel für den Kreis – ich habe das nur für ein Quadrat modifiziert. Das habe ich gesucht. Jetzt füge ich ihm nur noch den Z-Index hinzu, über den Elementen, auf denen er stehen soll. Das ist alles 🙂
– Markmillion
28. September 2010 um 18:24 Uhr
ok, du hast gesagt „wende das quadrat auf … an“, also war es mir nicht ganz klar. schön, dass du eine Lösung für dein Problem gefunden hast
– Strickl
28. September 2010 um 18:27 Uhr
Wenn Sie möchten, dass Ihr div seine kreisförmige Form behält, auch wenn Sie seine Breite/Höhe ändern (z. B. mit js), stellen Sie den Radius auf 50 % ein. Beispiel: CSS:
Kreiszeit! 🙂 Einfache Möglichkeit, einen Kreis mit einem hohlen Zentrum zu erstellen: Verwenden Sie den Randradius, geben Sie dem Element einen Rand und keinen Hintergrund, damit Sie hindurchsehen können:
div {
display: inline-block;
margin-left: 5px;
height: 100px;
border-radius: 100%;
width:100px;
border:solid black 2px;
}
body{
background:url('http://lorempixel.com/output/people-q-c-640-480-1.jpg');
background-size:cover;
}
<div></div>
Ammi J. Embry
Meines Wissens gibt es keine Cross-Browser-kompatible Möglichkeit, einen Kreis nur mit CSS & HTML zu erstellen.
Für das Quadrat könnten Sie ein Div mit einem Rand und einem Z-Index erstellen, der höher ist als der, über den Sie ihn legen. Ich verstehe nicht, warum Sie dies tun müssten, wenn Sie einfach einen Rahmen um das Bild oder “etwas” selbst setzen könnten.
Wenn jemand weiß, wie man einen Kreis erstellt, der nur mit CSS und HTML browserübergreifend kompatibel ist, würde ich gerne davon hören!
@Caspar Kleijne border-radius funktioniert nicht in IE8 oder darunter, bei 9 bin ich mir nicht sicher.