এইচটিএমএল 5 তে কীভাবে ক্যানভাস পাবেন


105

আমি কিছুক্ষণের জন্য সমাধান অনুসন্ধান করছি, কিন্তু কিছুই পাইনি। হতে পারে এটি কেবল আমার অনুসন্ধানের পদ। ঠিক আছে, আমি ব্রাউজার উইন্ডোর আকার অনুযায়ী ক্যানভাস কেন্দ্র তৈরি করার চেষ্টা করছি। ক্যানভাসটি 800x600। এবং উইন্ডোটি যদি 800x600 এর নিচে নেমে যায় তবে এটিরও আকার পরিবর্তন করা উচিত (তবে এই মুহুর্তে এটি খুব গুরুত্বপূর্ণ নয়)


মাপ না দিয়ে এবং পুনরায় আকার দেওয়ার সময় স্ক্রোলবার না রেখে একটি পূর্ণ পৃষ্ঠা ক্যানভাস করতে আমি কীভাবে এটি বলব?
জর্জন

2
এটি এইচটিএমএল এ করবেন না .. এটি জাভাস্ক্রিপ্টের সাহায্যে করুন, অ্যাপেনডিল্ড বা অন্য কিছু এর মতো জিনিস ব্যবহার করুন এবং উইন্ডো.নিরউইথ এবং উইন্ডো.নাইটে প্রস্থ এবং উচ্চতা নির্ধারণ করুন
জিনএক্স

উত্তর:


173

ক্যানভাসগুলি নিম্নলিখিত সিএসএস শৈলীর বৈশিষ্ট্যগুলি দিন:

canvas {
    padding-left: 0;
    padding-right: 0;
    margin-left: auto;
    margin-right: auto;
    display: block;
    width: 800px;
}

সম্পাদন করা

যেহেতু এই উত্তরটি বেশ জনপ্রিয়, তাই আমাকে আরও কিছু বিশদ যুক্ত করতে দিন।

উপরের বৈশিষ্ট্যগুলি অনুভূমিকভাবে ক্যানভাস, ডিভি বা আপনার পিতামাতার সাথে সম্পর্কিত যে কোনও নোডকে কেন্দ্র করবে । শীর্ষ বা নীচের মার্জিন এবং প্যাডিংগুলি পরিবর্তন করার দরকার নেই। আপনি একটি প্রস্থ উল্লেখ করেছেন এবং ব্রাউজারটিকে স্বয়ংক্রিয় মার্জিন দিয়ে অবশিষ্ট স্থান পূরণ করতে দিন।

তবে, আপনি যদি কম টাইপ করতে চান, আপনি সিএসএস শর্টহ্যান্ড বৈশিষ্ট্যগুলি যেমন ব্যবহার করতে পারেন, যেমন ব্যবহার করতে পারেন

canvas {
    padding: 0;
    margin: auto;
    display: block;
    width: 800px;
}

ক্যানভাসটি উল্লম্বভাবে কেন্দ্রে রাখার জন্য আলাদা পদ্ধতির প্রয়োজন। আপনাকে নিখুঁত অবস্থান ব্যবহার করতে হবে এবং প্রস্থ এবং উচ্চতা উভয়ই নির্দিষ্ট করতে হবে। তারপরে বাম, ডান, উপরে এবং নীচের বৈশিষ্ট্যগুলি 0 তে সেট করুন এবং ব্রাউজারটিকে স্বয়ংক্রিয় মার্জিন দিয়ে অবশিষ্ট স্থান পূরণ করতে দিন।

