Erstellen Sie einen kreisförmigen Avatar aus einem rechteckigen Bild, wobei Sie die Proportionen beibehalten und nur die Bildmitte verwenden
Lesezeit: 3 Minuten
Ich habe Bilder, die 480 Pixel breit und 640 Pixel hoch sind.
Ich möchte sie mit CSS als Kreise auf einer 150 Pixel breiten Webseite anzeigen. Aber ich möchte die Mitte des Bildes sehen.
Nehmen Sie also 80 Pixel von der Ober- und Unterseite des Originalbildes, um das Quadrat mit dem Bild zu erhalten, das ich sehen möchte. Das möchte ich dann zu einem Kreis machen.
Alles, was ich versuche, dehnt das Bild aus, da die meisten Beispiele darin bestehen, zunächst ein quadratisches Bild zu verwenden.
Kann jemand helfen
Benutzer229044
Sie können das Bild als Hintergrund eines Elements festlegen und seine Hintergrundgröße auf festlegen cover, und verwenden Sie dann border-radius, um die Kanten abzurunden. Dies funktioniert mit Bildern mit jedem Seitenverhältnis und skaliert das Bild so, dass es den Container ausfüllt, ohne es zu dehnen/verzerren.
#avatar {
/* This image is 687 wide by 1024 tall, similar to your aspect ratio */
background-image: url('http://i.stack.imgur.com/Dj7eP.jpg');
/* make a square container */
width: 150px;
height: 150px;
/* fill the container, preserving aspect ratio, and cropping to fit */
background-size: cover;
/* center the image vertically and horizontally */
background-position: top center;
/* round the edges to a circle with border radius 1/2 container size */
border-radius: 50%;
}
<div id="avatar"></div>
Satz background-position zu : top center Anstatt von : center nur. Auf diese Weise konzentriert sich der Kreis auf den Kopf der Person statt auf die Brust, da dies meistens die Mitte des Bildes ist, wenn ein Profilfoto aufgenommen wird.
– NaN
29. November 2017 um 14:32 Uhr
Dies ist buchstäblich die einzige Lösung, die mit allen Seitenverhältnissen von Bildern funktioniert
– Ismaeel Scherif
16. März um 12:30 Uhr
Brosig
Eine andere Lösung besteht darin, die Größen für img festzulegen und “object-fit: cover;” zu verwenden. Es macht dasselbe wie “background-size:cover”, ohne mit Hintergrundbildern herumzuspielen.
Ich habe es im Beitrag von Chris Nager gefunden. – 1
Bearbeiten: Wie @prograhammer erwähnt, funktioniert dies nicht auf IE. Edge unterstützt es nur auf <img> Stichworte.
Teilweise Unterstützung in Edge bezieht sich auf object-fit nur unterstützen <img> – 2
Bearbeiten 2: Dies Post von Primož Cigler zeigt, wie man es benutzt Modernizr um eine Fallback-Unterstützung für IE hinzuzufügen, aber in diesem Fall müssen Sie dem Image einen Wrapper hinzufügen.
@prograhammer Teilweise Unterstützung in Edge bezieht sich auf object-fit nur unterstützen <img> auf Kante. Genommen von Kann ich benutzen
– Brosig
24. Januar 2018 um 12:52 Uhr
Zum Abschluss des Jahres 2020 zeigt Can I Use, dass alle aktuellen Browser dies unterstützen. IE 11 ungeachtet.
– Merovex
28. Dezember 2020 um 10:25 Uhr
Paulie_D
Wenn das Bild im HTML-Code und nicht als Hintergrundbild vorhanden sein muss
11788100cookie-checkErstellen Sie einen kreisförmigen Avatar aus einem rechteckigen Bild, wobei Sie die Proportionen beibehalten und nur die Bildmitte verwendenyes