@ বোল্টক্লক যা উল্লেখ করেছেন তা বেশ শক্ত। এবং এখানে আমি এই সমস্যার জন্য আরও কয়েকটি সমাধান যুক্ত করতে চাই। এই w3c_collapsing মার্জিনটি পরীক্ষা করুন । সবুজ অংশগুলি হ'ল এই সমস্যাটি কীভাবে সমাধান করা যায় তার সম্ভাব্য চিন্তাভাবনা।
সমাধান ঘ
কোনও ভাসমান বাক্স এবং অন্য কোনও বাক্সের মধ্যে মার্জিন ভেঙে যায় না (এমনকি একটি ফ্লোট এবং এর প্রবাহিত শিশুদের মধ্যেও নয়)।
তার মানে আমি বা ডেমো 1 এ যুক্ত float:left
করতে পারি ।#outer
#inner
এছাড়াও লক্ষ্য করুন যে মার্জিনে float
অবৈধ হবে auto
।
সমাধান 2
নতুন ব্লক ফর্ম্যাটিং প্রসঙ্গ স্থাপনকারী উপাদানগুলির মার্জিনগুলি (যেমন 'দৃশ্যমান' ব্যতীত 'ওভারফ্লো' সহ ভাসমান এবং উপাদানগুলি) তাদের প্রবাহের শিশুদের সাথে ধসে পড়ে না।
ছাড়া অন্য visible
, এর যাক করা overflow: hidden
মধ্যে #outer
। এবং এই উপায়টি বেশ সহজ এবং শালীন বলে মনে হচ্ছে। আমি এটা পছন্দ করি.
#outer{
width: 500px;
height: 200px;
background: #FFCCCC;
margin: 50px auto;
overflow: hidden;
}
#inner {
background: #FFCC33;
height: 50px;
margin: 50px;
}
সমাধান 3
একেবারে অবস্থানযুক্ত বাক্সগুলির মার্জিনগুলি ধসে পড়ে না (এমনকি তাদের প্রবাহিত শিশুদের সাথেও নয়)।
#outer{
width: 500px;
height: 200px;
background: #FFCCCC;
margin: 50px auto;
position: absolute;
}
#inner{
background: #FFCC33;
height: 50px;
margin: 50px;
}
অথবা
#outer{
width: 500px;
height: 200px;
background: #FFCCCC;
margin: 50px auto;
position: relative;
}
#inner {
background: #FFCC33;
height: 50px;
margin: 50px;
position: absolute;
}
এই দুটি পদ্ধতির স্বাভাবিক প্রবাহ ভঙ্গ করবে div
সমাধান 4
ইনলাইন-ব্লক বাক্সগুলির প্রান্তগুলি ধসে পড়ে না (এমনকি তাদের প্রবাহিত শিশুদের সাথেও নয়)।
@enderskill এর মতই
সমাধান 5
ইন-ফ্লো ব্লক-লেভেল এলিমেন্টের নীচের প্রান্তটি তার পরবর্তী ইন-ফ্লো ব্লক-লেভেল ভাইবিলিংয়ের শীর্ষ মার্জিনের সাথে সর্বদা পতিত হয়, যতক্ষণ না সেই ভাইবোন ছাড়পত্র ছাড়।
এটি প্রশ্নের সাথে খুব বেশি কিছু করার নেই কারণ এটি ভাই-বোনদের মধ্যে ভেঙে যাওয়া ব্যবধান। এটির অর্থ সাধারণত যদি কোনও শীর্ষ-বাক্স থাকে margin-bottom: 30px
এবং একটি ভাইবোন বাক্স থাকে margin-top: 10px
। তাদের মধ্যে মোট মার্জিন এর 30px
পরিবর্তে 40px
।
সমাধান 6
যদি উপাদানটির শীর্ষ সীমানা না থাকে, কোনও শীর্ষ প্যাডিং না থাকে এবং সন্তানের কোনও ছাড়পত্র না থাকে তবে ইন-ফ্লো ব্লক উপাদানের শীর্ষ প্রান্তটি তার প্রথম ইন-ফ্লো ব্লক-স্তরের বাচ্চার শীর্ষ মার্জিনের সাথে ধসে যায়।
এটি খুব আকর্ষণীয় এবং আমি কেবল একটি শীর্ষ সীমান্ত লাইন যুক্ত করতে পারি
#outer{
width: 500px;
height: 200px;
background: #FFCCCC;
margin: 50px auto;
border-top: 1px solid red;
}
#inner {
background: #FFCC33;
height: 50px;
margin: 50px;
}
এছাড়াও <div>
ডিফল্টরূপে ব্লক-স্তরের, তাই আপনাকে এটি উদ্দেশ্য হিসাবে ঘোষণা করতে হবে না। আমার নবাগত খ্যাতির কারণে 2 টির বেশি লিঙ্ক এবং চিত্র পোস্ট করতে না পারায় দুঃখিত। পরের বার থেকে আপনি অনুরূপ কিছু দেখতে পেলে সমস্যাটি কোথায় থেকে আসে তা আপনি অন্তত জানেন।