এমডিএন-তে একটি ভাল নিবন্ধ রয়েছে যা এই ধারণাগুলির পিছনে তত্ত্বটি ব্যাখ্যা করে: https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Dertermining_the_dimension_of_e উপাদান
এটি বাউন্ডিং ক্লায়েন্টআরেক্টের প্রস্থ / উচ্চতা বনাম অফসেটউইথ / অফসেটহাইটের মধ্যে গুরুত্বপূর্ণ ধারণাগত পার্থক্য ব্যাখ্যা করে।
তারপরে, তত্ত্বটি সঠিক বা ভুল প্রমাণ করতে আপনার কিছু পরীক্ষা দরকার। আমি এখানে যা করেছি তা হ'ল: https://github.com/lingtalfi/dimension-cheatsheet
এটি ক্রোম 5৩, এফএফ 49, সাফারি 9, এজ 13 এবং আই 11 এর পরীক্ষা করছে।
পরীক্ষার ফলাফলগুলি প্রমাণ করে যে তত্ত্বটি সাধারণত সঠিক। পরীক্ষাগুলির জন্য, আমি 3 টি ডিভ তৈরি করেছি যার মধ্যে 10 টি লিপস আইপসাম অনুচ্ছেদ রয়েছে। কিছু সিএসএস তাদের প্রয়োগ করা হয়েছিল:
.div1{
width: 500px;
height: 300px;
padding: 10px;
border: 5px solid black;
overflow: auto;
}
.div2{
width: 500px;
height: 300px;
padding: 10px;
border: 5px solid black;
box-sizing: border-box;
overflow: auto;
}
.div3{
width: 500px;
height: 300px;
padding: 10px;
border: 5px solid black;
overflow: auto;
transform: scale(0.5);
}
এবং ফলাফল এখানে:
div1
- অফসেটউইথ: 530 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
- অফসেটহাইট: 330 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
- বিসিআরউইথ: 530 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
বিসিআর উচ্চতা: 330 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
ক্লায়েন্টউইথ: 505 (ক্রোম 53, এফএফ 49, সাফারি 9)
- ক্লায়েন্টউইথ: 508 (প্রান্ত 13)
- ক্লায়েন্টউইথ: 503 (ie 11)
ক্লায়েন্টহাইট: 320 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, অর্থাৎ 11)
স্ক্রোলউইথ: 505 (ক্রোম 53, সাফারি 9, এফএফ 49)
- স্ক্রোলউইথ: 508 (প্রান্ত 13)
- স্ক্রোলউইথ: 503 (ie 11)
- স্ক্রোলহাইট: 916 (ক্রোম 53, সাফারি 9)
- স্ক্রোলহাইট: 954 (ff49)
- স্ক্রোলহাইট: 922 (প্রান্ত 13, ie 11)
div2
- অফসেটউইথ: 500 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, অর্থাৎ 11)
- অফসেটহাইট: 300 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, অর্থাৎ 11)
- বিসিআরউইথ: 500 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
- বিসিআর উচ্চতা: 300 (ক্রোম 53, এফএফ 49, সাফারি 9)
- বিসিআর উচ্চতা: 299.9999694824219 (এজ 13, ie11)
- ক্লায়েন্টউইথ: 475 (ক্রোম 53, এফএফ 49, সাফারি 9)
- ক্লায়েন্টউইথ: 478 (প্রান্ত 13)
- ক্লায়েন্টউইথ: 473 (ie 11)
ক্লায়েন্টহাইট: 290 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
স্ক্রোলউইথ: 475 (ক্রোম 53, সাফারি 9, এফএফ 49)
- স্ক্রোলউইথ: 478 (প্রান্ত 13)
- স্ক্রোলউইথ: 473 (ie 11)
- স্ক্রোলহাইট: 916 (ক্রোম 53, সাফারি 9)
- স্ক্রোলহাইট: 954 (ff49)
- স্ক্রোলহাইট: 922 (প্রান্ত 13, ie 11)
div3
- অফসেটউইথ: 530 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
- অফসেটহাইট: 330 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
- বিসিআরউইথ: 265 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
- বিসিআর উচ্চতা: 165 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, ie11)
- ক্লায়েন্টউইথ: 505 (ক্রোম 53, এফএফ 49, সাফারি 9)
- ক্লায়েন্টউইথ: 508 (প্রান্ত 13)
- ক্লায়েন্টউইথ: 503 (ie 11)
ক্লায়েন্টহাইট: 320 (ক্রোম 53, এফএফ 49, সাফারি 9, এজ 13, অর্থাৎ 11)
স্ক্রোলউইথ: 505 (ক্রোম 53, সাফারি 9, এফএফ 49)
- স্ক্রোলউইথ: 508 (প্রান্ত 13)
- স্ক্রোলউইথ: 503 (ie 11)
- স্ক্রোলহাইট: 916 (ক্রোম 53, সাফারি 9)
- স্ক্রোলহাইট: 954 (ff49)
- স্ক্রোলহাইট: 922 (প্রান্ত 13, ie 11)
সুতরাং, প্রান্ত 13 এবং ie11 এ সীমাবদ্ধতা ক্লায়েন্টরেক্টের উচ্চতার মান (299.9999694824219) ছাড়াও ফলাফলগুলি নিশ্চিত করে যে এই পেছনের তত্ত্বটি কাজ করে।
সেখান থেকে, এই ধারণাগুলির আমার সংজ্ঞা এখানে দেওয়া হল:
- অফসেটউইথ / অফসেটহাইট: লেআউট বর্ডার বক্সের মাত্রা
- বাউন্ডিং ক্লায়েন্টআরেক্ট: রেন্ডারিং বর্ডার বক্সের মাত্রা
- ক্লায়েন্টউইথ / ক্লায়েন্টহাইট: লেআউট প্যাডিং বাক্সের দৃশ্যমান অংশের মাত্রা (স্ক্রোল বারগুলি বাদে)
- স্ক্রোলউইথ / স্ক্রোলহাইট: লেআউট প্যাডিং বাক্সের মাত্রা যদি এটি স্ক্রোল বার দ্বারা সীমাবদ্ধ না হয়
দ্রষ্টব্য: ডিফল্ট উল্লম্ব স্ক্রোল বারের প্রস্থটি প্রান্ত 13 এ 12px, ক্রোম 53 এ 15px, ff49 এবং সাফারি 9 এবং আই 11 এ 17px (স্ক্রিনশট থেকে ফটোশপের পরিমাপের দ্বারা সম্পন্ন এবং পরীক্ষার ফলাফলের দ্বারা প্রমাণিত)।
তবে, কিছু ক্ষেত্রে, সম্ভবত আপনার অ্যাপ্লিকেশনটি ডিফল্ট উল্লম্ব স্ক্রোল বারের প্রস্থ ব্যবহার করছে না।
সুতরাং, এই ধারণাগুলির সংজ্ঞা দেওয়া, উল্লম্ব স্ক্রোল বারের প্রস্থ (সিউডো কোডে) এর সমান হওয়া উচিত:
দ্রষ্টব্য, যদি আপনি লেআউট বনাম রেন্ডারিং বুঝতে না পারেন তবে দয়া করে এমডিএন নিবন্ধটি পড়ুন।
এছাড়াও, আপনার যদি অন্য কোনও ব্রাউজার থাকে (বা আপনি নিজের পরীক্ষার ফলাফল দেখতে চান), আপনি আমার পরীক্ষার পৃষ্ঠাটি এখানে দেখতে পারেন: http://codepen.io/lingtalfi/pen/BLdBdL
element.getBoundingClientRect()
(নোটটি বিকাশকারী.মোজিলা.আর.ইন-