Nội dung chính
SVG trong HTML5
SVG là viết tắt của Scalable Vector Graphics và nó là một ngôn ngữ để mô tả đồ họa 2D và các ứng dụng đồ họa trong XML và XML sau đó được trả lại bởi một SVG Viewer.
SVG phần lớn hữu ích cho các sơ đồ kiểu vecto như các biểu đồ Pie, các đồ thị hai chiều trong hệ tọa độ X, Y, ...
SVG trở thành một W3C Recommendation từ 14/1/2003 và bạn có thể kiểm tra phiên bản mới nhất của nó tại: SVG Specification.
Quan sát các SVG file
Hầu hết các trình duyệt web có thể hiển thị SVG giống như chúng có thể hiển thị PNG, GIF, và JPG. Người sử dụng IE có thể phải cài đặt Adobe SVG Viewer để có thể quan sát SVG trên trình duyệt.
Nhúng SVG trong HTML5
HTML5 cho phép nhúng SVG trực tiếp bởi sử dụng thẻ mà có cú pháp đơn giản sau:
<svg xmlns="http://www.w3.org/2000/svg"> ... </svg>
Firefox 3.7 cũng đã giới thiệu một tùy chọn cấu hình (about:config), từ đây bạn có thể kích hoạt tính năng HTML5 bởi sử dụng các bước sau:
Nhập about:config trong thanh địa chỉ Firefox.
Nhấn nút "I'll be careful, I promise!" trên hộp cảnh báo xuất hiện (và đảm bảo là bạn đồng ý với nó!).
Nhập html5.enable vào trong thanh lọc tại đầu trang.
Hiện tại nó sẽ là disable, vì thế nhấn nó để chuyển giá trị thành true.
Bây giờ Firefox HTML5 Parser sẽ được kích hoạt và bạn có thể trải nghiệm các ví dụ sau:
HTML5 − Đường tròn SVG
Sau đây là phiên bản HTML5 của một ví dụ SVG mà sẽ vẽ một vòng tròn sử dụng thẻ
<!DOCTYPE html> <html> <head> <style> #svgelem { position: relative; left: 50%; -webkit-transform: translateX(-20%); -ms-transform: translateX(-20%); transform: translateX(-20%); } </style> <title>SVG</title> <meta charset = "utf-8" /> </head> <body> <h2 align = "center">HTML5 SVG Circle</h2> <svg id = "svgelem" height = "200" xmlns = "http://www.w3.org/2000/svg"> <circle id = "redcircle" cx = "50" cy = "50" r = "50" fill = "red" /> </svg> </body> </html>
Nó sẽ cho kết quả sau trong phiên bản mới nhất của Firefox đã kích hoạt HTML5:
HTML5 − Hình chữ nhật SVG
Sau đây là phiên bản HTML5 của một ví dụ SVG mà sẽ vẽ một hình chữ nhật sử dụng thẻ
<!DOCTYPE html> <html> <head> <style> #svgelem { position: relative; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); } </style> <title>SVG</title> <meta charset = "utf-8" /> </head> <body> <h2 align = "center">HTML5 SVG Rectangle</h2> <svg id = "svgelem" height = "200" xmlns = "http://www.w3.org/2000/svg"> <rect id = "redrect" width = "300" height = "100" fill = "red" /> </svg> </body> </html>
Nó sẽ cho kết quả sau trong phiên bản mới nhất của Firefox đã kích hoạt HTML5:
HTML5 − Đường thẳng SVG
Sau đây là phiên bản HTML5 của một ví dụ SVG mà sẽ vẽ một đường thẳng bởi sử dụng thẻ
<!DOCTYPE html> <html> <head> <style> #svgelem { position: relative; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); } </style> <title>SVG</title> <meta charset = "utf-8" /> </head> <body> <h2 align = "center">HTML5 SVG Line</h2> <svg id = "svgelem" height = "200" xmlns = "http://www.w3.org/2000/svg"> <line x1 = "0" y1 = "0" x2 = "200" y2 = "100" style = "stroke:red;stroke-width:2"/> </svg> </body> </html>
Bạn có thể sử dụng thuộc tính style mà cho phép bạn thiết lập thông tin style bổ sung như nét, màu, độ rộng của nét, …
Nó sẽ cho kết quả sau trong phiên bản mới nhất của Firefox đã kích hoạt HTML5:
HTML5 − Hình SVG Elip
Sau đây là phiên bản HTML5 của một ví dụ SVG mà sẽ vẽ một Elip bởi sử dụng thẻ
<!DOCTYPE html> <html> <head> <style> #svgelem { position: relative; left: 50%; -webkit-transform: translateX(-40%); -ms-transform: translateX(-40%); transform: translateX(-40%); } </style> <title>SVG</title> <meta charset = "utf-8" /> </head> <body> <h2 align = "center">HTML5 SVG Ellipse</h2> <svg id = "svgelem" height = "200" xmlns = "http://www.w3.org/2000/svg"> <ellipse cx = "100" cy = "50" rx = "100" ry = "50" fill = "red" /> </svg> </body> </html>
Nó sẽ cho kết quả sau trong phiên bản mới nhất của Firefox đã kích hoạt HTML5:
HTML5 − Hình đa giác SVG
Sau đây là phiên bản HTML5 của một ví dụ SVG mà sẽ vẽ một đa giác bởi sử dụng thẻ
<!DOCTYPE html> <html> <head> <style> #svgelem { position: relative; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); } </style> <title>SVG</title> <meta charset = "utf-8" /> </head> <body> <h2 align = "center">HTML5 SVG Polygon</h2> <svg id = "svgelem" height = "200" xmlns = "http://www.w3.org/2000/svg"> <polygon points = "20,10 300,20, 170,50" fill = "red" /> </svg> </body> </html>
Nó sẽ cho kết quả sau trong phiên bản mới nhất của Firefox đã kích hoạt HTML5:
HTML5 − Hình nhiều mặt (polyline) SVG
Sau đây là phiên bản HTML5 của một ví dụ SVG mà sẽ vẽ một hình nhiều mặt bởi sử dụng thẻ
<!DOCTYPE html> <html> <head> <style> #svgelem { position: relative; left: 50%; -webkit-transform: translateX(-20%); -ms-transform: translateX(-20%); transform: translateX(-20%); } </style> <title>SVG</title> <meta charset = "utf-8" /> </head> <body> <h2 align = "center">HTML5 SVG Polyline</h2> <svg id = "svgelem" height = "200" xmlns = "http://www.w3.org/2000/svg"> <polyline points = "0,0 0,20 20,20 20,40 40,40 40,60" fill = "red" /> </svg> </body> </html>
Nó sẽ cho kết quả sau trong phiên bản mới nhất của Firefox đã kích hoạt HTML5:
HTML5 − Hình SVG Gradients
Sau đây là phiên bản HTML5 của một ví dụ SVG mà sẽ vẽ một elip bởi sử dụng thẻ
Với cách tương tự, bạn có thể sử dụng thẻ
<!DOCTYPE html> <html> <head> <style> #svgelem { position: relative; left: 50%; -webkit-transform: translateX(-40%); -ms-transform: translateX(-40%); transform: translateX(-40%); } </style> <title>SVG</title> <meta charset = "utf-8" /> </head> <body> <h2 align = "center">HTML5 SVG Gradient Ellipse</h2> <svg id = "svgelem" height = "200" xmlns = "http://www.w3.org/2000/svg"> <defs> <radialGradient id="gradient" cx = "50%" cy = "50%" r = "50%" fx = "50%" fy = "50%"> <stop offset = "0%" style = "stop-color:rgb(200,200,200); stop-opacity:0"/> <stop offset = "100%" style = "stop-color:rgb(0,0,255); stop-opacity:1"/> </radialGradient> </defs> <ellipse cx = "100" cy = "50" rx = "100" ry = "50" style = "fill:url(#gradient)" /> </svg> </body> </html>
Nó sẽ cho kết quả sau trong phiên bản mới nhất của Firefox đã kích hoạt HTML5:
HTML5 − Hình ngôi sao
Live Demo <html> <head> <style> #svgelem { position: relative; left: 50%; -webkit-transform: translateX(-40%); -ms-transform: translateX(-40%); transform: translateX(-40%); } </style> <title>SVG</title> <meta charset = "utf-8" /> </head> <body> <h2 align = "center">HTML5 SVG Star</h2> <svg id = "svgelem" height = "200" xmlns = "http://www.w3.org/2000/svg"> <polygon points = "100,10 40,180 190,60 10,60 160,180" fill = "red"/> </svg> </body> </html>
Nó sẽ cho kết quả sau trong phiên bản mới nhất của Firefox đã kích hoạt HTML5: