<canvas>
के लिए तत्वों, width
और height
के लिए सीएसएस नियम है कि करने के लिए तैयार किया जाएगा कैनवास तत्व का वास्तविक आकार सेट पन्ना। दूसरी तरफ, width
और height
के HTML विशेषताओं को समन्वय प्रणाली या 'ग्रिड' का आकार सेट करें जो कैनवास एपीआई उपयोग करेगा।
उदाहरण के लिए, इस (jsfiddle) पर विचार करें:
var ctx = document.getElementById('canvas1').getContext('2d');
ctx.fillStyle = "red";
ctx.fillRect(10, 10, 30, 30);
var ctx2 = document.getElementById('canvas2').getContext('2d');
ctx2.fillStyle = "red";
ctx2.fillRect(10, 10, 30, 30);
canvas {
border: 1px solid black;
}
<canvas id="canvas1" style="width: 50px; height: 100px;" height="50" width="100"></canvas>
<canvas id="canvas2" style="width: 100px; height: 100px;" height="50" width="100"></canvas>
दोनों एक ही बात उन पर तैयार कैनवास तत्व के आंतरिक निर्देशांक के सापेक्ष पड़ा है। लेकिन दूसरे कैनवास में, लाल आयत चौड़ा होगा क्योंकि पूरे रूप में कैनवास सीएसएस नियमों द्वारा बड़े क्षेत्र में फैलाया जा रहा है।
नोट: यदि width
और/या height
के लिए सीएसएस नियम निर्दिष्ट नहीं हैं तो ब्राउज़र तत्वों को आकार देने के लिए HTML विशेषताओं का उपयोग करेगा जैसे कि इन मानों की 1 इकाई पृष्ठ पर 1px के बराबर होती है।यदि इन विशेषताओं को निर्दिष्ट नहीं किया गया है तो वे 300
और के height
पर डिफ़ॉल्ट होंगे।
की तरह "चौड़ाई" और "ऊंचाई" पदावनत किया गया प्रत्यक्ष गुण वास्तव में .. मुझे हमेशा यही लगता हाल के एचटीएमएल संस्करणों में .. – Sirber
ओह, जाहिर है, यह वास्तव में http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#attr-canvas- पर वास्तव में वर्णित है। चौड़ाई (खंड '# attr-canvas-width')। समस्या यह है कि मैंने पहले गलत 'चौड़ाई' पर क्लिक किया और इसके बजाय '# dom-canvas-width' अनुभाग पर गया। इसके बारे में http://www.w3.org/Bugs/Public/show_bug.cgi?id=9469 दायर की। – SamB
आपने मुझे एक भयानक सिरदर्द बचाया .... धन्यवाद! – nurxyz