canvas {
    padding: 0;
    margin: auto;
    display: block;
    width: 800px;
    height: 600px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

ক্যানভাস করেছে যে প্রথম পিতা বা মাতা উপাদান উপর ভিত্তি করে নিজেই কেন্দ্র হবে positionসেট relativeবা absolute, বা শরীরের যদি কিছুই না থাকে পাওয়া যায়।

আর একটি পদ্ধতি ব্যবহার করা হবে display: flex, এটি আই 11 এ উপলব্ধ

এছাড়াও, নিশ্চিত করুন যে আপনি সাম্প্রতিক ডক্টাইপ যেমন এক্সএইচটিএমএল বা এইচটিএমএল 5 ব্যবহার করেছেন।


8
প্রদর্শন ব্লক; এবং মার্জিন: 0 অটো 0 অটো; যথেষ্ট। ধন্যবাদ!
ক্রিস

কোনও ক্যানভাসকে উল্লম্বভাবে কেন্দ্রীভূত করার জন্য, আপনাকে যতক্ষণ না এটি এইচটিএমএল এ নির্দিষ্ট করা হয় ততক্ষণ আপনাকে প্রস্থ এবং উচ্চতাটি লাগাতে হবে না। ক্রোম অন, যাইহোক।
জ্যাক

1
প্রস্থ এবং উচ্চতা সিএসএস বা এইচটিএমএলে নির্দিষ্ট করা যেতে পারে। তবে সিএসএস হ'ল প্রস্তাবিত উপায় যেহেতু সমস্ত উপস্থাপনা যুক্তি সেখানে যাওয়া উচিত।
মার্কো লুগলিও

1
এটি ক্যানভাসকে কেন্দ্র করে করছে তবে ক্যানভাসে যদি ছবি আঁকা থাকে তবে এটি প্রসারিত হয়। আপনি ছবিটি প্রসারিত না করে ক্যানভাসকে কেন্দ্র করতে পারবেন
আরিয়ান

ক্যানভাস উপাদানটিতে ইনলাইন শৈলীতে উচ্চতা এবং প্রস্থ নির্ধারণ করা আমার আঁকানো চিত্রগুলির আকার এবং এগুলিকে গণ্ডগোল করে। কেবলমাত্র একটি সতর্কতামূলক প্রত্যাশা যে কাউকে কিছুটা হতাশাকে বাঁচাবে।
মিঃবোজঙ্গলস

52

আপনি আপনার ক্যানভাসটি এফএফ সিএসএসের বৈশিষ্ট্যগুলি দিতে পারেন:

#myCanvas
{
    display: block;
    margin: 0 auto;
}

আপনি একটি jsfiddle প্রদান করতে পারেন? এই পদ্ধতিটি কাজ করতে দেখা যায় না
jose.angel.jimenez

3
এটি অনুভূমিক কেন্দ্রীকরণের জন্য কাজ করে তবে উল্লম্ব কেন্দ্রীকরণ নয়।
ম্যাটি জে

20

এইচটিএমএল-তে কেবল ডিভকে কেন্দ্র করুন:

  #test {
     width: 100px;
     height:100px;
     margin: 0px auto;
     border: 1px solid red;
   }


<div id="test">
   <canvas width="100" height="100"></canvas>
</div>

কেবল উচ্চতা এবং প্রস্থকে যা কিছুতে পরিবর্তন করুন এবং আপনি একটি কেন্দ্রিক ডিভ পেয়ে গেছেন

http://jsfiddle.net/BVghc/2/


ভাগ্যবান আমার, আপনি এটি পোস্ট করার পরেই আমার এটির দরকার হয়েছিল। :)
mcandre

5
ক্যানভাসটি ধারকের চেয়ে ছোট হলে এটি কাজ করে না।
সিস্টেমিকপ্লুরাল

8

ক্যানভাস উপাদানটি অনুভূমিকভাবে কেন্দ্র করতে, আপনাকে এটি অবশ্যই একটি ব্লক স্তর হিসাবে নির্দিষ্ট করতে হবে এবং তার বাম এবং ডান মার্জিন বৈশিষ্ট্যগুলি ব্রাউজারে রেখে যেতে হবে:

canvas{
    margin-right: auto;
    margin-left: auto;
    display: block;
}

আপনি যদি এটি উল্লম্বভাবে কেন্দ্র করতে চান তবে ক্যানভাস উপাদানটি একেবারে অবস্থানের প্রয়োজন:

canvas{
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);              
}

আপনি যদি এটি অনুভূমিক এবং উল্লম্বভাবে কেন্দ্র করতে চান, তবে করুন:

canvas{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);               
}

আরও তথ্যের জন্য দেখুন: https://www.w3.org/Style/Example/007/center.en.html


5

উপরের উত্তরগুলি কেবল তখনই কাজ করে যদি আপনার ক্যানভাস ধারকটির সমান প্রস্থ হয়।

এটি নির্বিশেষে কাজ করে:

#container {
  width: 100px;
  height:100px;
  border: 1px solid red;
  
  
  margin: 0px auto;
  text-align: center;
}

#canvas {
  border: 1px solid blue;
  width: 50px;
  height: 100px;
  
}
<div id="container">
  <canvas id="canvas" width="100" height="100"></canvas>
</div>


3

এই কোডটি ব্যবহার করুন:

<!DOCTYPE html>
<html>
<head>
<style>
.text-center{
    text-align:center;
    margin-left:auto;
    margin-right:auto;
}
</style>
</head>
<body>

<div class="text-center">
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
Your browser does not support the HTML5 canvas tag.
</canvas>
</div>

</body>
</html>

2

আমার একই সমস্যা ছিল, যেমন আমার কাছে অনেকগুলি বিভিন্ন প্রস্থের ছবি রয়েছে যা আমি কেবল উচ্চতার তথ্য দিয়ে লোড করি। একটি প্রস্থ সেট করা ব্রাউজারটিকে ছবিটি প্রসারিত এবং হ্রাস করতে দেয়। আমি ইমেজ_ট্যাগ লাইনটিকে কেন্দ্র করে ঠিক আগে লেখার লাইনটি রেখে (সমস্যাটি থেকেও মুক্তি: বাম;) সমস্যা সমাধান করছি। আমি পাঠ্যটি প্রান্তিকভাবে রেখে দিতে পছন্দ করতাম তবে এটি সামান্য অসুবিধা, যা আমি সহ্য করতে পারি।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.