css設定canvas畫布尺寸與width和height設定的區別
推薦參閱CSS與canvas屬性設定畫布尺寸一文。
可以通過兩種方式設定canvas畫布的尺寸:
(1).通過canvas標籤內部的width和height屬性。
(2).css利用width和height屬性。
兩者的區別是巨大的,下面就通過程式碼例項做一下介紹:
下面是完整圖片顯示效果:
分別用標籤內width和height屬性與css的width和height屬性設定尺寸:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> canvas { border:2px dotted #ccc; margin:10px; } #two { width:600px; height:400px; } </style> <script> window.onload = function () { //獲取畫布 var oneCvs = document.getElementById("one"); var twoCvs = document.getElementById("two"); //獲取繪圖環境 var oneCtx = oneCvs.getContext("2d"); var twoCtx = twoCvs.getContext("2d"); //設定線性漸變 var oneLinear = oneCtx.createLinearGradient(50, 50, 500, 50); var twoLinear = twoCtx.createLinearGradient(50, 50, 500, 50); oneLinear.addColorStop(0, "#fff"); oneLinear.addColorStop(0.5, "#f0f"); oneLinear.addColorStop(1, "#333"); twoLinear.addColorStop(0, "#fff"); twoLinear.addColorStop(0.5, "#f0f"); twoLinear.addColorStop(1, "#333"); //進行填充 oneCtx.fillStyle = oneLinear; twoCtx.fillStyle = twoLinear; //繪製矩形 oneCtx.rect(50, 50, 500, 200); twoCtx.rect(50, 50, 500, 200); oneCtx.fill(); oneCtx.stroke(); twoCtx.fill(); twoCtx.stroke(); } </script> </head> <body> <canvas id="one" width="300" height="400"></canvas> <canvas id="two"></canvas> </body> </html>
標籤內width和height屬性設定畫布的尺寸,不會造成圖片的變形,對畫布尺寸的改變相當於將畫布切去一塊或者新增一塊;css的width和height屬性,是以變形方式來拉伸和壓縮畫布,會導致圖片變形。所以儘量避免使用css設定canvas尺寸。
相關文章
- CSS和canvas標籤設定畫布尺寸區別CSSCanvas
- CSS與canvas屬性設定畫布尺寸CSSCanvas
- CSS 與 canvas 屬性設定畫布尺寸CSSCanvas
- CSS max-width/min-width設定元素尺寸CSS
- css設定span元素的尺寸CSS
- Html5 canvas中width、height和style的寬高區別詳解HTMLCanvas
- javascript設定width的方法JavaScript
- css17 CSS Height, WidthCSS
- 設定連結<a>的尺寸
- HTML5畫布如何設定線的樣式?HTML
- max-height和height屬性同時設定時的情況
- max-width和width的區別
- html中的table標籤設定寬(width)高(height)屬性時遇到的小問題HTML
- 元素滾動條佔據部分是否佔據height和width尺寸
- 設定一個div尺寸全屏
- canvas設定陰影效果Canvas
- canvas 設定透明度Canvas
- canvas 設定矩形樣式Canvas
- canvas設定透明度Canvas
- canvas—元素樣式設定Canvas
- jQuery動態設定div元素的尺寸jQuery
- JavaScript 動畫方式設定元素尺寸和透明度JavaScript動畫
- HTML5 Canvas(畫布)實戰程式設計初級篇:基本介紹和基礎畫布元素HTMLCanvas程式設計
- 【paramter】undo_management設定為auto與manaul的區別
- css字型設定CSS
- width:auto和width:100%區別
- 關於mysql設定varchar 欄位的預設值''和null的區別,以及varchar和char的區別MySqlNull
- JavaScript 設定CSS與注意事項JavaScriptCSS
- 瞭解canvas畫布Canvas
- canvas 設定線條的樣式Canvas
- Oracle CSS的引數設定 心跳時間設定OracleCSS
- 關於CSS和JS中用到的各種Height和Width的問題CSSJS
- CSS 設定字型顏色和大小CSS
- Linux設定和修改時間與時區Linux
- jquery中的尺寸函式width(),height(),innerWidth(),outerWidth()等的用法jQuery函式
- matlab畫圖設定Matlab
- DB_FILE_MULTIBLOCK_READ_COUNT引數和區間尺寸的設定問題BloC
- drf : 請求(Request)與響應(Response),全域性設定和區域性設定drf的預設配置項。