আমার একটি প্রধান মোড়ক ডিভিও রয়েছে যা 100% প্রস্থে সেট করা আছে। এর ভিতরে আমি দুটি ডিভ করতে চাই, একটি নির্দিষ্ট প্রস্থ এবং অন্যটি বাকী স্থানটি পূরণ করবে। বাকী জায়গাটি পূরণ করতে আমি কীভাবে দ্বিতীয় ডিভটি ভাসিয়ে দেব। কোন সাহায্যের জন্য ধন্যবাদ।
আমার একটি প্রধান মোড়ক ডিভিও রয়েছে যা 100% প্রস্থে সেট করা আছে। এর ভিতরে আমি দুটি ডিভ করতে চাই, একটি নির্দিষ্ট প্রস্থ এবং অন্যটি বাকী স্থানটি পূরণ করবে। বাকী জায়গাটি পূরণ করতে আমি কীভাবে দ্বিতীয় ডিভটি ভাসিয়ে দেব। কোন সাহায্যের জন্য ধন্যবাদ।
উত্তর:
আপনি যা চেয়েছেন তা করার অনেকগুলি উপায় রয়েছে:
সিএসএস float
সম্পত্তি ব্যবহার :
<div style="width: 100%; overflow: hidden;">
<div style="width: 600px; float: left;"> Left </div>
<div style="margin-left: 620px;"> Right </div>
</div>
সিএসএস display
সম্পত্তি ব্যবহার করে - যা div
এর মতো কাজ করার জন্য ব্যবহৃত হতে পারে table
:
<div style="width: 100%; display: table;">
<div style="display: table-row">
<div style="width: 600px; display: table-cell;"> Left </div>
<div style="display: table-cell;"> Right </div>
</div>
</div>
আরও পদ্ধতি আছে, তবে এই দুটি সর্বাধিক জনপ্রিয়।
সিএসএস 3 চালু করেছে নমনীয় বাক্সগুলি (যেমন। ফ্লেক্স বাক্স) যা এই আচরণটি অর্জন করতে পারে।
প্রথম ডিভের প্রস্থটি কেবল সংজ্ঞায়িত করুন এবং তারপরে দ্বিতীয়টিকে একটি flex-grow
মান দিন 1
যা এটি পিতামাতার অবশিষ্ট প্রস্থটি পূরণ করতে দেয়।
.container{
display: flex;
}
.fixed{
width: 200px;
}
.flex-item{
flex-grow: 1;
}
<div class="container">
<div class="fixed"></div>
<div class="flex-item"></div>
</div>
লক্ষ্য করুন আনমন বাক্সে পুরাতন ব্রাউজার সঙ্গে পিছন সামঞ্জস্যপূর্ণ নয়, কিন্তু আধুনিক ব্রাউজারে লক্ষ্য করে একটি মহান বিকল্প (দেখুন Caniuse এবং MDN )। কিভাবে আনমন বক্স ব্যবহার করতে উপর একটি মহান ব্যাপক গাইড পাওয়া যায় সিএসএস ট্রিকস ।
আমি এইচটিএমএল এবং সিএসএস ডিজাইনের কৌশলগুলি সম্পর্কে বেশি কিছু জানি না তবে আপনি যদি কিছু সাধারণ বিষয় সন্ধান করেন এবং যা স্বয়ংক্রিয়ভাবে পর্দার সাথে খাপ খায় (যেমন আমি আছি) আমি বিশ্বাস করি যে সর্বাধিক সোজা ফরোয়ার্ড সমাধানটি ডিভগুলিকে শব্দের মতো আচরণ করা একটি অনুচ্ছেদ. উল্লেখ করার চেষ্টা করুনdisplay: inline-block
<div style="display: inline-block">
Content in column A
</div>
<div style="display: inline-block">
Content in column B
</div>
আপনার ডিআইভিগুলির প্রস্থ নির্দিষ্ট করার প্রয়োজন হতে পারে বা নাও হতে পারে
display:flex
সেরা সমাধান, তবে আমি মনে করি inline-block
এটিও দুর্দান্ত কারণ এটি আরও ব্রাউজারে কাজ করে। যাইহোক, আপনাকে <div style="white-space:nowrap">
পুনরায় আকার পরিবর্তন করতে রোধ করতে আপনার সাথে দুটি ডিভগুলি মোড়ানো প্রয়োজন ।
inline-block
কোড।
এটি অর্জনের জন্য আপনি সিএসএস গ্রিড ব্যবহার করতে পারেন, এটি উদাহরণের উদ্দেশ্যগুলির জন্য লম্বা হাতের সংস্করণ:
div.container {
display: grid;
grid-template-columns: 220px 20px auto;
grid-template-rows: auto;
}
div.left {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: row1-start
grid-row-end: 3;
background-color: Aqua;
}
div.right {
grid-column-start: 3;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end; 1;
background-color: Silver;
}
div.below {
grid-column-start: 1;
grid-column-end: 4;
grid-row-start: 2;
grid-row-end; 2;
}
<div class="container">
<div class="left">Left</div>
<div class="right">Right</div>
<div class="below">Below</div>
</div>
বা ভাসমান এবং মার্জিন ব্যবহার করে আরও প্রচলিত পদ্ধতি।
জিনিসগুলি কোথায় রয়েছে - এবং ভাসমান-অঞ্চলের নীচে থাকা সামগ্রীর সাথে কী করতে হবে তা দেখানোর জন্য আমি এই উদাহরণটিতে একটি পটভূমি রঙ অন্তর্ভুক্ত করেছি।
আপনার স্টাইলগুলি বাস্তব জীবনে ইনলাইন রাখবেন না, স্টাইল শীটে এগুলি বের করুন।
div.left {
width: 200px;
float: left;
background-color: Aqua;
}
div.right {
margin-left: 220px;
background-color: Silver;
}
div.clear {
clear: both;
}
<div class="left"> Left </div>
<div class="right"> Right </div>
<div class="clear">Below</div>
<div style="width: 200px; float: left; background-color: Aqua;"> Left </div>
<div style="margin-left: 220px; background-color: Silver;"> Right </div>
<div style="clear: both;">Below</div>
<div class="container" style="width: 100%;">
<div class="sidebar" style="width: 200px; float: left;">
Sidebar
</div>
<div class="content" style="margin-left: 202px;">
content
</div>
</div>
এটি ক্রস ব্রাউজারের সাথে সামঞ্জস্যপূর্ণ হবে। মার্জিন-বাম ছাড়াই আপনি বিষয়বস্তুগুলি বাম দিকে চালিত সমস্ত বিষয় নিয়ে চলে যাবেন যদি আপনার সামগ্রীটি আপনার সাইডবারের চেয়ে দীর্ঘ হয়।
আপনি যদি আই 6 টি টেজেটিং করছেন না, তবে দ্বিতীয়টি ভাসাবেন <div>
এবং এটিকে প্রথম <div>
স্থির প্রস্থের সমান (বা সম্ভবত কিছুটা বড়) দিতে হবে ।
এইচটিএমএল:
<div id="main-wrapper">
<div id="fixed-width"> lorem ipsum </div>
<div id="rest-of-space"> dolor sit amet </div>
</div>
সিএসএস:
#main-wrapper {
100%;
background:red;
}
#fixed-width {
width:100px;
float:left
}
#rest-of-space {
margin-left:101px;
/* May have to increase depending on borders and margin of the fixd width div*/
background:blue;
}
'বিশ্রামের স্থান' <div>
'নির্দিষ্ট-প্রস্থ' এর চেয়ে বেশি সামগ্রী থাকতে পারে এমন সম্ভাবনার জন্য মার্জিন অ্যাকাউন্টগুলি <div>
।
নির্দিষ্ট প্রস্থ একটিকে ব্যাকগ্রাউন্ড দেবেন না; যদি আপনার এগুলিকে আলাদা আলাদা 'কলাম' হিসাবে দেখা দরকার তবে ফক্স কলামগুলি কৌশলটি ব্যবহার করুন ।