CSS: Drop Down Menu টিওটরিয়াল

এটা আমার প্রথম টিউন, তাই সবার কাছে গঠনমূলক সমালোচনা আশা করছি। আজ আমরা শিখবো কিভাবে CSS Drop Down Menu তৈরি করা যায়।

CSS Drop Down Menu

একজন web developer এর কাছে CSS Drop Down Menu হচ্ছে প্রথম পছন্দ। এবং তা তৈরি করা খুবই সহজ। এর জন্য CSS এর যা জানা প্রয়োজন তা হল,  CSS selectors, floating and contextual positioning ইত্যাদি। আমরা আজকে Step by Step শিখব কি ভাবে খুব সহজে CSS Drop Down Menu তৈরি করা যায়। তাহলে শুরু করা যাক।

Step One: HTML Markup

প্রথম কাজ প্রথম। আমরা HTML এ কিভাবে code লিখব তা এখানে দেখানো হল।

<ul id="navigation">

 <li><a href="#">Home</a></li>
 <li class="sub">

  <a href="#">About</a>

  <ul>

   <li><a href="#">Us</a></li>
   <li><a href="#">Our Work</a></li>
   <li><a href="#">Projects</a></li>

  </ul>

 </li>

 <li>
  <a href="#">Contacts</a>
 </li>

</ul>

যখন কোন User .sub নামের আইটেম এ hover করবে, তখন sub menu টা দেখা যাবে।

Step Two: Main Menu কে Style করা

আমরা প্রথমে menu কে Style করব। আমরা নিশ্চিত করব যাতে শুধু Main Menu এর Direct Child গুলো affected হবে (এখানে direct child বলতে শুধু প্রথম ul এর সব li আইটেম কে বঝাচ্ছে)। আমরা আমাদের Sub menu (যে সকল ul পূর্ববর্তী li এর under এ) বা তার কোন আইটেম কে select করব না, এর জন্য আমরা child selector (>) ইউজ করব।

#navigation {
margin: 0;
padding: 0 1em;
background: #000;
height: 3em;
list-style: none;
}


#navigation > li {
float: left;
height: 100%;
margin-right: 0.5em;
padding: 0 1em;
}

#navigation > li > a {
float: left;
height: 100%;
color: #c60;
text-decoration: none;
line-height: 3;
font-weight: bold;
text-transform: uppercase;
}

#navigation > li > a:hover {
color: orange;
text-decoration: underline;
}

Step Three: contextual positioning তৈরি

এখন আমরা চাই, Sub Menu যাতে সবসময়ে সে যে li এর child, তার বরাবর অবস্থান করে। এর জন্য আমরা
contextual positioning এর সাহায্য নেব।

#navigation > li.sub {
position: relative;
}

Step four: Sub Menu কে Style করা

sub menu কে hide করার জন্য নিচের css টুকু লিখুন।

#navigation > li.sub ul {
width: 10em;
margin: 0;
padding: 0.5em 0;
list-style: none;
background: #a40;
position: absolute;
top: -1000em;
}


#navigation > li.sub ul li {
width: 90%;
margin: 0 auto 0.3em auto;
}


#navigation > li.sub ul li a {
height: 100%;
display: block;
padding: 0.4em;
color: #fff;
font-weight: bold;
text-decoration: none;
}


#navigation > li.sub ul li a:hover {
background: #c60;
text-decoration: underline;
}

Step five: Sub Menu কে Show করা

Sub menu কে Show করার জন্য আমরা sub menu এর top property টা adjust করব।

#navigation > li.sub:hover ul {
top: 3em;
}

আপনাদের কাছে আমার এই post টি ভাল লাগলে Comment এর মাধ্যমে জানাবেন, এছাড়া যদি কোন নির্দেশনা থাকে অথবা CSS, HTML, Jquery, PHP, MySQL, ইত্যাদি বিষয়ে কোন কিছু জানার থাকে, আমাকে comment এর মাধামে জানাবেন, আমি অবশ্যই আমার সাধ্যমত চেষ্টা করব আপনাদের কে তা জানাতে। Tune আকারে তা আপনাদের কে উপহার দিতে পারলে আমি অনেক আনন্দিত হব।

