Tạo hình tròn trong html

Tạo hình tròn trong html

Đã đăng vào thg 10 21, 2019 2:31 SA 3 phút đọc

Giới thiệu

Gần đây, chúng tôi đã làm việc trong một dự án liên quan đến hình tròn, hình thu nhỏ tròn, nút tròn, container tròn,... Trong bài viết hôm nay mình sẽ chia sẻ cho các bạn các cách tạo hình tròn bằng CSS. Nếu các bạn đang gặp phải vấn đề về tạo hình tròn trong CSS thì đây sẽ là bài viết hữu ích dành cho bạn.

Có một số kỹ thuật để xác định hình dạng tròn động trong HTML và CSS, mỗi cái có ưu và nhược điểm riêng. Dưới đây là một số cách tôi đã thử nghiệm nhiều nhất, từ phổ biến nhất đến ít dùng nhất.

Tạo hình tròn trong html

Border radius

Kỹ thuật phổ biến nhất là làm tròn tất cả các góc bằng cách set border-radius: 50% . Đây là kỹ thuật đơn giản nhất được sử dụng và hỗ trợ đa trình duyệt. Thuộc tính border-radius cũng sẽ ảnh hưởng đến border, box-shadow và kích thước của phần tử.

Nếu bạn muốn tạo phần tử pill (hình viên thuốc), chúng ta sẽ set thuộc tính border-radius giá trị bằng 1 nửa chiều cao của phần tử. Nếu chiều cao không xác định, chọn một số giá trị lớn tùy ý (ví dụ: 99em).

.circle {
  background: #456BD9;
  border: 0.1875em solid #0F1C3F;
  border-radius: 50%;
  box-shadow: 0.375em 0.375em 0 0 rgba(15, 28, 63, 0.125);
  height: 5em;
  width: 5em;
}

SVG

Các SVG có thể bao gồm một phần tử , có thể được style tương tự như bất kỳ cách nào khác. Chúng được hỗ trợ rất tốt và thực hiện để animate, nhưng chúng đòi hỏi nhiều markup hơn các kỹ thuật khác. Để ngăn việc cắt hình ảnh trực quan, hãy đảm bảo bán kính hình tròn (cộng với một nửa chiều rộng của nó, nếu có) nhỏ hơn một chút so với viewBox SVG.

.circle {
  fill: #456BD9;
  stroke: #0F1C3F;
  stroke-width: 0.1875em;
}

Clip Path

Đường dẫn clip là một kỹ thuật mới hơn. Hỗ trợ là tốt nhưng ít nhất quán. Clip Path không ảnh hưởng đến bố cục yếu tố, có nghĩa là chúng sẽ không ảnh hưởng đến border và có khả năng sẽ ẩn box-shadow bên ngoài.

.circle {
  background: #456BD9;
  clip-path: circle(50%);
  height: 5em;
  width: 5em;
}

Radial Gradient

Chúng ta có thể sử dụng background-imageradial-gradient để lấp đầy trực quan một phần tử bằng một vòng tròn. Bất kỳ nội dung nào cũng sẽ nằm trên cùng của hình dạng đó, nhưng bố cục của nó sẽ không bị ảnh hưởng. Đây là kỹ thuật yêu thích ít nhất của tôi vì các cạnh của hình tròn có thể xuất hiện lởm chởm hoặc mờ tùy theo trình duyệt, nhưng nó có thể phù hợp với các điểm nhấn nền tinh tế.

.circle {
  background-image: radial-gradient(circle, #456BD9, #456BD9 66%, transparent 66%);
  height: 5em;
  width: 5em;
}

Kết luận

Qua bài viết này mình đã giúp các bạn tìm hiểu các cách tạo hình tròn bằng CSS. Mình hy vọng nó sẽ có ích cho bạn.

Bài viết tham khảo: CSS Circles

All rights reserved

Thuộc tính border-radius dùng để tạo góc bo tròn cho các phần tử, hình ảnh,.....

Tạo hình tròn trong html

Cách tạo góc bo tròn cho phần tử

Một phần tử luôn có bốn góc ở bốn vị trí như sau:

top-left

top-right

bottom-left

bottom-right

Để tạo góc bo tròn cho phần tử dựa theo từng vị trí cụ thể, ta sử dụng cú pháp:

border-vị trí-radius: độ bo tròn của góc;

Độ bo tròn của góc có thể xác định theo đơn vị: px, em, hoặc %


div{
    border-bottom-right-radius: 50px;
}
img{
    border-top-right-radius: 50%;
    border-bottom-left-radius: 50%;
}

Xem ví dụ

Thuộc tính border-radius thường được sử dụng chung với thuộc tính border để tạo đường viền bo tròn


div {
    border:2px solid black;
    border-bottom-left-radius: 70px;
    border-bottom-right-radius: 70px;
}

Xem ví dụ

Cú pháp rút gọn

Thông thường, để bo tròn bốn góc cho một phần tử ta phải dùng đến bốn thuộc tính.

Bây giờ, chỉ với một một thuộc tính border-radius ta có thế bo tròn cho cả bốn góc.

Thuộc tính border-radius có bốn cách sử dụng:

border-radius: value;
  • Cả bốn góc đều có giá trị là value
border-radius: value1 value2;
  • Góc top-left và bottom-right có giá trị value1
  • Góc top-right và bottom-left có giá trị value2
border-radius: value1 value2 value3;
  • Góc top-left có giá trị value1
  • Góc top-right và bottom-left có giá trị value2
  • Góc bottom-right có giá trị value3
border-radius: value1 value2 value3 value4;
  • Góc top-left có giá trị value1
  • Góc top-right có giá trị value2
  • Góc bottom-right có giá trị value3
  • Góc bottom-left có giá trị value4


.div1{border-radius:50%;}
.div2{border-radius:10% 50%;}
.div3{border-radius:10px 30px 70px;}
.div4{border-radius:10% 30% 50% 20%;}

Xem ví dụ

Tạo góc hình elip


.div1{border-radius: 30px/80px;}
.div2{border-radius: 80px/30px;}

Xem ví dụ