বর্তমানে, ইন্টারনেট এক্সপ্লোরার বক্স মডেল সমস্যা বেশিরভাগই একটি নন-ইস্যু। বেশিরভাগ ওয়েব বিকাশকারীগণ <!DOCTYPE>
মান মেনে চলার জন্য একটি ট্যাগ রাখে এবং কেউই আর ইন্টারনেট এক্সপ্লোরার 5.5 সমর্থন করার বিষয়ে সত্যই চিন্তা করে না।
যাইহোক, কিছু বিকাশকারী আইই বাক্স মডেলটির প্রতিরক্ষায় বিষয়গত, ধারণামূলক যুক্তি দিয়ে এসেছেন। তারা দাবি করেছে যে আইই বক্স মডেলটি ডাব্লু 3 সি মডেলের চেয়ে বেশি "স্বজ্ঞাত", কারণ ডাব্লু 3 সি মডেলটি বাক্সের বিষয়বস্তু পরিমাপ করে , যেখানে আইই মডেল বাক্সটি নিজেই পরিমাপ করে:
আমি তাদের দৃষ্টিকোণ দেখতে পাচ্ছি, তবে এটি মূলত একটি বিষয়গত যুক্তি, এবং সর্বাধিক গুরুত্বপূর্ণ বিষয় হল মান সম্মতি।
তবে, সম্প্রতি আমি গুরুতর ব্যবহারিক কারণে আই বাক্স মডেলটি পছন্দ করতে এসেছি । ডাব্লু 3 সি বক্স মডেলটিকে অন্য উপাদানটির যথাযথ অনস্ক্রিন পিক্সেল প্রস্থের গতিগতভাবে আকার পরিবর্তন করতে সমস্যা করে। কারণটি হ'ল যে style.width
কোনও উপাদানটির সম্পত্তি উপাদানটির মোট স্ক্রিন আকারের জন্য অ্যাকাউন্ট করে না: আপনার কোনও অতিরিক্ত সীমানা এবং প্যাডিংও অ্যাকাউন্টে নেওয়া উচিত। উভয় উপাদান একই সিএসএস ক্লাস ব্যবহার করে তবে এটি কোনও সমস্যা নয় - তবে যদি তাদের আলাদা সিএসএস ক্লাস থাকে তবে এটি অবিশ্বাস্যভাবে চ্যালেঞ্জিং হয়ে উঠতে পারে।
ধরুন আমাদের দুটি ডিভ রয়েছে: এ এবং বি এ, এইচটিএমএলে একটি 400px ডিভ হিসাবে হার্ড-কোডড, অন্যদিকে জাভাস্ক্রিপ্ট ব্যবহার করে বি গতিশীলভাবে তৈরি করা হয়েছে। দৃশ্যত, আমরা বি এর পুরানো আই বক্স মডেলের অধীনে এ এর সঠিক প্রস্থ হতে চাই। এটি তুচ্ছ। আমরা কেবল বলি: B.style.width = A.style.width
বা এমনকি B.style.width = A.offsetWidth + "px"
।
তবে ডাব্লু 3 সি বক্স মডেলের সাথে, এটি এত সহজ নয়। স্টাইল শীট সম্পর্কে এখন আমাদেরও চিন্তিত হতে হবে। যদি বি এর একই সিএসএস ক্লাস থাকে তবে আমরা কেবল বলতে পারি B.style.width = A.style.width
। তবে যদি তা না হয় - এবং আমরা নান্দনিক কারণে এটি নাও চাই - আমরা সমস্যায় আছি। এখন আমাদের সীমান্তের মোট পিক্সেল এবং এ এবং বি উভয়ের প্যাডিংগুলি বিবেচনা করতে হবে এটি বিশেষত কঠিন হতে পারে যদি সীমান্ত এবং প্যাডিংগুলি বেমানান ইউনিটে নির্দিষ্ট করা হয় (যেহেতু সীমানা প্রায়শই 1px লাইন থাকে, তবে প্যাডিং হয়) ইএমএসে নির্দিষ্ট করা হতে পারে)। তারপরে আমরা একটি সাধারণ এককে (এম থেকে পিএক্স বা পিক্সে ইমে) রুপান্তর করার অর্ধ-অসম্ভব কাজের মুখোমুখি হয়েছি । এই সমস্ত কিছু ঠিক স্ক্রিনে লাইন আপ করতে দুটি ডিভ পেতে।
সুতরাং মূলত, ডাব্লু 3 সি বক্স মডেলটি যখন আমরা কোনও উপাদানটির আকার নির্ধারণ করি তখন সিএসএস বর্ডার এবং প্যাডিংয়ের বিষয়গুলি বিবেচনায় আনতে আমাদের বাধ্য করে, যখন আইই বাক্স মডেলটি দেয় না, যেহেতু প্রস্থটি বাক্সের পুরো আকারকে পরিমাপ করে (শেষ থেকে টু বাক্সের বিষয়বস্তু না করে-শেষ) । একে অপরের সাথে সম্পর্কগুলিতে গতিশীল আকারের উপাদানগুলিকে আকার দেওয়া অনেক সহজ করে তোলে।
এগুলি সমস্ত ডাব্লু 3 সি মডেলের চেয়ে আইই বক্স-মডেলটির পক্ষে যাওয়ার পক্ষে বেশ শক্তিশালী কারণ বলে মনে হচ্ছে (কমপক্ষে ধারণাগতভাবে - অবশ্যই অনুশীলনে আই বক্স-মডেল মারা গেছে)।
প্রশ্ন : ডাব্লু 3 সি কেন এই বক্স মডেলটি বেছে নিয়েছিল? ডাব্লু 3 সি বক্স মডেলের কিছু সুবিধা রয়েছে যা আমি কেবল দেখছি না? বা আমি কি এখানে সমস্যাটি খুব বাড়িয়ে বলছি?