Html & Css, HTML5-CSS3 - Series

HTML5 – CSS – Tutorial – Step 9

SVG

– SVG là gì?
    • SVG là viết tắt của Scalable Vector Graphics (đồ họa vector mở rộng)
    • SVG được dùng để làm nền cho đồ họa vector trên Web
    • SVG có định dạng XML
    • Chất lượng ảnh SVG không bị ảnh hưởng khi phóng to, thu nhỏ hoặc thay đổi kích thước ảnh
    • Mỗi phần tử và thuộc tính trong files SVG đều linh động
    • SVG được khuyến nghị bởi W3C
– Ưu điểm của SVG
Ưu điểm của việc sử dụng SVG trên các định dạng ảnh (như JPEG và GIF) là:
    • Ảnh SVG có thể được tạo và sửa bằng văn bản.
    • Ảnh SVG có thể tìm kiếm, đặt chỉ mục, xử lý, và nén.
    • Ảnh SVG có khả năng mở rộng.
    • Ảnh SVG có thể in ra hình ảnh chất lượng với bất kỳ độ phân giải nào.
    • Ảnh SVG có thể phóng to thoải mái mà không bị vỡ hình.
    • Nhúng SVG trực tiếp lên trang HTML

Trong HTML5, bạn có thể nhúng trực tiếp phần tử SVG vào trang HTML:

Ví dụ

 
 
 
 
 

 

– Điểm khác nhau giữa SVG và Canvas
SVG là ngôn ngữ mô tả đồ họa 2D bằng XML.

Canvas vẽ đồ họa 2D bằng script (với JavaScript).

SVG có nền là XML, nghĩa là mọi phần tử đều có sẵn trong SVG DOM. Bạn có thể gán một sự kiện xử lý cho phần tử đó.
In SVG, each drawn shape is remembered as an object. If attributes of an SVG object are changed, the browser can automatically re-render the shape.
Trong SVG, mỗi phần tử được ghi nhớ như một đồi tượng. Nếu thuộc tính của một đối tượng SVG bị thay đổi thì trình duyệt tự động thay đổi hình dạng đối tượng đó.

Canvas được tạo bởi điểm ảnh. Với canvas, hình ảnh không được nhớ bởi trình duyệt. Do đó, nếu một điểm bị thay đổi, toàn bộ phải được vẽ lại.

– So sánh Canvas và SVG
Canvas
    • Phụ thuộc độ phân giải
    • Không hỗ trợ xử lý sự kiện
    • Khả năng vẽ văn bản kém
    • Bạn có thể lưu hình ảnh dưới dạng .png hoặc .jpg
    • Rất thích hợp cho các game đồ họa.

SVG
    • Không phụ thuộc độ phân giải
    • Hỗ trợ xử lý sự kiện
    • Phù hợp nhất cho các ứng dụng với các khu vực dựng hình lớn (Google Maps)
    • Khó thực hiên các hình ảnh phức tạp.
    • Không phù hợp với ứng dụng game.

– SVG
SVG có một số hình dạng đã được định dạng trước vd:
    • Rectangle <rect> – hình chữ nhật
    • Circle <circle> – hình tròn
    • Ellipse <ellipse> – hình bầu dục
    • Line <line> – đường kẻ
    • Polyline <polyline> – đường gấp khúc
    • Polygon <polygon> – hình khép kín tạo bơi các đường thẳng
    • Path <path> – hình khép kín tạo từ 3 điểm


Rectangle



     
              
      SVG
            
   
   	
      

HTML5 SVG Rectangle

hình chữ nhật SVG


Circle



     
             
      SVG
           
   
     
      

HTML5 SVG Circle

hình tròn SVG


Ellipse



        
           
      SVG
      
   	
   	
      

HTML5 SVG Ellipse

hình bầu dục


Line



        
         
      SVG
      
   	
   	
      

HTML5 SVG Line

đường kẻ SVG


Polyline


  
       
           
      SVG
      
   	
   	
      

HTML5 SVG Polyline

polyline SVG


Polygon



      
      
     
      SVG
      
   	
   	
      

HTML5 SVG Polygon

polygon SVG


SVG Gradients



   
      
      SVG
      
   	
   
      

HTML5 SVG Gradient Ellipse

gradient SVG


Star

 
   
       
      SVG
      
   
   	
      

HTML5 SVG Star

star SVG
[highlighter]