Academy

সিএসএস (Cascading Style Sheets) হলো একটি স্টাইল শীট ভাষা, যা HTML বা XML এর মতো মার্কআপ ভাষায় লেখা ডকুমেন্টগুলোর লেআউট এবং ডিজাইনকে সাজানোর জন্য ব্যবহৃত হয়। সহজ ভাষায়, CSS ব্যবহার করে আপনি ওয়েবসাইটের লুক, লেআউট, এবং ভিজ্যুয়াল ইফেক্ট কাস্টমাইজ করতে পারেন। এটি HTML-এর কন্টেন্টকে প্রেজেন্টেবল এবং স্টাইলিশ করে তোলে।


CSS (Cascading Style Sheets): একটি বিস্তারিত বাংলা গাইড


CSS কি?

CSS (Cascading Style Sheets) হলো একটি স্টাইলিং ভাষা, যা HTML বা XML (যেমন SVG, XHTML) ডকুমেন্টের লেআউট এবং প্রেজেন্টেশন কন্ট্রোল করতে ব্যবহৃত হয়। HTML দিয়ে ওয়েবপেজের কনটেন্ট বা কাঠামো তৈরি করা হয়, আর CSS দিয়ে সেই কনটেন্টের স্টাইল, লেআউট, এবং ডিজাইন নির্ধারণ করা হয়। CSS ওয়েব ডেভেলপারদের ফন্ট, কালার, মার্জিন, প্যাডিং, ব্যাকগ্রাউন্ড, বর্ডার ইত্যাদি স্টাইলিং বৈশিষ্ট্য সেট করতে সাহায্য করে।

CSS হলো Cascading অর্থাৎ একাধিক স্টাইল শীট একত্রে কাজ করতে পারে এবং কোনো কনফ্লিক্ট থাকলে প্রাধান্য নির্ধারণের নিয়ম অনুসরণ করে।


CSS এর ইতিহাস

CSS প্রথমে ১৯৯৬ সালে Håkon Wium Lie এবং Bert Bos দ্বারা প্রস্তাবিত হয়েছিল এবং W3C (World Wide Web Consortium) এর দ্বারা স্ট্যান্ডার্ড হিসেবে গৃহীত হয়। HTML এর স্টাইলিং নিয়ন্ত্রণে HTML ট্যাগে স্টাইল ডিফাইন করা কিছুটা কঠিন হয়ে পড়েছিল, তাই CSS এর ধারণা আসে, যাতে কনটেন্ট এবং স্টাইল আলাদা রাখা যায়। CSS এর প্রথম সংস্করণ CSS1 হিসেবে প্রকাশিত হয়, আর বর্তমানে CSS3 ব্যবহার করা হচ্ছে, যা নতুন নতুন ফিচার সংযোজন করেছে।


CSS এর ফিচারসমূহ

স্টাইলিং এবং লেআউট কন্ট্রোল:

  • CSS এর মাধ্যমে আপনি HTML এলিমেন্টগুলোর ফন্ট, কালার, লেআউট এবং পজিশন কাস্টমাইজ করতে পারেন। এটি পেজের ভিজ্যুয়াল উপস্থাপনা নিয়ন্ত্রণ করে।

Responsive Design:

  • CSS এর মাধ্যমে মিডিয়া কুয়েরি (Media Queries) ব্যবহার করে মোবাইল, ট্যাবলেট, এবং ডেস্কটপ ডিভাইসের জন্য রেসপন্সিভ ডিজাইন তৈরি করা যায়।

Flexbox এবং Grid Layout:

  • CSS এর Flexbox এবং Grid লেআউট সিস্টেম ব্যবহার করে জটিল লেআউট তৈরি করা অনেক সহজ হয়েছে। Flexbox এবং Grid সিস্টেমের মাধ্যমে একাধিক এলিমেন্টের সঠিক অর্ডার, জাস্টিফিকেশন এবং অ্যালাইনমেন্ট করা যায়।

Animation and Transition:

  • CSS এর মাধ্যমে সহজে এনিমেশন এবং ট্রানজিশন তৈরি করা যায়। @keyframes এবং transition প্রপার্টি ব্যবহার করে HTML এলিমেন্টগুলোর মধ্যে মসৃণ অ্যানিমেশন অ্যাড করা যায়।

