সিএসএস ধারক ডিভিও উচ্চতা পাচ্ছে না


116

আমি চাই আমার পাত্রে ডিভিটি এর বাচ্চার উচ্চতার সর্বোচ্চের উচ্চতা পাবে। সন্তানের কোন উচ্চতা হতে চলেছে তা না জেনে div। আমি জেএসফিডেলে চেষ্টা করছিলাম । ধারকটি divলালচে। যা প্রদর্শিত হচ্ছে না। কেন?

উত্তর:


282

নিম্নলিখিত সম্পত্তি যুক্ত করুন:

.c{
    ...
    overflow: hidden;
}

এটি ভাসমান উপাদান নির্বিশেষে, ধারকটিকে তার মধ্যে থাকা সমস্ত উপাদানের উচ্চতার সম্মান করতে বাধ্য করবে।
http://jsfiddle.net/gtdfY/3/

হালনাগাদ

সম্প্রতি, আমি এমন একটি প্রকল্পে কাজ করছি যার জন্য এই কৌশলটি প্রয়োজন, তবে ওভারফ্লোটি দেখাতে দেওয়া দরকার ছিল, তার পরিবর্তে, আপনি আপনার ভাসমানগুলি সাফ করার জন্য একটি সিউডো-এলিমেন্ট ব্যবহার করতে পারেন, কার্যকরভাবে সমস্ত উপাদানগুলিতে ওভারফ্লো অনুমতি দেওয়ার সময় একই প্রভাব অর্জন করতে পারেন।

.c:after{
    clear: both;
    content: "";
    display: block;
}

http://jsfiddle.net/gtdfY/368/


8
মূলত, এই সম্পত্তি যুক্ত করা বহিরাগত বাক্সটিকে ভাসমান পাত্রে থাকা নিয়মটিকে উপেক্ষা করতে বাধ্য করে, যেখানে সেগুলি ধারকগুলির জন্য উচ্চতায় গণনা করা হয় না এবং পূর্ণ পটভূমির অঙ্কনের জন্য এগুলি প্রয়োগ করে।
নাইটফায়ার্কট

4
বাহ, আমি ছিলাম, "কি? যে কাজ করবে না।" তবে আমি শঙ্কিত হব। আমি পুরোপুরি ভেবেছিলাম এটি সঠিকভাবে আচরণ করবে না। ধন্যবাদ
fie

1
এটি কি আসলেই হ্যাকি নয়? আমার কাছে এটি ওভারফ্লোয়ের উদ্দেশ্যকে পরাস্ত করে। আমি বুঝতে পারছি না কেন এটি সঠিক এবং সর্বাধিক উত্তোলিত উত্তর।
অ্যান্ড্রু ওয়েয়ার 11

3
@ অ্যান্ড্রুউইয়ার আমি স্বীকার করব, এখনও অবধি আমি নিশ্চিত ছিলাম না যে কেন কন্টেনারগুলি প্রসারিত করার পদ্ধতিটি তাদের আকারের ভাসমানগুলি সঠিকভাবে বিবেচনা করতে পারে। অনুযায়ী করতে বিভিন্ন সূত্র , মনে হচ্ছে যে এই কাছে দৃশ্যমান ওভারফ্লো যার ফলে তার রেন্ডারিং পরিবর্তন করার জন্য, একটি উপাদান কারণ না এমনটি আর তাই করছেন, এই বাহিনী অনেক উপাদান আছে যা ওভারফ্লো নামঞ্জুর করার জন্য।
নাইটফায়ার কেট

2
ওভারফ্লো ব্যবহার করে প্রথম উপায়টি আমার পক্ষে কাজ করে। ভবিষ্যতে আমার ওভারফ্লো হ'ল দ্বিতীয় উপায় ALSO কাজ করে এবং কম ঝুঁকিপূর্ণ বলে মনে হয়। আমি কেবল ইচ্ছুক যে আমি দু'বার উপড়ে উঠতে পারি
টাইলার কলিয়ার

28

আপনি বাচ্চাদের ভাসাচ্ছেন যার অর্থ তারা ধারকটির সামনে "ভাসমান"। সঠিক উচ্চতা নিতে, আপনাকে অবশ্যই ভাসা "সাফ" করতে হবে

ডিভ স্টাইল = "ক্লিয়ার: উভয়" ভাসমান একটি সাফ করে কনটেইনারটিকে সঠিক উচ্চতা দেয়। দেখতে http://css.maxdesign.com.au/floatutorial/clear.htm ভাসে আরো তথ্যের জন্য।

যেমন।

<div class="c">
    <div class="l">

    </div>
    <div class="m">
        World
    </div>
    <div style="clear: both" />
</div>

এটি পরিষ্কার: উভয়; জিনিসটি ধারকের উচ্চতার জন্য উপযুক্ত সমাধান বলে মনে হচ্ছে কারণ সমস্যাটি ভাসমান বাচ্চাদের। সুতরাং এই পন্থাটি ওভারফ্লোয়ের চেয়ে ভাল বলে মনে হচ্ছে: গোপন উপরে এক।
রনি ডেপ

এই সহজ সমাধানটি ভাগ করে নেওয়ার জন্য @ ইয়োরিকে ধন্যবাদ। থাম্বস আপ! আমি আমার নতুন ডিজাইনের জন্য একই সমাধানটি সন্ধান করছি কারণ প্রায় এক বছর আগে আমি একটি ওয়েব লেআউট ডিজাইনের পরে আমি পুরোপুরি পিএইচপি বিকাশের পরিবর্তে ডিজাইনের দিকে মনোনিবেশ করেছি designed
রনি ডেপ


4

শেষের আগে এই ক্লিয়ারিং ডিভ Tryোকানোর চেষ্টা করুন </div>

<div style="clear: both; line-height: 0;">&nbsp;</div>


3

সবচেয়ে ভাল এবং সর্বাধিক বুলেটপ্রুফ সমাধান হ'ল ধারকটিতে সিউডোলেমেন্ট যুক্ত করা ::beforeএবং ::after। সুতরাং আপনার যদি উদাহরণস্বরূপ একটি তালিকা থাকে:

<ul class="clearfix">
    <li></li>
    <li></li>
    <li></li>
</ul>

এবং তালিকার প্রতিটি উপাদানগুলির float:leftসম্পত্তি আছে, তারপরে আপনার সিএসএসে যুক্ত করা উচিত:

.clearfix::after, .clearfix::before {
     content: '';
     clear: both;
     display: table;
}

অথবা আপনি display:inline-block;সম্পত্তি চেষ্টা করতে পারেন , তারপরে আপনাকে কোনও ক্লিয়ারফিক্স যুক্ত করার দরকার নেই।

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