Cách làm ảnh tròn (avatar) đối với ảnh hình chữ nhật

Các bác cho em hỏi là có cách nào làm tròn ảnh (ảnh avatar) đối với ảnh hình chữ nhật đứng, nằm (trừ hình vuông vì làm tròn đc) ko ạ? vì ảnh hình chữ nhật mà làm tròn nó lại thành hình bầu dục ạ @@

Hình chữ nhật đứng

<div
  class="avatar"
  style="background-image: url('https://via.placeholder.com/100x200');"
>
</div>
.avatar {
  width: 100px;
  height: 200px;
  clip-path: circle(50px at 50% 50%);
}

Hình chữ nhật nằm

<div
  class="avatar"
  style="background-image: url('https://via.placeholder.com/300x150');"
>
</div>
.avatar {
  width: 300px;
  height: 150px;
  clip-path: circle(75px at 50% 50%);
}
7 Likes

border-radius: 50%;
overflow: hidden

Wtf clip-path làm gì vậy? :)))

Của bạn đây, :point_down:

Cách của bạn thì thớt cũng biết, nhưng đối với ảnh hình chữ nhật sẽ ra hình bầu dục, mà yêu cầu là hình tròn. :expressionless: :expressionless:


Còn đây là theo như @hungaya ca ca. :point_down:

6 Likes

Em cảm ơn ạ :smiley:

Chuẩn nhưng có gì đó sai sai. Sao lại phải set div là hình chữ nhật rồi lại bắt nó chỉ hiện ảnh là hình tròn. Sao không cho div vuông rồi border nó là hình tròn luôn nhỉ

1 Like

Vì ảnh set vốn có kích thước thuộc dạng hcn. Nếu set cố cho vuông thì :point_down:


Ảnh sẽ bị méo, Trừ khi bạn cắt ảnh là hình vuông ngay từ đâu. :smile:

3 Likes

Cách đó chẳng tốt hơn 1 tý nào. Thậm chí còn bị hiển thị sai nếu không set height hoặc width trùng với kích thước của ảnh. Mình hoàn toàn k cần dùng đến clip-path. Nếu bạn dùng với thẻ img thì dùng object-fit cũng cho kết quả tương tự clip-path nhưng khả năng tương thích vẫn tốt hơn.

Mức độ tương thích cũng tốt hơn nhiều:

5 Likes

Cám ơn nhiều nhiều, quên mất cái vụ background-position. :hugs:
Mà cho mình hỏi thêm nữa, giữa cái object-fitbackground-position, trường hợp nào thì ưu tiên sử dụng hơn nhỉ?

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?