Home » HTML » Đồ họa HTML » SVG trong HTML5
Thông qua bài, bạn sẽ biết SVG là gì? Sử dụng như thế nào? và điểm khác biệt giữa Canvas và SVG. Định nghĩa và ví dụ minh họa chi tiết về SVG

SVG trong HTML5

SVG là gì?

  • SVG là viết tắt của Scalable Vector Graphics
  • SVG được sử dụng để vẽ đồ họa trên web
  • SVG là chuẩn chính thức của tổ chức web thế giới W3C

SVG rất được giới đồ họa ưu chuộng vì nó không phụ thuộc vào độ phân giải, hình có thể phóng to gấp nhiều lần mà không lo “vỡ”.

Thẻ SVG

Thẻ <svg> (đã được giới thiệu trong phần HTML5) được sử dụng làm khung bao ngoài cho đồ họa.

SVG có một vài phương thức để vẽ như: đường thẳng, hình hộp, hình tròn, chữ và ảnh.

Trình duyệt hỗ trợ

Số trong bảng dưới đây thể hiện phiên bản trình duyệt đầu tiên hỗ trợ đầy đủ cho thẻ <SVG>:

Thuộc tính Icon Chrome Icon FireFox Icon IE Icon Safari Icon Opera
SVG 4.0 3.0 9.0 3.2 10.0

Vẽ vòng tròn trong SVG

Rất tiếc, trình duyệt của bạn không hỗ trợ SVG.

Code:

Demo

Vẽ hình chữ nhật trong SVG

Rất tiếc, trình duyệt của bạn không hỗ trợ SVG.

Code:

Demo

Vẽ hình nhữ nhật bo góc trong SVG

Rất tiếc, trình duyệt của bạn không hỗ trợ SVG.

Code:

Demo

Vẽ hình ngôi sao trong SVG

Rất tiếc, trình duyệt của bạn không hỗ trợ SVG.

Code:

Demo

Vẽ logo SVG

SVG Rất tiếc, trình duyệt của bạn không hỗ trợ SVG.

Code:

Demo

Sự khác nhau giữa SVG và Canvas

SVG là một ngôn ngữ để mô tả đồ họa 2D trong XML.

Canvas vẽ đồ họa 2D với JavaScript.

SVG được dựa trên XML nên tất cả các thành phần đều có sẵn trong SVG DOM. Bạn có thể dùng javascript để xử lý các sự kiện trên một thành phần của SVG.

Trong SVG, mỗi hình vẽ được lưu như một đối tượng. Nếu thuộc tính của một đối tượng trong SVG thay đổi, trình duyệt sẽ tự động vẽ lại hình.

Canvas được dựng lên bằng các pixel đứng cạnh nhau. Trong canvas, khi hình đã được dựng lên thì không còn thành phần nào được lưu trong trình duyệt. Nếu muốn thay đổi vị trí của một thành phần, bạn sẽ phải vẽ hình.

So sánh giữa SVG và Canvas

Bảng so sánh dưới đây sẽ cho ta thấy một vài điểm khác biệt quan trọng giữa Canvas và SVG:

CanvasSVG
  • Phụ thuộc vào độ phân giải

  • Không hỗ trợ xử lý các sự kiện

  • Khả năng dựng hình cho chữ kém

  • Có thể lưu hình sau khi vẽ dưới dạng .png hoặc .jpg

  • Rất thích hợp cho các trò chơi có đồ họa chuyên sâu

  • Không phụ thuộc vào độ phân giải

  • Hỗ trợ xử lý các sự kiện

  • Phù hợp nhất với các ứng dụng dựng hình lớn (Google Maps)

  • Dựng hình chậm nếu đồ họa phức tạp (bất kể thứ gì sử dụng nhiều DOM đều bị chậm)

  • Không phù hợp với các ứng dụng game

Leave a Reply

Your email address will not be published. Required fields are marked *

*