পেজের স্পিড এবং পারফরম্যান্স:

  • CSS ডকুমেন্টের স্টাইল নির্ধারণে HTML থেকে আলাদা করা হয়, যার ফলে পেজ লোড টাইম কম হয় এবং পারফরম্যান্স বাড়ে।

Cascading এবং Inheritance:

  • CSS এর Cascading ফিচার বিভিন্ন স্তরের স্টাইল শীটগুলোর মধ্যে প্রাধান্য নির্ধারণ করে এবং Inheritance ফিচার স্টাইল প্রোপার্টিগুলোকে প্যারেন্ট এলিমেন্ট থেকে চাইল্ড এলিমেন্টে প্রয়োগ করতে দেয়।

CSS এর সিনট্যাক্স

CSS এর কোড লেখা হয় সিলেক্টর (Selector) এবং ডিক্লারেশন ব্লক (Declaration Block) এর মাধ্যমে।

CSS এর সাধারণ গঠন:

 

selector {
    property: value;
}

উদাহরণ:

h1 {
    color: blue;
    font-size: 24px;
    text-align: center;
}

এখানে h1 হলো সিলেক্টর, আর {color: blue; font-size: 24px; text-align: center;} হলো ডিক্লারেশন ব্লক, যেখানে বিভিন্ন প্রোপার্টি এবং তাদের মান দেওয়া হয়েছে।


CSS এর কাজের ধাপসমূহ

1. Inline CSS

Inline CSS এর ক্ষেত্রে HTML এলিমেন্টের মধ্যে style অ্যাট্রিবিউট ব্যবহার করে CSS কোড সরাসরি লিখা হয়। এটি ছোট স্কেল স্টাইলিং এর জন্য উপযুক্ত, কিন্তু বড় প্রোজেক্টে এটি ব্যবহারের পরামর্শ দেওয়া হয় না।

<h1 style="color: red; font-size: 30px;">This is an Inline CSS</h1>

2. Internal CSS

Internal CSS এর ক্ষেত্রে HTML পেজের <head> ট্যাগের মধ্যে <style> ট্যাগ ব্যবহার করে CSS কোড লেখা হয়।

<head>
    <style>
        h1 {
            color: green;
            font-size: 28px;
        }
    </style>
</head>

3. External CSS

External CSS হলো আলাদা একটি .css ফাইল ব্যবহার করে CSS কোড লেখা। এই ফাইলটি HTML ডকুমেন্টের সাথে লিঙ্ক করে যুক্ত করা হয়।

CSS ফাইল: style.css

h1 {
    color: purple;
    font-size: 32px;
}

HTML ফাইল:

<head>
    <link rel="stylesheet" href="style.css">
</head>

4. Selectors এবং Pseudo-Selectors

CSS এ বিভিন্ন সিলেক্টর ব্যবহার করে HTML এলিমেন্টগুলো সিলেক্ট করা হয়। সিলেক্টরগুলো বিভিন্নভাবে কাজ করে, যেমন:

Element Selector: সরাসরি HTML এলিমেন্ট সিলেক্ট করে।

p {    color: blue; }

Class Selector: .classname ব্যবহার করে সিলেক্ট করা হয়।

.button {
    background-color: green;
}

ID Selector: #idname ব্যবহার করে সিলেক্ট করা হয়।

#header {
    text-align: center;
}

Pseudo-Selectors: :hover, :focus, :first-child ইত্যাদি ব্যবহার করে এলিমেন্টের বিভিন্ন অবস্থা সিলেক্ট করা যায়।

a:hover {
    color: red;
}

CSS এর Layout Techniques

1. Flexbox Layout

Flexbox CSS এর একটি লেআউট মডেল যা flex container এবং flex items এর মাধ্যমে কনটেন্টের ফ্লো, অ্যালাইনমেন্ট, এবং ডিস্ট্রিবিউশন কন্ট্রোল করে।

.container {
    display: flex;
    justify-content: space-between;
}

2. Grid Layout

CSS গ্রিড একটি শক্তিশালী লেআউট সিস্টেম যা দুই-ডাইমেনশনাল লেআউট তৈরি করতে সহায়ক।

.container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

3. Positioning