Level New

আমি AppSolutionsBD। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 2 টি টিউন ও 17 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

https://www.odesk.com/users/~~6a0d8d62be901131


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

টিউন টি খুভি সুন্দর হইছে গুছিয়ে লিখার জন্য ধন্যবাদ । এরকম সুন্দর সুন্দর আরও টিউন চাই।

    @saymon: আপনাকে অনেক ধন্যবাদ
    আপনাদের অনুপ্রেরণা পেলে আরও post করবো

ধারুন লিখছেন কাজে লাগবে নতুনদের জন্য। বেশি করে এরকম টিউন পোস্ট করবেন।

Level 0

খুবই ভালো হয়েছে৤

আমি এতো প্রোগ্রামিং বুঝি না তবুও তৈরি করেছি একটি সাইট দেইখেন যদি ভাল লাগে http://asrteam.blogspot.com/ নতুন নতুন গেম, মুভি, সফটওয়্যার এবং আরও অনেক কিছু পাবেন এইখানে ।

Level 0

step two > coding-এর তৃতীয় প্যারা-তে (line-height: 3;) এর জায়গায় (line-height: 3em;) হবে। আপনি li-এর সাথে .sub ব্যাবহার করেছেন, এটা আমার কাছে অপ্রয়োজনীয় মনে হয়েছে (don’t mind, it’s just my personal opinion) এই বিষয়ে আপনার ব্যাখ্যা-টা জানতে চাই। tune সুন্দর হয়েছে। সবাইকে ধন্যবাদ।

    @ওমর: ভাই আপনাকে ধন্যবাদ, আমার এই ছোট tune টি মনোযোগ সহকারে পড়ার জন্য। আপনি একটি ভুল এর কথা উল্লেখ করেছেন step two এর coding এ line-height: 3em এর জায়গায় শুধু 3 দেওয়া আছে (আপনি হয়ত ভেবেছেন, typing mistake) ভাই, আপনার অবগতির জন্য জানাচ্ছি যে, line-height এর value 3 আর, 3em একই কথা। আমার আপনার কাছে অনুরধ রইল, দয়া করে এটা try করে দেখবেন। আর আপানার second পরামর্শ হচ্ছে, .sub টা আপনার কাছে অপ্রয়োজনীয় মনে হয়েছে। ভাই, এটা আপাত পক্ষে অপ্রয়োজনীয় মনে হলেও, আপনি যখন mutilevel drop down তৈরি করতে চেষ্টা করবেন, তখন এর প্রয়োজনীয়তা উপলব্ধি করতে পারবেন। কারন, drop down menu এর first level অন্য সব level থেকে ভিন্ন হয় (কারন, first level এর position শুধু top change হয়, কিন্তু আর সব level এ top এবং left দুইটাই change হয় )।তাই first level কে .sub দিয়ে আলাদা করা হয়েছে।

    এই tune এর respective আর একটা tune করার ইচ্ছা আছে। আল্লাহ্‌ সহায় হলে ইনশাল্লাহ multi-level dropdown menu নিয়ে একটা tune করব। আপনার রইল। আশা করি আপনার উত্তর পেয়েছেন। আপনাকে ধন্যবাদ।

Level 3

Thanks

Level 2

টিউনটি ভাল হয়েছে তবে আউটপুটটা দেখিয়ে দিলে আরো ভালো হতো।
ধন্যবাদ আপনাকে।

Level 0

onek shundor tune . aro tune asha korsi erokom.

Level 0

অনেক সুন্দর হইছনাকে ধন্নবাদ আপনাকে। IT,s GREAT!!!!!!!!!!!!!!!!!!!