CSS এর position প্রপার্টি এলিমেন্টের অবস্থান নির্ধারণ করতে ব্যবহার করা হয়। এর বিভিন্ন মান রয়েছে যেমন static, relative, absolute, এবং fixed

.box {
    position: absolute;
    top: 50px;
    left: 20px;
}

Responsive Design

CSS এর মাধ্যমে রেসপন্সিভ ডিজাইন তৈরি করতে মিডিয়া কুয়েরি ব্যবহার করা হয়, যা বিভিন্ন স্ক্রিন সাইজের জন্য আলাদা লেআউট তৈরি করতে সহায়ক।

@media screen and (max-width: 768px) {
    body {
        background-color: lightblue;
    }
}

CSS এর সুবিধা

কনটেন্ট এবং স্টাইল আলাদা করা:

  • CSS HTML এর কনটেন্ট এবং স্টাইলকে আলাদা করে, ফলে ওয়েবপেজে কনটেন্ট এবং স্টাইলিং পরিবর্তন সহজ হয়।

রিসুয়েজেবল কোড:

  • একবার CSS লিখে আপনি তা অনেকগুলো পেজে ব্যবহার করতে পারেন, যা ডেভেলপমেন্টে সময় এবং পরিশ্রম বাঁচায়।

Responsive Design Support:

  • CSS এর মাধ্যমে সহজে রেসপন্সিভ ডিজাইন তৈরি করা যায়, যা মোবাইল এবং ডেস্কটপ উভয় ডিভাইসে ভালোভাবে কাজ করে।

ডিজাইন এবং স্টাইলিং সহজ:

  • CSS এর মাধ্যমে পেজের লেআউট, ফন্ট, কালার, এবং ব্যাকগ্রাউন্ড স্টাইলিং খুব সহজে পরিবর্তন করা যায়।

CSS এর অসুবিধা

ব্রাউজার কম্প্যাটিবিলিটি:

  • বিভিন্ন ব্রাউজার CSS এর স্টাইলিং ঠিকভাবে রেন্ডার করতে পারে না, যা কিছুটা সমস্যার সৃষ্টি করতে পারে।

কোড জটিলতা:

  • বড় প্রজেক্টে CSS কোড জটিল হতে পারে, বিশেষত যদি ভালোভাবে অর্গানাইজ করা না হয়।

Debugging Complexity:

  • CSS এ ছোট ভুলের কারণে বড় সমস্যা হতে পারে এবং সেগুলো ডিবাগ করা কিছুটা কঠিন।

CSS শেখার জন্য রিসোর্সসমূহ

  1. MDN Web Docs (Mozilla): CSS Documentation
  2. W3Schools: CSS Tutorials
  3. CSS Tricks: CSS-Tricks
  4. Udemy এবং Coursera কোর্স: CSS শেখার জন্য Udemy এবং Coursera তে অনেক কোর্স পাওয়া যায়।
  5. YouTube টিউটোরিয়াল: CSS নিয়ে বিভিন্ন YouTube চ্যানেলে ভিডিও টিউটোরিয়াল রয়েছে।

CSS এর কিওয়ার্ডস

  • Selector: HTML এলিমেন্টকে সিলেক্ট করার জন্য ব্যবহৃত হয়।
  • Declaration: CSS প্রোপার্টি এবং তার মান।
  • Flexbox: CSS লেআউট সিস্টেম যা ফ্লেক্স কন্টেইনার এবং আইটেম দিয়ে কাজ করে।
  • Grid: CSS এর দুই-ডাইমেনশনাল লেআউট সিস্টেম।
  • Media Query: বিভিন্ন স্ক্রিন সাইজ অনুযায়ী CSS কোড প্রয়োগ করা।

উপসংহার

CSS হলো ওয়েব ডেভেলপমেন্টের একটি অপরিহার্য টুল, যা HTML কনটেন্টকে সুন্দর এবং প্রফেশনালভাবে উপস্থাপন করতে সাহায্য করে। CSS এর মাধ্যমে ওয়েবসাইটের স্টাইলিং এবং রেসপন্সিভ ডিজাইন সহজে করা যায়। এটি ফ্লেক্সিবল এবং কাস্টমাইজযোগ্য হওয়ায়, ছোট থেকে বড় যেকোনো ধরনের ওয়েব প্রজেক্টে CSS একটি শক্তিশালী ভূমিকা পালন করে।

Promotion