Category Archives: সি এস এস টিউটোরিয়াল (css tutorial)

সিএসএস৩ বর্ডার ইমেজ (CSS3 Border Images in Bangla)

সিএসএস৩ border-image প্রোপার্টি

সিএসএস৩ border-image প্রোপার্টি দিয়ে একটি এলিমেন্ট এর চারদিকে বর্ডার সেট করতে পারেন।

 

ব্রাউজার সাপর্ট

টেবিলে উল্লেখিত সংখ্যা ব্রাউজার এর প্রথম ভার্সন যা এই প্রোপার্টি সম্পূর্ণভাবে সাপর্ট করে তা বোঝায়।

-webkit- বা -moz- দ্বারা প্রথম প্রিফিক্স ভার্সন বুঝায় যা এই প্রোপার্টি সাপর্ট করে।

Property  Internet Explorer  Google Chrome  Mozila Firefox  Safari  Opera
border-image 11.0 16.0
4.0 -webkit-
15.0
3.5 -moz-
6.0
3.1 -webkit-
15.0
11.0 -o-

 

সিএসএস৩ border-image প্রোপার্টি

সিএসএস৩ border-image প্রোপার্টি যেকোন এলিমেন্ট এর চারিদিকে বর্ডার দিয়ার জন্য ব্যবহার করা হয়।

প্রোপার্টিটি নিম্নোক্ত তিনভাবে অংশগ্রহণ করে:

  1. ইমেজ বর্ডার হিসেবে
  2. ইমেজ এর যেখানে স্লাইস/ভাগ থাকে
  3. মাঝ অংশ যেখানে পুনরাবৃত্তি বা প্রসারিত হবে তা নির্দিষ্ট করে

আমরা নিম্নোক্ত ইমেজটি ব্যবহার করবো (border.png)

বর্ডার

border-image প্রোপার্টি ছবিটিকে নিয়ে একে নয়টি অংশে স্লাইস/ভাগ করে । ইটি চারটি কর্ণারে বসে এবং এবং মধ্যবর্তী অংশ আপনি যেভাবে চান সেই অনুযায়ী - পুনরাবৃত্তি বা প্রসারিত হয়।

নোট: border-image প্রোপার্টি কাজ করার জন্য এলিমেন্টটির বর্ডার প্রোপার্টি সেট প্রয়োজন হবে।

এখানে ইমেজ এর মধ্যবর্তী অংশের পুণরাবৃত্তি ঘটেছে:

Here, the middle sections of the image are repeated to create the border.

এর কোড হচ্ছে


#borderimg {
    border: 10px solid transparent;
    padding: 15px;
    -webkit-border-image: url(border.png) 30 round; /* Safari 3.1-5 */
    -o-border-image: url(border.png) 30 round; /* Opera 11-12.1 */
    border-image: url(border.png) 30 round;
}

 

এখানে মধ্যবর্তী অংশ প্রসারিত হয়েছে:

Here, the middle sections of the image are stretched to create the border.

এর কোড হচ্ছে:


#borderimg {
    border: 10px solid transparent;
    padding: 15px;
    -webkit-border-image: url(border.png) 30 stretch; /* Safari 3.1-5 */
    -o-border-image: url(border.png) 30 stretch; /* Opera 11-12.1 */
    border-image: url(border.png) 30 stretch;
}

 

সিএসএস৩ border-image - বিভিন্ন স্লাইস মান

স্লাইস এর বিভিন্ন মান বর্ডার এর চেহারা পাল্টে দেয়

উদাহরণ 01:

border-image: url(border.png) 50 round;

 

উদাহরণ 02:

border-image: url('http://www.w3schools.com/css/border.png') 20% round;

 

উদাহরণ 03:

border-image: url(border.png) 30% round;

 

এর কোড হচ্ছে:


#borderimg1 {
    border: 10px solid transparent;
    padding: 15px;
    -webkit-border-image: url(border.png) 50 round; /* Safari 3.1-5 */
    -o-border-image: url(border.png) 50 round; /* Opera 11-12.1 */
    border-image: url(border.png) 50 round;
}

#borderimg2 {
    border: 10px solid transparent;
    padding: 15px;
    -webkit-border-image: url(border.png) 20% round; /* Safari 3.1-5 */
    -o-border-image: url(border.png) 20% round; /* Opera 11-12.1 */
    border-image: url(border.png) 20% round;
}

#borderimg3 {
    border: 10px solid transparent;
    padding: 15px;
    -webkit-border-image: url(border.png) 30% round; /* Safari 3.1-5 */
    -o-border-image: url(border.png) 30% round; /* Opera 11-12.1 */
    border-image: url(border.png) 30% round;
}

 

সিএসএস৩ গোলাকৃতির কর্ণার (CSS3 Rounded Corners in Bangla)

সিএসএস৩ border-radius প্রোপার্টি সাহায্যে আপনি যেকোন এলিমেনন্ট এর “গোলাকৃতির কোর্ণার বা পার্শ্ব” তৈরি করতে পারেন।

ব্রাউজার সাপর্ট

টেবিলে উল্লেখিত সংখ্যা ব্রাউজার এর প্রথম ভার্সন যা এই প্রোপার্টি সম্পূর্ণভাবে সাপর্ট করে তা বোঝায়।

-webkit- বা -moz- দ্বারা প্রথম প্রিফিক্স ভার্সন বুঝায় যা এই প্রোপার্টি সাপর্ট করে।

Property  Internet Explorer Google Crome  Mozila Firefox  Safari Opera
border-radius 9.0 5.0
4.0 -webkit-
4.0
3.0 -moz-
5.0
3.1 -webkit-
10.5

 

সিএসএস৩ border-radius প্রোপার্টি

সিএসএস৩ এ এ border-radius  প্রোপার্টি এর সাহায্যে যেকোন এলিমেন্ট  এর "rounded corners" প্রদান করতে পারেন।

এখানে কিছু উদাহরণ দেয়া হলো:

নির্দিষ্ট ব্যাকগ্রাউন্ড রং বিশিষ্ট একটি এলিমেন্ট এর গোলাকৃতি পার্শ্ব :

Rounded corners!

 

বর্ডার বিশিষ্ট একটি এলিমেন্ট এর গোলাকৃতি পার্শ্ব:

Rounded corners!

 

নির্দিষ্ট ব্যাকগ্রাউন্ড ছবি বিশিষ্ট একটি এলিমেন্ট এর গোলাকৃতি পার্শ্ব :

Rounded corners!

 

এর কোড হচ্ছে:


#rcorners1 {
    border-radius: 25px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners2 {
    border-radius: 25px;
    border: 2px solid #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners3 {
    border-radius: 25px;
    background: url(paper.gif);
    background-position: left top;
    background-repeat: repeat;
    padding: 20px;
    width: 200px;
    height: 150px;
}

 

টিপস: border-radius হচ্ছে border-top-left-radius, border-top-right-radius, border-bottom-right-radius এবং border-bottom-left-radius এর সংক্ষিপ্ত প্রোপার্টি।

 

সিএসএস৩ border-radius প্রতিটি আলাদা পার্শ্ব পরিবর্তন

যদি আপনি border-radius প্রোপার্টি এর একটিমাত্র মান নির্ধারণ করেন তাহলে তা চারটি কর্ণারের উপরই কার্যকর হবে।

যদি আপনি চান তাহলে প্রতিটি আলাদা পার্শ্ব এর মান নির্ধারণ করে দিতে পারেন। এখানে তার নিয়ম দেয়া হলো:

  • চারটি মান: প্রথম মান উপরের বাম পাশের, দ্বিতীয় মান উপরের ডান পাশের, তৃতীয় মান নিচের ডান পাশের এবং চতুর্থ মান নিচের বাম পাশের কর্ণারের উপর প্রয়োগ হয়।
  • তিনটি মান: প্রথম মান উপরের বাম পাশে, দ্বিতীয় মান উপরের ডান পাশ ও নিচের বাম পাশে এবং তৃতীয় মান নিচের ডান পাশের কর্ণারের উপর কাজ করে।
  • দুইটি মান: প্রথম মান উপরের বাম পাশ ও নিচের ডান পাশ এবং দ্বিতীয় মান উপরের ডান পাশ ও নিচের বাম পাশের কর্ণারের উপর কাজ করে।
  • একটি মান: চারটি কর্ণরকেই সমানভাবে গোলাকৃতি করে।

 

এখানে তিনটি উদাহরণ দেয়া হলো:

১. চারটি মান - border-radius: 15px 50px 30px 5px:

Rounded corners!

২. তিনটি মান - border-radius: 15px 50px 30px:

Rounded corners!

৩. দুইটি মান - border-radius: 15px 50px:

Rounded corners!

 

এখানে এর কোড দেয়া হলো:


#rcorners4 {
    border-radius: 15px 50px 30px 5px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners5 {
    border-radius: 15px 50px 30px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners6 {
    border-radius: 15px 50px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

 

আপনি উপবৃত্তাকার কোণও তৈরি করতে পারেন:


#rcorners7 {
    border-radius: 50px/15px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners8 {
    border-radius: 15px/50px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners9 {
    border-radius: 50%;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

সিএসএস লেআউট – width এবং max-width (বাংলায়) (CSS Layout – width and max-width in Bangla)

width, max-width এবং margin: auto এর ব্যবহার

 

পূর্ববর্তী অধ্যায় এ উল্লেখ করা হয়েছিল যে, block-level এলিমেন্ট সবসময়ই ব্যবহারযোগ্য পূর্ণ প্রসস্থ জায়গা দখল করে (ডানে ও বায়ে যতটা সম্ভব প্রসারিত হয়)

block-level এলিমেন্ট এর প্রসস্থতা নির্ধারণ করে দিলে ধারক এর প্রসারিত হওয়া বন্ধ করে দেয়া যেতে পারে। তারপর, আপনি মার্জিন auto হিসেবে সেট করে দিতে পারেন, এর ধারক এর মধ্যে এলিমেন্ট হরিজেন্টালি সেন্টার হিসেবে। এলিমেন্টটি নির্দিষ্ট করা প্রসস্ততা পর্যন্তিই জায়গা দখল করতে পারবে এবং বাকি খালি জায়গা দুই মার্জিন এর মধ্যে সমানভাবে ভাগ হবে।

যখন ব্রাউজার উইন্ডো এর আকার এলিমেন্ট এর প্রসস্থতা থেকে ছোট হবে তখন <div> সমস্যা সৃষ্টি করবে। তখন ব্রাউজার একটি horizontal scrollbar যোগ করবে।

এর সমাধান হচ্ছে max-width ব্যবহার করা, এটি ছোট উইন্ডোতে ব্রাউজার হ্যান্ডলিং সহজ করে। যখন ছোট কোন ডিভাইস এ সাইট ভিজিট করা হয় তখন এটি খুবই গুরুত্বপূর্ণ।

টিপস: দুটি div এর মধ্যে পার্থক্য বোজার জন্য ব্রাউজার উইন্ডোকে 500px এর চেয়ে ছোট করুন।

এখানে দুটি div এর উদাহরণ দেয়া হলো:


div.ex1 {
     width: 500px;
     margin: auto;
     border: 3px solid #8AC007;
 }
 
 div.ex2 {
     max-width: 500px;
     margin: auto;
     border: 3px solid #8AC007;
 }

 

 

 

 

 

 

 

সিএসএস লেআউট – ইনলাইন-ব্লক (বাংলায়) (CSS Layout – inline-block in bangla)

ইনলাইন-ব্লক মান

এখন অনেক কাল পরে বক্স এর গ্রিড তৈরি সম্ভব যা float প্রোপার্টি ব্যবহার করলে ব্রাউজার এর প্রসস্থতা অনুসারে পূর্ণ এবং সুন্দরভাবে ফিট হয়ে যায় (যখন ব্রাউজার এর আকার পরিবর্তন করা হয়)।

display প্রোপার্টি এর inline-block মান এটিকে আরও সহজ করেছে।

inline-block এলিমেন্ট inline এলিমেন্ট এর মতই, কিন্তু এদের প্রসস্ততা ও উচ্চতা নির্ধারণ করা যায়।

উদাহরণ

পুরাতন পদ্ধতি অনুসারে float ব্যবহার করা (floating বক্স এর পরে আমাদের clear প্রোপার্টিও নির্ধারণ করে দিতে হয়)


.floating-box {
     float: left;
     width: 150px;
     height: 75px;
     margin: 10px;
     border: 3px solid #8AC007; 
 }
 
 .after-box {
     clear: left;
 }

 

 

একই কাজ display প্রোপার্টি এর inline-block মান নির্ধারণ করে দিয়েও করা যায় (কোন clear প্রোপার্টি এর পয়োজন হয় না)


.floating-box {
     display: inline-block;
     width: 150px;
     height: 75px;
     margin: 10px;
     border: 3px solid #8AC007; 
 }

 

 

 

 

সিএসএস ছদ্ম-এলিমেন্ট বাংলায় (CSS Pseudo-elements in Bangla)

ছদ্ম- এলিমেন্টসমূহ কি কি?

একটি CSS এর ছদ্ম-এলিমেন্ট একটি এলিমেন্ট এর সুনির্দিষ্ট অংশের স্টাইল করার জন্য ব্যবহার করা হয়।

উদাহরণস্বরূপ, এটি ব্যবহার করা হতে পারে:

  • একটি এলিমেন্ট এর মধ্যকার প্রথম অক্ষর বা লাইন স্টাইল করার জন্য
  • একটি এলিমেন্ট এর উপাদান এর আগে বা পরে উপাদান প্রবেশ করানোর জন্য

সিনটেক্স


selector::pseudo-element {
     property:value;
 }

 

নোটঃ ডাবল কোলন নোটেশন নোটিশ - প্রথম লাইন: বনাম :: প্রথম লাইনে

এটি pseudo-classes এবং pseudo-elements এর মধ্যে পার্থক্য বোঝাতে W3C এর একটি প্রচেষ্টা।

CSS 2 এবং CSS 1 এ pseudo-classes এবং pseudo-elements উভয় ক্ষেত্রে সিঙ্গেল-কোলন সিনট্যাক্স ব্যবহৃহ হয়।

::first-line ছদ্ম-এলিমেন্ট

::first-line ছদ্ম-এলিমেন্ট কোন লেখার প্রথম লাইন স্টাইল করার জন্য ব্যবহৃত হয়।

নিচের উদাহরণটি লেখার সকল <p> এলিমেন্ট এর প্রথম লাইন ফরমেট করে।


p::first-line {
     color: #ff0000;
     font-variant: small-caps;
 }

 

নোটঃ ::first-line ছদ্ম-এলিমেন্ট শুধুমাত্র block-level এলিমেন্ট এর ক্ষেত্রে ব্যবহার করা যেতে পারে।

::first-line ছদ্ম-এলিমেন্টে নিম্নোক্ত প্রোপার্টিগুলো ব্যবহার করা হয়:

  • font properties
  • color properties
  • background properties
  • word-spacing
  • letter-spacing
  • text-decoration
  • vertical-align
  • text-transform
  • line-height
  • clear

::first-letter ছদ্ম-এলিমেন্ট

::first-letter ছদ্ম-এলিমেন্ট কোন লেখার প্রথম অক্ষর স্টাইল করার জন্য ব্যবহৃত হয়।

নিচের উদাহরণটি লেখার সকল <p> এলিমেন্ট এর প্রথম অক্ষর ফরমেট করে।


p::first-letter {
color: #ff0000;
font-size: xx-large;
}


 

নোটঃ ::first-letter ছদ্ম-এলিমেন্ট শুধুমাত্র block-level এলিমেন্ট এর ক্ষেত্রে ব্যবহার করা যেতে পারে।

::first-letter ছদ্ম-এলিমেন্টে নিম্নোক্ত প্রোপার্টিগুলো ব্যবহার করা হয়:

  • font properties
  • color properties
  • background properties
  • margin properties
  • padding properties
  • border properties
  • text-decoration
  • vertical-align (only if "float" is "none")
  • text-transform
  • line-height
  • float
  • clear

Pseudo-elements এবং CSS Classes

Pseudo-elements, CSS classes এর সাথে একত্রে ব্যবহার করা যেতে পারে:


p.intro::first-letter {
     color: #ff0000;
     font-size:200%;
 }

 

উপরের উদাহরণটি class="intro" এর সাথে প্যারাগ্রাফ এর প্রথম অক্ষর লাল এবং বড় ফন্ট দেখাবে।

একাধিক ছদ্ম-এলিমেন্ট

বেশ কয়েকটি ছদ্ম-এলিমেন্টও একত্রে মিলিত হতে পারে।

নিচের উদাহরণটিতে, প্যারাগ্রাফ এর প্রথম অক্ষর লাল, বেশ বড় ফন্ট এর হবে। প্রথম লাইন এর বাকি অক্ষরগুলি নিল এবং small-caps হবে। প্যারাগ্রাফ এর বাকি অংশটুকু ডিফল্ট ফন্ট ও কালার এর হবে।


p::first-letter {
     color: #ff0000;
     font-size: xx-large;
 }
 
 p::first-line {
     color: #0000ff;
     font-variant: small-caps;
 }

 

সিএসএস - ::before ছদ্ম-এলিমেন্ট

::before ছদ্ম-এলিমেন্ট নির্দিষ্ট এলিমেন্ট এর পূর্বে কিছু উপাদান যোগ করার জন্য ব্যবহৃত হয়।

নিচের উদাহরণটিতে প্রতিটি <h1> এলিমেন্ট এর পূর্বে একটি ইমেজ (স্টিল ছবি) যোগ হবে।


h1::before {
     content: url(smiley.gif);
 }

 

সিএসএস - ::after ছদ্ম-এলিমেন্ট

::before ছদ্ম-এলিমেন্ট নির্দিষ্ট এলিমেন্ট এর পরে কিছু উপাদান যোগ করার জন্য ব্যবহৃত হয়।

নিচের উদাহরণটিতে প্রতিটি <h1> এলিমেন্ট এর পরে একটি ইমেজ (স্টিল ছবি) যোগ হবে।


h1::after {
content: url(smiley.gif);
}


 

সিএসএস - ::selection ছদ্ম-এলিমেন্ট

::selection ছদ্ম-এলিমেন্ট একটি এলিমেন্ট এর ব্যবহারকারী দ্বারা নির্বাচিত অংশটির সাথে মিল করে।

নিম্নোক্ত সিএসএস প্রোপার্টিজ ব্যবহার করা যেতে পারে ::selection: color, background, cursor, এবং outline.

নিম্নোক্ত উদাহরণ নির্বারিচ লেখাকে হলুদ ব্যাকগ্রাউন্ড এর সাথে সাথে লাল করে।


::selection {
     color: red; 
     background: yellow;
 }

 

সকল সি এস এস ছদ্ম-এলিমেন্ট

নির্বাচক উদাহরণ উদাহরণের বর্ণনা
::after p::after <p> এলিমেন্ট এর উপাদান এর পরে কিছু যোগ করার জন্য
::before p::before <p> এলিমেন্ট এর উপাদান এর পূর্বে কিছু যোগ করার জন্য
::first-letter p::first-letter সকল <p> এলিমেন্ট এর প্রথম অক্ষর নির্বাচন করার জন্য
::first-line p::first-line সকল <p> এলিমেন্ট এর প্রথম লাইন নির্বাচন করার জন্য
::selection p::selection ব্যবহারকারী দ্বারা কোন এলিমেন্ট এর উপাদান এর অংশবিশেষ নির্বাচন করার জন্য

সকল সিএসএস Pseudo Classes

নির্বাচক উদাহরণ উদাহরণের বর্ণনা
:active a:active সক্রিয় লিঙ্ক নির্বাচন
:checked input:checked প্রতিটি ক্লিক করা <input> এলিমেন্ট নির্বাচন
:disabled input:disabled প্রতিটি নিষ্ক্রিয় <input> এলিমেন্ট নির্বাচন
:empty p:empty প্রতিটি <p> এলিমেন্ট নির্বাচন যার অভ্যন্তরে অন্য কোন এলিমেন্ট নেই।
:enabled input:enabled প্রতিটি সক্রিয় <input> এলিমেন্ট নির্বাচন।
:first-child p:first-child প্রতিটি <p> এলিমেন্ট নির্বাচন যা অন্যকোন এলিমেন্ট এর ভিতরের শেষ এলিমেন্ট
:first-of-type p:first-of-type প্রতিটি <p> এলিমেন্ট নির্বাচন যা অন্য এলিমেন্ট এর ভিতরে প্রথম <p> এলিমেন্ট
:focus input:focus <input> এলিমেন্ট নির্বাচন যার ফোকাস আছে
:hover a:hover কোন লিঙ্ক এর উপরে মাউস পয়েন্টার রাখলে উক্ত লিঙ্ক নির্বাচন
:in-range input:in-range নির্দিষ্ট সীমার মধ্যের মান বিশিষ্ট <input> এলিমেন্ট নির্বাচন
:invalid input:invalid সকল <input> এলিমেন্ট নির্বাচন যাদের ভুল মুল্য আছে
:lang(language) p:lang(it) প্রতিটি <p> এলিমেন্ট নির্বাচন যাদের "it" দিয়ে শুরু একটি Lang অ্যাট্রিবিউট মান আছে
:last-child p:last-child কোন এলিমেন্ট এর অধীন সকল <p> এলিমেন্ট নির্বাচন যা উক্ত এলিমেন্ট এর শেষ এলিমেন্ট
:last-of-type p:last-of-type কোন এলিমেন্ট এর অধীন সকল <p> এলিমেন্ট নির্বাচন যা উক্ত এলিমেন্ট এর শেষ এলিমেন্ট
:link a:link সব অদেখা লিঙ্ক নির্বাচন
:not(selector) :not(p) <p> এলিমেন্ট নয় এমন সকল এলিমেন্ট নির্বাচন
:nth-child(n) p:nth-child(2) কোন এলিমেন্ট এর অধীন সকল <p> এলিমেন্ট নির্বাচন যা উক্ত এলিমেন্ট এর দ্বিতীয় এলিমেন্ট
:nth-last-child(n) p:nth-last-child(2) কোন এলিমেন্ট এর অধীন সকল <p> এলিমেন্ট নির্বাচন যা উক্ত এলিমেন্ট এর দ্বীতিয় শেষের দিক হতে দ্বিতীয় এলিমেন্ট
:nth-last-of-type(n) p:nth-last-of-type(2) কোন এলিমেন্ট এর অধীন সকল <p> এলিমেন্ট নির্বাচন যা উক্ত এলিমেন্ট এর শেষের দিক হতে দ্বিতীয় এলিমেন্ট
:nth-of-type(n) p:nth-of-type(2) কোন এলিমেন্ট এর অধীন সকল <p> এলিমেন্ট নির্বাচন যা উক্ত এলিমেন্ট এর দ্বিতীয় <p> এলিমেন্ট
:only-of-type p:only-of-type কোন এলিমেন্ট এর অধীন সকল <p> এলিমেন্ট নির্বাচন যা উক্ত এলিমেন্ট এর একমাত্র <p> এলিমেন্ট
:only-child p:only-child কোন এলিমেন্ট এর অধীন সকল <p> এলিমেন্ট নির্বাচন যা উক্ত এলিমেন্ট এর একমাত্র এলিমেন্ট
:optional input:optional "required" এট্রিবিউট বিশিষ্ট <input> এলিমেন্ট নির্বাচন
:out-of-range input:out-of-range নির্দিষ্ট মান এর বাহিরের মান বিশিষ্ট <input> এলিমেন্ট নির্বাচন
:read-only input:read-only "readonly" এট্রিবিউট নির্দিষ্ট করা <input> এলিমেন্ট নির্বাচন
:read-write input:read-write "readonly" এট্রিবিউট ব্যতীত <input> এলিমেন্ট নির্বাচন।
:required input:required "required" এট্রিবিউট নির্দিষ্ট করা <input> এলিমেন্ট নির্বাচন
:root root ডকুমেন্ট এর root element নির্বাচন
:target #news:target বর্তমানে সক্রিয় #news এলিমেন্ট নির্বাচন (clicked on a URL containing that anchor name)
:valid input:valid সঠিক মান বিশিষ্ট সকল <input> এলিমেন্ট নির্বাচন
:visited a:visited সকল দেখা লিঙ্ক নির্বাচন

 

 

সিএসএস কিভাবে… (CSS How To…)

যখন একটি ব্রাউজার স্টাইল শীট পরে, এটি স্টাইল শীট এর তথ্য অনুসারে ডকুমেন্টকে ফরমেট করে।

সিএসএস প্রবেশ করানোর তিনটি উপায় আছে

  • বহিস্থিত স্টাইল শীট
  • অন্তস্থিত স্টাইল শীট
  • ইনলাইন স্টাইল

 

বহিস্থিত স্টাইল শীট

বহিস্থিত স্টাইল শীট দিয়ে, মাত্র একটি ফাইল পরিবর্তনের মাধ্যমে ওয়েব সাইটের চেহারা পরিবর্তন করে ফেলতে পারবেন।

প্রতিটি পেজের <link> এলিমেন্ট এর মধ্যে অবশ্যই বহিস্থিত স্টাইল শীটের একটি রেফারেন্স দিয়ে দিতে হবে। <link> এলিমেন্ট হেড সেকশন এর মধ্যে লিখতে হবেঃ


 <head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>

 

বহিস্তিত স্টাইল শীট যেকোন টেক্স্ট এডিটর এ লেখা যেতে পারে। এই ফাইলে কোন এইচটিএমএল ট্যাগ থাকতে পারবে না। স্টাইল শীট ফাইলটি অবশ্যই .css এক্সটেনশন দিয়ে সেভ করতে হবে।

"myStyle.css" নামের একটি স্টাইল শীটে ফাইলের উদাহরণ দেয়া হলোঃ


body {
    background-color: lightblue;
}

h1 {
    color: navy;
    margin-left: 20px;
}

নোটঃ প্রোপার্টি মান এবং ইউনিট এর মধ্যে কোন স্পেস দিবেন না (যেমন margin-left: 20 px;)। সঠিক পদ্ধতি হচ্ছে margin-left: 20px;

 

অন্তস্থিত স্টাইল শীট

যদি একটি নির্দিষ্ট পেজ এর স্টাইল ইউনিক (অনন্য) হয় তাহলে অন্তস্থিত স্টাইল শীট ব্যবহার করা হয়।

অন্তস্থিত স্টাইল শীট হেড সেকশন এর <style> এলিমেন্ট এর মাঝে লেখা হয়।


 <head>
<style>
body {
    background-color: linen;
}

h1 {
    color: maroon;
    margin-left: 40px;
}
</style>
</head>

 

ইনলাইন স্টাইল

ইনলাইন স্টাইল মাত্র একটি এলিমেন্ট এর উপর অনন্য স্টাইল প্রয়োগ করতে ব্যবহৃত হয়।

একটি ইনলাইন স্টাইল স্টাইল শীটের অনেক সবিধা গ্রহণ করা থেকে বঞ্চিত হয়। সংযতভাবে এই পদ্ধতি ব্যবহার করুন।

ইনলাইন স্টাইল ব্যবহার করার জন্য কাঙ্খিত ট্যাগ এর সাথে স্টাইল এট্রিবিউট যোগ করুন। স্টাইল এট্রিবিউট যেকোন সিএসএস প্রোপার্টি ধারণ করতে পারে। নিচের উদাহরণে <h1> এলিমেন্ট এর রঙ এবং বাম মার্জিন কিভাবে পরিবর্তন করা যায় তা দেখানো হলোঃ


 <h1 style="color:blue;margin-left:30px;">This is a heading.</h1>

 

একাধিক স্টাইল শীট

যদি কিছু প্রোপার্টি ভিন্ন স্টাইল শটের একই সিলেক্টর দ্বারা নির্ধারিত হয় তাহলে মানগুলো একত্রিত হয়ে আরো সুনির্ধিষ্ট হয়।

উদাহরণ স্বরুপ, একটি বহিস্থিত স্টাইল শটি এর <h1> এলিমেন্ট নিম্নোক্ত প্রোপার্টি রয়েছে:


h1 {
    color: navy;
    margin-left: 20px;
}

 

একটি অন্তস্থিত স্টাইল শীটেরও <h1> এলিমেন্ট এর নিম্নোক্ত প্রোপার্টি রয়েছে:


h1 {
    color: orange;   
}

 

যদি পেজটির অন্তস্থিত স্টাইল শীটের সাথে বহিস্থিত স্টাইল শীট সংযুক্ত থাকে তাহলে <h1> এলিমেন্ট এর প্রোপার্টি হবে:


color: orange;
margin-left: 20px;

বাম মার্জিনটি বহিস্থিত স্টাইল শীটের সাথে মিলিত হয়েছে এবং রঙ অন্তস্থিত স্টাইল শীটের অনুরূপ পরিবর্তিত হয়েছে।

 

একাধিক স্টাইল একটির মধ্যে ক্যাসকেড করবে

স্টাইল নির্ধারণ করা যেতে পারে:

  • একটি বহিস্থিত স্টাইল ফাইলের মধ্যেে
  • এইচটিএমএল পেজ এর <head> সেকশন এর মাঝেে
  • এইচটিএমএল এলিমেন্ট এর মাঝে

ক্যাসকেড ক্রম

এইচটিএমএল এলিমেন্ট এর জন্য একের অধিক স্টাইল ব্যবহার করা হলে কোন স্টাইলটি ব্যবহৃত হবে?

সাধারণভাবে বলা যায়, নিম্নোক্ত নিয়ম অনুসরণ করে সকল স্টাইল একটি নতুন ভার্চুয়্যাল স্টাইল শীটের মধ্যে ক্যাসকেড করবে যেখানে তৃতীয় নিয়মটি সর্বোচ্চ গুরুত্ব পাবে:

  1. ব্রাউজার ডিফল্ট
  2. বহিস্থিত এবং অন্তস্থিত স্টাইল শীট (হেড সেকশনের মাঝে)
  3. ইনলাইন স্টাইল (এইচটিএমএল এলিমেন্ট এর ভিতরে)

সুতরাং, একটি ইনলাইন স্টাইল (এইচটিএমএল এলিমেন্ট এর ভিতরে) সর্বোচ্চ গুরুত্ব পাবে, যার মানে হচ্ছে <head> ট্যাগ বা বহিস্থিত স্টাইল শীট বা ব্রাউজার এ নির্ধারিত মান এর মান ধারণকারী।

নোটঃ যদি বহিস্তিত স্টাইল শীট এর লিঙ্ক অন্তস্থিত স্টাইল শীট এর  এইচটিএমএল <head> এর নিচে অবস্থান করে, তাহলে বহিস্তিত স্টাইল শীট অন্তস্থিত স্টাইল শীটকে ওভাররাইড করবে।

 

নিজে নিজে চেষ্টা করো

 

অনুশীলন ০১ঃ

"mystyle.css" নামক বহিস্থিত স্টাইল শীট যোগ করো


 

<!DOCTYPE html>
<html>
<head>

</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

 

অনুশীলন ০২ঃ

অন্তস্থিত স্টাইল শীট ব্যবহার করে পেজ এর "background-color: linen" নির্ধারণ করোঃ


 

<!DOCTYPE html>
<html>
<head>

</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

 

অনুশীলন ০৩ঃ

ইনলাইন স্টাইল শীট ব্যবহার করে পেজ এর "background-color: linen" নির্ধারণ করোঃ


 

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

অনুশীলন ০৪ঃ

বহিস্থিত স্টাইল শীট "mystyle.css" ব্যতীত সকল স্টাইল মুছে ফেলঃ


 

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
<style>
p {
    color: red;
}
</style>
</head>
<body style="background-color: lightcyan">

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

 

 

সিএসএস ইমেজ গ্যালারী (CSS Image Gallery)

সি এস এস এ তৈরি ইমেজ গ্যালারী

Klematis
Add a description of the image here
Klematis
Add a description of the image here
Klematis
Add a description of the image here
Klematis
Add a description of the image here

 

 

 

 

 

 

 

উদাহরণঃ


<head>
<style>
div.img {
    margin: 5px;
    padding: 5px;
    border: 1px solid #0000ff;
    height: auto;
    width: auto;
    float: left;
    text-align: center;
}

div.img img {
    display: inline;
    margin: 5px;
    border: 1px solid #ffffff;
}

div.img a:hover img {
    border:1px solid #0000ff;
}

div.desc {
    text-align: center;
    font-weight: normal;
    width: 120px;
    margin: 5px;
}
</style>
</head>
<body>

<div class="img">
  <a target="_blank" href="klematis_big.htm">
    <img src="klematis_small.jpg" alt="Klematis" width="110" height="90">
  </a>
  <div class="desc">Add a description of the image here</div>
</div>
<div class="img">
  <a target="_blank" href="klematis2_big.htm">
    <img src="klematis2_small.jpg" alt="Klematis" width="110" height="90">
  </a>
  <div class="desc">Add a description of the image here</div>
</div>
<div class="img">
  <a target="_blank" href="klematis3_big.htm">
    <img src="klematis3_small.jpg" alt="Klematis" width="110" height="90">
  </a>
  <div class="desc">Add a description of the image here</div>
</div>
<div class="img">
  <a target="_blank" href="klematis4_big.htm">
    <img src="klematis4_small.jpg" alt="Klematis" width="110" height="90">
  </a>
  <div class="desc">Add a description of the image here</div>
</div>

</body>
</html>

 

সিএসএস হলো Cascading Style Sheets.

লেখকঃ মোঃমিনহাজুল ইসলাম
সিএসএস হলো Cascading Style Sheets. । সিএসএস ফাইল সেভ করতে হয় .css দিয়ে।
সিএসএস ব্যবহার করা হয় এইচটিএমএল পেজটে কে আরও দৃষ্টিনন্দন করা জন্য।
সিএসএস ৩ দরনে হয়।
১) ইন্টারনাল সিএসএস ।
২) এক্সটার্নাল সিএসএস ।
৩) ইনলাইন সিএসএস ।
ইন্টারনাল সিএসএসঃ যেকোন এইচটিএমএল ডকুমেন্টে <head></head> এর ভিতর style ট্যাগ ব্যবহার করে ইন্টারনাল সিএসএস লেখা হয়। একটা উদাহরনঃ
<!DOCTYPE html>
html>
<head>
<style>
h1{color: #ddd;background: yellow;text-align: center;}
</style>
</head>
<body>
<h1>www.minhajsite.wordpress.com demo heading</h1>
<p>This is my blog site</p>
</body>
</html>
এক্সটার্নাল সিএসএস : একটা ফাইলে রেখে সেটা .css এক্সটেনশন নাম দিয়ে (যেমন style.css) সেভ করে এইচটিএমএল ফাইলে সংযুক্ত করে দিলেই হয়ে যায়। এটার নামই হচ্ছে এক্সটার্নাল সিএসএস। এইচটিএমএল এ link নামে একটা ট্যাগ আছে এটা দিয়েই সংযোগ দেয়া যায়। একটা উদাহরনঃ
<!DOCTYPE html>
html>
<head>
<link href="/style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<h1>www.minhajsite.wordpress.com demo heading</h1>
<p>This is my blog site</p>
</body>
</html>
এবার এই ফাইলটি index.html নামে সেভ করুন। style.css এর কোড
h1{color: #ddd; background: yellow;text-align: center;}
ইনলাইন সিএসএস : এলিমেন্টের ভিতরেই সিএসএস লেখা হয় তাই ইনলাইন সিএসএস বলে। একটা উদাহরনঃ
<h2 style="background-color: #ddd; color: #fff;">This is my blog site
</h2>

সিএসএস ৩ রেস্পনসিভ ওয়েব ডিজাইন (CSS Responsive Web Design)

লিখেছেন সুদীপ্ত সাহা

 

রেস্পনসিভ ওয়েব ডিজাইন কি?

রেস্পনসিভ ওয়েব ডিজাইন হল ওয়েব সাইটকে এমন করে তৈরি করা যেন তা সকল ডিভাইসে ঠিকভাবে প্রদর্শিত হয়। রেস্পনসিভ ওয়েব ডিজাইন কোন প্রোগ্রাম বা জাভাস্ক্রিপ্টের মতো নয়। রেস্পনসিভ ওয়েব ডিজাইন মূলত মোবাইল ডিভাইসগুলোর কথা মাথায় রেখে তৈরি করা হয়েছে।

 

নিজের জন্য রেস্পনসিভ ডিজাইন তৈরি করা

সহজে সিএসএস দ্বারা নিজে নিজেই রেস্পনসিভ ডিজাইন করার একটি পদ্ধতি

 

বুটস্ট্র্যাপ করার পদ্ধতি

রেস্পনসিভ ডিজাইন করার অন্য একটি পদ্ধতি হল, পূর্বের বিদ্যমান কোন সিএসএস ফ্রেমওয়ার্ক ব্যবহার করা। বুটস্ট্র্যাপ হল HTML, CSS এবং JavaScript দ্বারা তৈরি রেস্পনসিভ ওয়েব ডিজাইনের জন্য জনপ্রিয় একটি ফ্রেমওয়ার্ক। বুটস্ট্র্যাপ আপনার সাইটকে এমন করে তৈরি করতে সাহায্য করবে যেন তা যেকোনো সাইজ বা স্ক্রিনের ল্যাপটপ, ট্যাবলেট বা ফোনে দেখতে একইরকম দেখায়।

 

desktop
Desktop

tablet
Tablet

 

 

phone
Phone

সিএসএস ৩ ইউজার ইন্টারফেস (CSS3 User Interface)

Sheikh Mahfuzur Rahman

 

সিএসএস-থ্রি ইউজার ইন্টারফেস

সিএসএস-থ্রি এর কিছু নতুন ইউজার ইন্টারফেস ফিচার হলো এলিমেন্ট রিসাইজিং, বক্স রিসাইজিং এবং আউটলাইনিং। এই অধ্যায়ে নিচের ইউজার ইন্টারফেস প্রপার্টিগুলো সম্পর্কে জানতে পারবেনঃ

  • resize
  • box-sizing
  • outline-offset

 

ব্রাউজার সাপোর্ট

নিচের তালিকায় প্রথম যে ব্রাউজার ভার্শনগুলো ইউজার ইন্টারফেস প্রপার্টিকে পুরোপুরিভাবে সাপোর্ট করে তা দেয়া হলো। -webkit-, -moz-, অথবা -o- এর সাথে যুক্ত ভার্শন নম্বরগুলো প্রিফিক্সসহ যেসব ভার্শন কাজ করে তার তালিকা প্রকাশ করে।

Property chrome edge ie firefox safari opera
resize

4.0

Not supported

Not supported

5.0
4.0 -moz-

4.0

15.0

outline-offset

4.0

Not supported

Not supported

5.0
4.0 -moz-

4.0

9.5

 

সিএসএস-থ্রি রিসাইজিং

সিএসএস-থ্রি'তে resize প্রপার্টি ইউজারদের দ্বারা কোন এলিমেন্ট রিসাইজ করা যাবে কি যাবেনা তার নির্ধারণ করে। লক্ষ্যনীয়ঃ নিচের div এলিমেন্ট ইউজারদের দ্বারা রিসাইজ করা যায় (Chrome, Firefox, Safari and Opera 15+)।

রিসাইজের জন্য সিএসএস কোডঃ উদাহরণ
এর ফলে একটি <div> এলিমেন্ট ইউজারদের দ্বারা রিসাইজ করা যাবেঃ


div {
    resize: horizontal;
    overflow: auto;
}

 

সিএসএস-থ্রি বক্স সাইজিং

box-sizing প্রপার্টি ব্রাউজারকে কোন সাইজিং প্রপার্টি (width এবং height) ব্যবহার করা যাবে তা বলে দেয়। সেগুলো border-box নাকি শুধু content-box কে (এটিই সাধারণত উইড্‌থ ও হাইট প্রপার্টির ডিফল্ট ভ্যালু হিসেবে থাকে) এর ভিতরে অন্তর্ভূক্ত করবে তা ঠিক করে দেয়। উদাহরণস্বরূপ, আপনি যদি দু'টি বর্ডার বক্সকে পাশাপাশি রাখতে চান তাহলে "border-box" এ বক্স-সাইজিং সেটিং করে ঠিক করতে পারবেন। এটি ব্রাউজারকে নির্দিষ্ট প্রস্থ ও উচ্চতা দ্বারা বক্সটির আকার ঠিক করতে বলে এবং বর্ডার ও পেডিংকে বক্সের ভিতরে স্থাপন করে।

উদাহরণ
দুটি বর্ডার বক্সকে পাশাপাশি স্থাপন করেঃ


div {
     -moz-box-sizing: border-box; /* Firefox */
     box-sizing: border-box;
     width: 50%;
     float: left;
 }

 

সিএসএস-থ্রি আউটলাইন অফসেট

outline-offset প্রপার্টি একটি আউটলাইনের বাইরে অবস্থান করে এবং এটিকে বর্ডারের এজের বাইরে টেনে নিয়ে যায়।

আউটলাইন এর সাথে বর্ডার এর দুই ধরণের পার্থক্য রয়েছেঃ

  • আউটলাইন জায়গা দখল করেনা।
  • আউটলাইন চারকোনাকৃতির নাও হতে পারে।

নিচের div টির বর্ডার এজের বাইরে ১৫ পিক্সেল আউটলাইন রয়েছে
এর জন্য যে সিএসএস কোড প্রয়োজন তা নিম্নরূপ।

উদাহরণ
বর্ডার এজের বাইরে ১৫ পিক্সেল আউটলাইন নির্ধারণ করেঃ


div {
    border: 1px solid black;
    outline: 1px solid red;
    outline-offset: 15px;
}

 

সিএসএস-থ্রি ইউজার ইন্টারফেস প্রপার্টি

নিচে সবগুলো ইউজার ইন্টারফেস প্রপার্টির তালিকা দেয়া হলোঃ

appearance - একটি এলিমেন্টকে স্ট্যান্ডার্ড ইউজার ইন্টারফেস এলিমেন্ট হিসেবে দেখাতে ব্যবহৃত হয়
box-sizing - একটি নির্দিষ্ট এলিমেন্টকে কোন এরিয়ায় একটি নির্দিষ্ট পদ্ধতিতে অবস্থান করতে বলে দেয়
icon - পেজের অথর বা লেখককে আইকনিকভাবে একটি এলিমেন্ট স্টাইল করার সুযোগ করে দেয়
nav-down - যখন arrow-down নেভিগেশন কি ব্যবহার করা হয় তখন কোন দিকে নেভিগেট করা হবে তা নির্ধারন করে দেয়
nav-index - একটি এলিমেন্টের টেবিং অর্ডার ঠিক করে দেয়
nav-left - যখন arrow-left নেভিগেশন কি ব্যবহার করা হবে তখন কোন দিকে নেভিগেট করা হবে তা ঠিক করে দেয়
nav-right - যখন arrow-right নেভিগেশন কি ব্যবহার করা হবে তখন কোন দিকে নেভিগেট করা হবে তা ঠিক করে দেয়
nav-up - যখন arrow-up নেভিগেশন কি ব্যবহার করা হবে তখন কোন দিকে নেভিগেট করা হবে তা ঠিক করে দেয়
outline-offset - একটি আউটলাইনের অফসেট ঠিক করে এবং এটিকে বর্ডার এজের বাইরে টেনে নিয়ে যায়
resize - কোন এলিমেন্ট ইউজারদের দ্বারা রিসাইজ করা যাবে কি যাবেনা তা নির্ধারণ করে

 

সি এস এস মাল্টিপল কলাম (CSS3 Multiple Columns)

CSS3 Multiple Columns অর্থাৎ css3 তে একাধিক কলাম তৈরি করা

css3 ব্যবহার করে আপনি টেক্সটগুলোকে প্রয়োজনমত সাজানোর জন্য একাধিক কলাম তৈরি করতে পারবেন।
এই অধ্যায়ে আপনি নিম্নোক্ত কলাম প্রপার্টি গুলো সম্পর্কে জানবেন-

  • column-count
  • column-gap
  • Column-rule

 

ব্রাউজার সাপোর্ট (Browser Support)

এই প্রপার্টিটি সকল নতুন ভার্সন এর ব্রাউজারগুলোতে সাপোর্ট করে। IE তে 10.0, Google Chrome 4.0 -webkit-, mozilla 2.0 -moz-, Safari 3.1 -webkit-, opera 15.0 -webkit-11.1
এখানে -webkit- এবং -moz- ব্যবহার করে ব্রাউজারগুলোর প্রথম ভার্সন বুঝানো হয়েছে যা এই prefix গুলো সাপোর্ট করে।

Property chrome ie firefox safari opera
column-count

4.0 -webkit-

12.0

10.0

2.0 -moz-

3.1 -webkit-

15.0 -webkit-
11.1

column-gap

4.0 -webkit-

12.0

10.0

2.0 -moz-

3.1 -webkit-

15.0 -webkit-
11.1

column-rule

4.0 -webkit-

12.0

10.0

2.0 -moz-

3.1 -webkit-

15.0 -webkit-
11.1

column-rule-color

4.0 -webkit-

12.0

10.0

2.0 -moz-

3.1 -webkit-

15.0 -webkit
11.1

column-rule-style

4.0 -webkit-

12.0

10.0

2.0 -moz-

3.1 -webkit-

15.0 -webkit
11.1

column-rule-width

4.0 -webkit-

12.0

10.0

2.0 -moz-

3.1 -webkit-

15.0 -webkit
11.1

column-width

4.0 -webkit-

12.0

10.0

2.0 -moz-

3.1 -webkit-

15.0 -webkit
11.1

 

CSS3 ব্যবহার করে একাধিক কলাম তৈরি

column-count প্রপার্টি দ্বারা কয়টি কলাম হবে তা বলে দেয়া হয়।
উদাহরণ-


div {
    -webkit-column-count: 3; /* Chrome, Safari, Opera */
    -moz-column-count: 3; /* Firefox */
    column-count: 3;
}

উপরের এই css টুকু লিখার ফলে আপনার div এর মধ্যে লিখা টেক্সটগুলো তিনটি কলামে বিভক্ত হবে।

 

CSS3 দিয়ে কলামগুলোর মাঝে কতখানি ফাঁকা থাকবে তাও বলে দেয়া যায়।

column-gap প্রপার্টি দ্বারা কলামগুলোর মাঝে কতখানি জায়গা ফাঁকা থাকবে তা বলে দেয়া হয়।
উদাহরণ-


div {
    -webkit-column-gap: 40px; /* Chrome, Safari, Opera */
    -moz-column-gap: 40px; /* Firefox */
    column-gap: 40px;
}

 

CSS3 কলামের নিয়ম (CSS3 column rules)

column-rule প্রপার্টি দ্বারা কলামের width, style এবং color এই তিনটি বিষয় বলে দেয়া হয়।
উদাহরণ-


div {
    -webkit-column-rule-style: solid; /* Chrome, Safari, Opera */
    -moz-column-rule-style: solid; /* Firefox */
    column-rule-style: solid;
}

 

CSS3 এর একাধিক কলামের কিছু প্রপার্টি

column-count এই প্রপার্টি দ্বারা টেক্সটগুলো কয়টি কলামে ভাগ হবে তা বলা হয়।
column-fill এই প্রপার্টি দ্বারা কলামগুলো টেক্সট দিয়ে পুরন করার নির্দেশ দেয়া হয়
column-gap এই প্রপার্টি দ্বারা কলামগুলোর মাঝে কতখানি ফাঁক থাকবে তা বলা হয়।
column-rule এই প্রপার্টি দ্বারা কলামগুলোর সব নিয়ম নির্ধারণ করা হয়।
column-rule-color এই প্রপার্টি দ্বারা কলামগুলোর মাঝে কোন বর্ডার থাকলে তার কালার কি হবে তা বলা হয়।
column-rule-style এই প্রপার্টি দ্বারা কলামগুলোর মাঝের বর্ডার কেমন হবে তা বলা হয়।
column-rule-width এই প্রপার্টি দ্বারা কলামগুলোর মাঝের বর্ডারের উইদথ কতখানি হবে তা বলা হয়।
columns এই প্রপার্টিটি column-width এবং column-count দুইটি প্রপার্টির কাজ একাই করতে পারে।

 

 

সিএসএস ৩ অ্যানিমেশনস (CSS3 Animations)

সুদীপ্ত সাহা

 

ফ্লাস বা জাভাস্ক্রিপ্ট দ্বারা তৈরি ওয়েব পেজের অ্যানিমেশনগুলো সিএসএস3 অ্যানিমেশন দ্বারা বদল করা যায়।

 

ব্রাউজার সাপোর্ট

নিচের টেবিলে প্রদর্শিত নাম্বারগুলো নির্দেশ করছে কোন ব্রাউজারের কোন ভার্শনগুলো এই প্রপার্টিকে সম্পূর্ণভাবে সাপোর্ট করে।
-webkit-, -moz-, অথবা -o- যুক্ত ব্রাউজারের প্রিফিক্স ভার্সনগুলো নির্দেশ করছে যা প্রথম এই প্রপার্টি সাপোর্ট করছে।

Property chrome edge ie firefox safari opera
@keyframes

43.0
4.0 -webkit-

12.0

10.0

16.0
5.0 -moz-

9.0
4.0 -webkit-

30.0
15.0 -webkit-
12.0 -o-

animation

43.0
4.0 -webkit-

12.0

10.0

16.0
5.0 -moz-

9.0
4.0 -webkit-

30.0
15.0 -webkit-
12.0 -o-

 

সিএসএস3 @keyframes এর রুল

যেখানে অ্যানিমেশন তৈরি হয় সেখানে @keyframes এর রুল প্রবর্তিত হয়।

@keyframes এর ভেতরে কোন সিএসএস স্টাইলকে নির্দিষ্ট করে দিলে অ্যানিমেশনটি বর্তমান স্টাইল থেকে ধীরে ধীরে নতুন স্টাইলে পরিবর্তন হবে।

সিএসএস3 অ্যানিমেশন

যখন @keyframes রুলের ভেতরে কোন অ্যানিমেশন তৈরি হবে তখন আপনাকে অবশ্যই সিলেক্টর ঠিক করে দিতে হবে, তা না হলে অ্যানিমেশন কোন ইফেক্ট দেখাবে না।
অ্যানিমেশনের সিলেক্টর নির্দিষ্ট করে দেয়ার জন্য অন্তত দুইটি প্রপার্টি ব্যবহার করতে হয়ঃ
অ্যানিমেশনের নাম -webkit-animation: myfirst, এবং অ্যানিমেশনের ব্যাপ্তিকাল

উদাহরনঃ
কোন -webkit-animation এর মধ্যে "myfirst" নামের অ্যানিমেশন তৈরি করা। অ্যানিমেশনের ব্যাপ্তিকালঃ ৫ সেকেন্ড


div {
     -webkit-animation: myfirst 5s; /* Chrome, Safari, Opera */
     animation: myfirst 5s;
 }
/* Chrome, Safari, Opera */
@-webkit-keyframes myfirst {
     from {background: red;}
     to {background: yellow;}
     }
/* Standard syntax */
@keyframes myfirst {
     from {background: red;}
     to {background: yellow;}
 }

 

ইঙ্গিতঃ যদি ব্যাপ্তিকাল নির্দিষ্ট করা না হয় তাহলে অ্যানিমেশন কোন ইফেক্ট দেখাবে না, কারন ডিফল্ট ভ্যালু ০ ধরে নেয়া হবে।

 

সিএসএস3 অ্যানিমেশন কি?

অ্যানিমেশন হল কোন ইলিমেন্টকে ধীরে ধীরে এক স্টাইল থেকে অন্য স্টাইলে পরিবর্তন করার পদ্ধতি। আপনার যত প্রপার্টি ইচ্ছা এবং যতবার ইচ্ছা আপনি তা পরিবর্তন করতে পারবেন। পরিবর্তন কখন হবে তা আপনি % আকারে নির্দিষ্ট করে দিতে পারবেন, এছাড়াও আপনি "from" এবং "to" কীওয়ার্ড ব্যবহার করতে পারবেন(যেটা ০% এবং ১০০% এর মধ্যবর্তী কিছুকে বুঝাবে)

উদাহরনঃ
২৫% এবং ৫০% এর মধ্যে ব্যাকগ্রাউন্ড কালার পরিবর্তন করা এবং পুনরায় অ্যানিমেশন কমপ্লিট হওয়ার পর করা।


/* Chrome, Safari, Opera */
 @-webkit-keyframes myfirst {
      0% {background: red;}
      25% {background: yellow;}
      50% {background: blue;}
      100% {background: green;}
 }
/* Standard syntax */
      @keyframes myfirst {
      0% {background: red;}
      25% {background: yellow;}
      50% {background: blue;}
      100% {background: green;}
 }

 

 

উদাহরনঃ
২৫%, ৫০% এবং ৭৫% এর মধ্যে ব্যাকগ্রাউন্ড কালার পরিবর্তন করা এবং পুনরায় অ্যানিমেশন কমপ্লিট হওয়ার পর করা।


/* Chrome, Safari, Opera */
 @-webkit-keyframes myfirst {
      0% {background: red; left:0px; top:0px;}
      25% {background: yellow; left:200px; top:0px;}
      50% {background: blue; left:200px; top:200px;}
      75% {background: green; left:0px; top:200px;}
      100% {background: red; left:0px; top:0px;}
 }
/* Standard syntax */
 @keyframes myfirst {
      0% {background: red; left:0px; top:0px;}
      25% {background: yellow; left:200px; top:0px;}
      50% {background: blue; left:200px; top:200px;}
      75% {background: green; left:0px; top:200px;}
      100% {background: red; left:0px; top:0px;}
 }

 

 

অ্যানিমেশনের আরও উদাহরন

নিচের অ্যানিমেশনটিতে অ্যানিমেশনের সাতটি প্রপার্টি ব্যবহার করা হয়েছেঃ


div {
 /* Chrome, Safari, Opera */
 -webkit-animation-name: myfirst;
 -webkit-animation-duration: 5s;
 -webkit-animation-timing-function: linear;
 -webkit-animation-delay: 2s;
 -webkit-animation-iteration-count: infinite;
 -webkit-animation-direction: alternate;
 -webkit-animation-play-state: running;
 /* Standard syntax */
 animation-name: myfirst;
 animation-duration: 5s;
 animation-timing-function: linear;
 animation-delay: 2s;
 animation-iteration-count: infinite;
 animation-direction: alternate;
 animation-play-state: running;
 }

 

 

উপরের উদাহরণের মতোই আরেকটি অ্যানিমেশন ইফেক্ট (animation-play-state প্রপার্টি বাদে)। এখানে কিছু শর্ট-কার্ট অ্যানিমেশন প্রপার্টি ব্যবহার করা হয়েছেঃ


div {
     -webkit-animation: myfirst 5s linear 2s infinite alternate; /* Chrome, Safari, Opera */
     animation: myfirst 5s linear 2s infinite alternate; /* Standard syntax */
 }

সিএসএস3 অ্যানিমেশন প্রপার্টি

নিচের টেবিলে @keyframes রুল এবং সকল অ্যানিমেশন প্রপার্টি লিস্ট করা হয়েছেঃ

প্রপার্টি

বর্ণনা

@keyframes অ্যানিমেশনকে নির্দিষ্ট করে ।
animation animation-play-state এবং animation-fill-mode প্রপার্টি বাদে সকল প্রপার্টিকে একসাথে ব্যাবহার করার শর্টকার্ট পদ্ধতি ।
animation-delay অ্যানিমেশন কখন শুরু হবে তা নির্দেশ করে ।
animation-direction অ্যানিমেশন অন্য কোন সাইকেলে পুনরায় শুরু হবে কিনা তা নির্দেশ করে ।
animation-duration একটি অ্যানিমেশন সম্পূর্ণ হতে কত সেকেন্ড বা মিলিসেকেন্ড লাগবে তা নির্দেশ করে ।
animation-fill-mode অ্যানিমেশন যখন প্লে হবে না তখন ইলিমেন্টের স্টাইল কেমন হবে তা নির্দেশ করে ।
animation-iteration-count অ্যানিমেশন কতবার প্লে হবে তা নির্দেশ করে 3
animation-name অ্যানিমেশনের নাম নির্দেশ করে 3।
animation-play-state অ্যানিমেশন প্লে হবে নাকি পস অবস্থায় থাকবে তা নির্দেশ করে 3
animation-timing-function অ্যানিমেশনের স্পিড নির্দেশ করে ।

 

সিএসএস৩ ট্রানজিশানস (CSS3 Transitions)

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

 

ব্রাউজার সাপোর্ট

নিচের টেবলটিতে প্রচলিত ব্রাউজারগুলোর প্রথম যে ভার্শনগুলো ট্রানজিশান প্রপার্টি পুরোপুরিভাবে সাপোর্ট করে তা দেয়া হয়েছে। -webkit-, -moz-, অথবা -o- এর পর যে ব্রাউজার ভার্শনগুলো আছে, সেগুলো ঐ প্রথম ভার্শনগুলোকে নির্দেশ করে যেগুলো প্রিফিক্স এর সাথে কাজ করে।

Property chrome edge ie firefox safari opera
transition

26.0
4.0 -webkit-

12.0

10.0

16.0
4.0 -moz-

6.1
3.1 -webkit-

12.1
10.5 -o-

transition-delay

26.0
4.0 -webkit-

12.0

10.0

16.0
4.0 -moz-

6.1
3.1 -webkit-

12.1
10.5 -o-

transition-duration

26.0
4.0 -webkit-

12.0

10.0

16.0
4.0 -moz-

6.1
3.1 -webkit-

12.1
10.5 -o-

transition-property

26.0
4.0 -webkit-

12.0

10.0

16.0
4.0 -moz-

6.1
3.1 -webkit-

12.1
10.5 -o-

transition-timing-function

26.0
4.0 -webkit-

12.0

10.0

16.0
4.0 -moz-

6.1
3.1 -webkit-

12.1
10.5 -o-

 

সিএসএস ট্রানজিশনস কি?

সিএসএস ট্রানজিশান হলো এক ধরণের ইফেক্ট যা একটি এইচটিএমএল এলিমেন্টকে এক স্টাইল থেকে অন্য স্টাইলে পরিবর্তিত হতে দেয়। এটি করতে আপনাকে দু'টো বিষয় নির্ধারণ করে দিতে হবেঃ

যে সিএসএস প্রপার্টিতে আপনি ইফেক্ট যোগ করতে চান
ইফেক্ট এর ডিউরেশন অর্থাৎ সেটি কত সময় ধরে অ্যাক্টিভ থাকবে

উদাহরণঃ width প্রপার্টিতে একটি ট্রানজিশান যোগ করা যাক, যার ব্যাপ্তি হবে ২ সেকেন্ডঃ


div {
    width: 100px;
    height: 100px;
    background: red;
    -webkit-transition: width 2s; /* Safari */
    transition: width 2s;
}

লক্ষ্যণীয়ঃ যদি সময় সীমা নির্দিষ্ট করে দেয়া না হয়, ট্রানজিশানটির ইফেক্ট বুঝা যাবেনা, কারন ট্রানজিশনের ডিফল্ট ব্যাপ্তি বা সময়সীমা হলো শূন্য (০) সেকেন্ড।

সিএসএস প্রপার্টিটি তার ভ্যালু পরিবর্তন করলেই ট্রানজিশান ইফেক্ট কাজ করা শুরু করে। সাধারণত একটি সিএসএস প্রপার্টি তার ভ্যালু পরিবর্তন করে যখন একজন ইউজার সেই প্রপার্টির উপর মাউস নিয়ে যান।

উদাহরণঃ

এলিমেন্টে হোভার যোগ করা যাকঃ


div:hover {
    width: 300px;
}

লক্ষ্যনীয়ঃ যখন মাউসের কার্সর এলিমেন্টটির উপর থেকে সরিয়ে নেয়া হয় তখন সেটি তার পূর্বের অবস্থায় ফিরে যায়।

 

একসাথে অনেকগুলো ট্রানজিশান যোগ করা

একের অধিক সিএসএস প্রপার্টিতে ট্রানজিশান যোগ করতে চাইলে প্রপার্টিগুলোকে কমা দিয়ে আলাদা করে দিতে হবে।

উদাহরণঃ width, height, এবং transformation এর সাথে ট্রানজিশান যোগ করা যাকঃ


div {
    -webkit-transition: width 2s, height 4s; /* Safari */
    transition: width 2s, height 4s;
}

 

ট্রানজিশানের আরও কিছু উদাহরণ

নিচের উদাহরণটিতে চারটি ট্রানজিশান প্রপার্টিকেই দেখানো হয়েছেঃ


div {
     /* For Safari 3.1 to 6.0 */
     -webkit-transition-property: width;
     -webkit-transition-duration: 1s;
     -webkit-transition-timing-function: linear;
     -webkit-transition-delay: 2s;
     /* Standard syntax */
     transition-property: width;
     transition-duration: 1s;
     transition-timing-function: linear;
     transition-delay: 2s;
 }

 

নিচের উদাহরণে উপরের ট্রানজিশানের মতো একই ধরণের ইফেক্ট তবে এখানে ট্রানজিশান প্রপার্টিগুলোকে শর্টহ্যান্ড বা সংক্ষিপ্ত করে দেখানো হয়েছেঃ


div {
     -webkit-transition: width 1s linear 2s; /* For Safari 3.1 to 6.0 */
     transition: width 1s linear 2s;
 }

 

 

সিএসএস ট্রানজিশান প্রপার্টিসমুহ

নিচে টেবলে সবগুলো ট্রানজিশান প্রপার্টিকে দেখানো হয়েছেঃ

transition -চারটি ট্রানজিশান প্রপার্টিকে একটিমাত্র (সিঙ্গেল) প্রপার্টি হিসেবে দেখাতে
ব্যবহার করা হয়।

  • transition-delay -কখন ট্রানজিশান ইফেক্ট শুরু হবে তা বলে দেয়
  • transition-duration -ট্রানজিশানটি কত সেকেন্ড বা মিলিসেকেন্ডে তার ইফেক্ট সম্পূর্ণ করবে তা নির্ধারণ করে
  • transition-property -কোন সিএসএস প্রপার্টির জন্য ইফেক্ট কাজ করবে তা নাম ঠিক করে দেয়
  • transition-timing-function -ট্রানজিশান ইফেক্টের গতি কি রকম হবে তা নির্দিষ্ট করে দেয়।

সিএসএস ৩ 3D ট্রান্সফর্মস (CSS3 3D Transforms in Bangla)

সিএসএস-থ্রি'তে থ্রিডি ট্রান্সফর্ম ব্যবহার করে পেজের এলিমেন্টগুলোকে ফর্মেট এবং স্টাইল করা যায়। এই অধ্যায়ে আমরা কিছু থ্রিডি ট্রান্সফর্ম এর পদ্ধতি সম্পর্কে জানবোঃ

  • rotateX()
  • rotateY()
  • rotateZ()

 

একটি টুডি ট্রান্সফর্ম এবং একটি থ্রিডি ট্রান্সফর্ম এর মধ্যে পার্থক্য দেখতে নিচের এলিমেন্টটির উপর ক্লিক করুনঃ

 

থ্রিডি ট্রান্সফর্ম এর ব্রাউজার সাপোর্ট

টেবলের নম্বরগুলো দিয়ে প্রথম যে ব্রাউজার ভার্শন এই ফিচারটিকে পুরোপুরি সাপোর্ট করে তার তালিকা প্রকাশ করে। -webkit-, -moz-, অথবা -o- এর সাথের নম্বরগুলো প্রথম যে ভার্শনটি প্রিফিক্সসহ কাজ করে তার তালিকা দেয়।

Property  chrome  edge  ie  firefox  safari  opera
transform 36.0
12.0 -webkit-
12.0 10.0 16.0
10.0 -moz-
4.0 -webkit- 23.0
15.0 -webkit-
transform-origin
(three-value syntax)
36.0
12.0 -webkit-
12.0 10.0 16.0
10.0 -moz-
4.0 -webkit- 23.0
15.0 -webkit-
transform-style 36.0
12.0 -webkit-
12.0 11.0 16.0
10.0 -moz-
4.0 -webkit- 23.0
15.0 -webkit-
perspective 36.0
12.0 -webkit-
12.0 10.0 16.0
10.0 -moz-
4.0 -webkit- 23.0
15.0 -webkit-
perspective-origin 36.0
12.0 -webkit-
12.0 10.0 16.0
10.0 -moz-
4.0 -webkit- 23.0
15.0 -webkit-
backface-visibility 36.0
12.0 -webkit-
12.0 10.0 16.0
10.0 -moz-
4.0 -webkit- 23.0
15.0 -webkit-

 

rotateX() মেথড

rotatex

rotateX() মেথডের মাধ্যমে এলিমেনটি একটি নির্দিষ্ট ডিগ্রিতে এর এক্স অক্ষের (X-axis) চারদিকে ঘুরে।

উদাহরণঃ


div {
    -webkit-transform: rotateX(150deg); /* Safari */
    transform: rotateX(150deg);
}

 

rotateY() মেথড

rotatey

rotateY() মেথডের মাধ্যমে এলিমেন্টটি একটি নির্দিষ্ট ডিগ্রিতে এর ওয়াই অক্ষের (Y-axis) চারদিকে ঘুরে।

উদাহরণঃ


div {
    -webkit-transform: rotateY(130deg); /* Safari */
    transform: rotateY(130deg);
}

 

rotateZ() মেথড

rotateZ() মেথডের মাধ্যমে এলিমেন্টটি একটি নির্দিষ্ট ডিগ্রিতে এর ওয়াই অক্ষের (Z-axis) চারদিকে ঘুরে।


div {

    -webkit-transform: rotateZ(90deg); /* Safari */
    transform: rotateZ(90deg);
}

 

 

সিএসএস-থ্রি ট্রান্সফর্ম প্রপার্টিসমূহ

নিচের টেবলে সবগুলো ট্রান্সফর্ম প্রপার্টির নামসহ ব্যাখ্যা দেয়া হলোঃ

প্রপার্টি

ব্যাখ্যা

transform একটি এলিমেন্টে একটি টুডি অথবা থ্রিডি ট্রান্সফর্মেশান যোগ করে
transform-origin আপনাকে ট্রান্সফর্ম হওয়া এলিমেন্টের উপর অবস্থান পরিবর্তন করতে দেয়।
transform-style থ্রিডি স্পেসে কিভাবে নেস্টেড প্রপার্টিগুলো স্টাইল করা হবে তা ঠিক করে।
perspective কোন পার্সপেক্টিভ বা দৃষ্টিকোন থেকে থ্রিডি এলিমেন্টগুলো দেখা হবে তা ঠিক করে।
perspective-origin থ্রিডি এলিমেন্টের বটম পজিশান ঠিক করে।
backface-visibility আমরা যখন স্ক্রিনের দিকে মুখোমুখি থাকিনা তখন কোন এলিমেন্ট দেখা যাবে কি যাবেনা তা নির্দিষ্ট করে

 

থ্রিডি ট্রান্সফর্ম এর মেথডগুলো

ফাংশন

ব্যাখ্যা

matrix3d (n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 16 ভ্যালুর 4*4 ম্যাট্রিক্স ব্যবহার করে একটি থ্রিডি ট্রান্সফর্মেশান সংজ্ঞায়িত করে
translate3d(x,y,z) একটি থ্রিডি ট্রান্সস্লেশান সংজ্ঞায়িত করে
translateX(x) শুধু এক্স অক্ষের ভ্যালু ব্যবহার করে একটি থ্রিডি ট্রান্সস্লেশান সংজ্ঞায়িত করে
translateY(y) শুধু ওয়াই অক্ষের ভ্যালু ব্যবহার করে একটি থ্রিডি ট্রান্সস্লেশান সংজ্ঞায়িত করে
translateZ(z) শুধু জেড অক্ষের ভ্যালু ব্যবহার করে একটি থ্রিডি ট্রান্সস্লেশান সংজ্ঞায়িত করে
scale3d(x,y,z) একটি থ্রিডি স্কেল ট্রান্সফর্মেশান সংজ্ঞায়িত করে
scaleX(x) এক্স অক্ষের ভ্যালু দিয়ে একটি থ্রিডি স্কেল ট্রান্সফর্মেশান সংজ্ঞায়িত করে
scaleY(y) ওয়াই অক্ষের ভ্যালু দিয়ে একটি থ্রিডি স্কেল ট্রান্সফর্মেশান সংজ্ঞায়িত করে
scaleZ(z) জেড অক্ষের ভ্যালু দিয়ে একটি থ্রিডি স্কেল ট্রান্সফর্মেশান সংজ্ঞায়িত করে
rotate3d(x,y,z,angle) একটি থ্রিডি রোটেশান সংজ্ঞায়িত করে
rotateX(angle) এক্স অক্ষ বরাবর একটি থ্রিডি রোটেশান সংজ্ঞায়িত করে
rotateY(angle) ওয়াই অক্ষ বরাবর একটি থ্রিডি রোটেশান সংজ্ঞায়িত করে
rotateZ(angle) জেড অক্ষ বরাবর একটি থ্রিডি রোটেশান সংজ্ঞায়িত করে
perspective(n) একটি থ্রিডি ট্রান্সফর্ম হওয়া এলিমেন্টের জন্য একটি পার্সপেক্টিভ ভিউ সংজ্ঞায়িত করে

 

সিএসএস ৩ 2D ট্রান্সফরম (CSS3 2D Transforms)

সিএসএস ৩ ট্রান্সফরম এর সাহায্যে আমরা যে কোন এলিমেন্ট সরাতে , টার্ন করতে, এবং ঘুরাতে পারি ।

ট্রান্সফরমেসান হল একটি ইফেক্ট যেটা শেপ , সাইজ, এবং জাইগা পরিবর্তন করতে বাবহারিত হয় ।

তুমি তোমার এলিমেন্ট এ ২ডি অথবা ৩ ডি ট্রান্সফরমেসান ব্যবহার করতে পার ।

 

সিএসএস ৩ ২ডি ট্রান্সফরমস

এই পার্ট এ আমরা ২ডি ট্রান্সফরম মেথড নিয়ে আলোচনা করব ।

এই অংশ গুলার ভেতরে আছে

  • translate()
  • rotate()
  • scale()
  • skew()
  • matrix()

উদাহরণ


div {
    -ms-transform: translate(50px,100px); /* IE 9 */
    -webkit-transform: translate(50px,100px); /* Safari */
    transform: translate(50px,100px);
}

 

ব্রাউজার সাপর্ট

টেবিলে উল্লেখিত সংখ্যা ব্রাউজার এর প্রথম ভার্সন যা এই প্রোপার্টি সম্পূর্ণভাবে সাপর্ট করে তা বোঝায়।

-ms-, -webkit-, -moz-, বা -o- দ্বারা প্রথম প্রিফিক্স ভার্সন বুঝায় যা এই প্রোপার্টি সাপর্ট করে।

Property chrome edge ie firefox safari opera
transform

36.0
4.0 -webkit-

12.0

10.0
9.0 -ms-

16.0
3.5 -moz-

3.2 -webkit-

23.0
15.0 -webkit-
12.1
10.5 -o-

transform-origin
(two-value syntax)

36.0
4.0 -webkit-

12.0

10.0
9.0 -ms-

16.0
3.5 -moz-

3.2 -webkit-

23.0
15.0 -webkit-
12.1
10.5 -o-

translate() মেথড এর কাজ

এই translate() মেথড ব্যবহার করে যে কোন এলিমেন্টকে তার বর্তমান স্থান থেকে সরানো যায়, যা নির্ভর করে এক্স অক্ষ এবং অয়াই অক্ষ এর কন্ডিশান এর উপর

উদাহরণ


div {
    -ms-transform: translate(50px,100px); /* IE 9 */
    -webkit-transform: translate(50px,100px); /* Safari */
    transform: translate(50px,100px);
}

 

rotate() মেথড এর কাজ

rotate

এই rotate() মেথড ব্যবহার করে যে কোন এলিমেন্ট ঘড়ির দিক অথবা ঘড়ির বিপরীত দিক এ ঘুরানো যায়।

উদাহরণ


div {
    -ms-transform: rotate(20deg); /* IE 9 */
    -webkit-transform: rotate(20deg); /* Safari */
    transform: rotate(20deg);
}

 

scale() মেথড এর কাজ

scale

এই scale() মেথড ব্যবহার করে যে কোন এলিমেন্ট এর সাইজ ছোট অথবা বড় করা যায়, যা নির্ভর করে এক্স অক্ষ এবং অয়াই অক্ষ এর পারামিটার এর উপর

উদাহরণ


div {
    -ms-transform: scale(2,3); /* IE 9 */
    -webkit-transform: scale(2,3); /* Safari */
    transform: scale(2,3);
}

 

skew() মেথড এর কাজ

এই skew() মেথড ব্যবহার করে যে কোন এলিমেন্ট এর এক্স অক্ষ এবং অয়াই অক্ষ এর পারামিটার পরিবর্তন করে এর কোনাকুনি আকার খুব সহজেই দেয়া যায়।

উদাহরণ


div {
       -ms-transform: skew(40deg,25deg); /* IE 9 */
       -webkit-transform: skew(40deg,25deg); /* Chrome, Safari, Opera */
       transform: skew(40deg,25deg);
 }

 

matrix() মেথড এর কাজ

rotate

এই matrix() মেথড ব্যবহার করে সকল ২ডি ট্রান্সফরম মেথড কে একটির মধ্যে নিয়ে আসা যায়।

এই matrix() মেথড ছয় টা প্যারামিটার , গানিতিক ফাংশান নেয়, যা সাহায্য করে ঘুরাতে, নড়াচড়া করতে, এবং মাপতে ।

উদাহরণ


div {
    -ms-transform: matrix(1, -0.3, 0, 1, 0, 0); /* IE 9 */
    -webkit-transform: matrix(1, -0.3, 0, 1, 0, 0); /* Safari */
    transform: matrix(1, -0.3, 0, 1, 0, 0);
}

 

সিএসএস ৩ ওয়েব ফন্ট (CSS3 Web Fonts)

Sheikh Mahfuzur Rahman

সিএসএস-থ্রি পাবলিশ হওয়ার পর থেকে ওয়েব ডিজাইনারদের এখন আর "ওয়েব সেইফ ফন্টের" উপর নিউর্ভর করতে হয়না। সিএসএস-থ্রি ওয়েব ফন্ট ওয়েব ডিজাইনারদের এমন সব ফন্ট ব্যবহার করার সুযোগ করে দেয় যা ইউজারদের কম্পিউটারে ইন্সটল করা হয়নি। যখনই আপনি ওয়েব পেজে ব্যবহারের জন্য কোন পছন্দসই ফন্ট খুঁজে পাবেন বা কিনবেন, শুধু ফন্ট ফাইলটি ওয়েব সার্ভারে আপলোড করে দেবেন; এটি যখনই প্রয়োজন হবে তখনই ইউজারের ডিভাইসে ডাউনলোড হয়ে যাবে।
সিএসএস-থ্রি @font-face rule রুলের মাধ্যমে আপনার নিজের ফন্টটি নির্দিষ্ট করতে দিতে পারবেন।

 

ব্রাউজার সাপোর্ট

নিচের নম্বরগুলোর মাধ্যমে এই নিয়মটি প্রথম যে ব্রাউজার ভার্শনগুলো সাপোর্ট করে তার তালিকা প্রকাশ করা হয়েছে।

Property chrome edge ie firefox safari opera
@font-face

4.0

12.0

9.0

3.5

3.2

10.0

 

বিভিন্ন ফন্ট ফর্মেট

ট্রুটাইপ ফন্ট (TTF)

অ্যাপল ও মাইক্রোসফট ১৯৮০ সালে সর্বপ্রথম ট্রুটাইপ ফন্ট স্ট্যান্ডার্ডটি চালু করেছিল। মাইক্রোসফট ও ম্যাক উভয় অপারেটিং সিস্টেমের জন্য সবচেয়ে কমন ফন্ট ফর্মেট হলো ট্রুটাইপ।

ওপেনটাইপ ফন্ট (OTF)

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

ওয়েব ওপেন ফরমেট (WOFF)

WOFF ওয়েব পেজে ব্যবহারের উপযোগী একটি ফরমেট। এটি ২০০৯ সালে ডেভলাপ করা হয়েছিল এবং এখন ডব্লিওথ্রিসি'র সুপারিশ করা ফরমেটগুলোর একটি। WOFF হলো কম্প্রেশন ও বাড়তি মেটাডাটা সহ ওপেনটাইপ অথবা ট্রুটাইপ । এর লক্ষ্য হলো ব্যান্ডউইথের সীমারেখার মধ্যেই সার্ভার থেকে ক্লাইয়েন্টের কাছে ফন্ট পৌছে দেয়া।

এসভিজি ফন্ট/শেপ

টেক্সট দেখানোর সময় এটি এসভিজিকে glyphs হিসেবে ব্যবহৃত হতে দেয়। SVG 1.1 স্পেসিফিকেশন একটি এসভিজি ডকুমেন্টের ভেতর ফন্ট তৈরির জন্য একটি ফন্ট মড্যুল নির্দিষ্ট করে দেয়। আপনি এসভিজি ডকুমেন্টের মধ্যেও সিএসএস ডিফাইন করে দিতে পারবেন। এবং @font-face রুলও এসভিজি ডকুমেন্টের টেক্সটের মধ্যে প্রয়োগ করা যায়।

এম্বেডেট ওপেন টাইপ ফন্ট (EOT)

EOT ওপেনটাইপ ফন্টের একটি কম্প্যাক্ট ফরমেট যা ওয়েবপেজে এম্বেডেড ফন্ট হিসেবে ব্যবহারের জন্য মাইক্রোসফট কর্তৃক ডিজাইন করা হয়েছিল।

 

ফন্ট ফরমেটের জন্য ব্রাউজার সাপোর্ট

নিচের নম্বরগুলোর মাধ্যমে ফন্ট ফরমেট প্রথম যে ব্রাউজার ভার্শনগুলো সাপোর্ট করে তার তালিকা প্রকাশ করা হয়েছে।

Font format ie chrome firefox safari opera
TTF/OTF

9.0*

4.0

3.5

3.1

10.0

WOFF

9.0

5.0

3.6

5.1

11.1

WOFF2

Not supported

36.0

35.0*

Not supported

26.0

SVG

Not supported

4.0

Not supported

3.2

9.0

EOT

6.0

Not supported

Not supported

Not supported

Not supported

 

*ফন্ট ফরমেট তখনি কাজ করে যখন তা "ইন্স" হিসেবে সেট করা হয়।

 

আপনার পছন্দমতো ফন্ট ব্যবহার করুন

সিএসএস-থ্রি'র @font-face রুলে আপনাকে প্রথমে ফন্টটির একটি নাম ঠিক করে দিতে হবে ( যেমনঃ myFirstFont) এবং তারপর নামটি ফন্টটির দিকে নির্দেশ করে দিতে হবে। ফন্ট এর ইউআরএল লেখার সময় সর্বদা লোয়ার কেস বা ছোট হাতের অক্ষর ব্যবহার করুন। ইন্টারনেট এক্সপ্লোরারে আপার কেস বা বড় হাতের অক্ষর সমস্যা করতে পারে।

একটি এইচটিএমএল এলিমেন্টের জন্য ফন্ট ব্যবহার করতে, ফন্ট ফ্যামিলি প্রপার্টির মাধ্যমে ফন্টের নামের দিকে নির্দেশ করুনঃ


@font-face {
    font-family: myFirstFont;
    src: url(sansation_light.woff);
}

div {
    font-family: myFirstFont;
}

 

বোল্ড টেক্সট ব্যবহার করা

বোল্ড টেক্সট ডেস্ক্রিপ্টরে আপনাকে অবশ্যই আরেকটি @font-face রুল যোগ করে দিতে হবেঃ


@font-face {
    font-family: myFirstFont;
    src: url(sansation_bold.woff);
    font-weight: bold;
}

 

"sansation_bold.woff" ফাইলটি হলো আরেকটি ফন্ট ফাইল যা স্যানসেশন ফন্টের বোল্ড ক্যারেক্টারগুলো ধারণ করে। "myFirstFont" ফন্ট-ফ্যামিলির'র যেকোন টেক্সটকে ব্রাউজার সবসময় বোল্ড হিসেবে দেখাতে এই ফাইলটিকে ব্যবহার করবে। এভাবে আপনি একই ফন্টের জন্য অনেকগুলো @font-face রুল তৈরি করতে পারেন।

 

সিএসএস-থ্রি ফন্ট ডেস্ক্রিপটর

নিচের টেবলে @ রুলের ভিতর যেসকল ফন্ট ডেস্ক্রিপটর ডিফাইন করা যায় তার তালিকা দেয়া হয়েছেঃ

font-family -এর ভ্যালু হবে ফন্ট এর নাম। অবশ্যই লাগবে।

src -এটি ফন্টের ইউআরএল; অবশ্যই লাগবে।

font-stretch -এটি অপশনাল। কিভাবে ফন্টটি স্ট্রেচ করা হবে তা ঠিক করে। এর ডিফল্ট ভ্যালু "normal" এর ভ্যালুগুলোর তালিকাঃ

বর্ননাকারী

মান

বর্ণনা

font-family name ফন্টকে একটি নাম নির্দিষ্ট করা প্রয়োজন।
src URL ফন্ট ফাইলের  একটি URL নির্দিষ্ট করা প্রয়োজন।
font-stretch normal
condensed
ultra-condensed
extra-condensed
semi-condensed
expanded
semi-expanded
extra-expanded
ultra-expanded
অপশনাল; কিভাবে ফন্টটি প্রসারিত হবে তা ঠিক করা হয়। ডিফল্ট ভ্যালু "normal"
font-style normal
italic
oblique
অপশনাল; কিভাবে ফন্টটি স্টাইল করা হবে তা ঠিক করা হয়। ডিফল্ট ভ্যালু "normal"
font-weight normal
bold
100
200
300
400
500
600
700
800
900
এটিও অপশনাল; ফন্টের পুরুত্ব ঠিক করে। এর ডিফল্ট ভ্যালু "normal"
unicode-range unicode-range unicode-range - অপশনাল। UNICODE ক্যারেক্টারের এর রেঞ্জ ঠিক করে দেয়। ডিফল্ট ভ্যালু "U+0-10FFFF"

 

সি এস এস ৩ টেক্সট ইফেক্টস (CSS3 Text Effects)

css3 তে বেশ কিছুই নতুন টেক্সট ইফেক্টস আছে।

এই অধ্যায়ে আপনারা নিচের অধ্যায়গুলো সম্পর্কে জানবেন-

  1. text-shadow
  2. word-wrap

 

ব্রাউজার সাপোর্ট (Browser Support)

এই প্রপার্টি দুটো css3 ভার্সন, তাই সকল নতুন বা latest version এর ব্রাউজার গুলো সাপোর্ট করবে।

নিম্নে দেয়া browser version গুলি প্রাথমিক version যা এই property কে সম্পূর্ণ সমর্থন করে।

সংখ্যা -o- দ্বারা browser version নির্দেশ করা হয়েছে-

প্রোপার্টি
chrome edge ie firefox safari opera
text-overflow

4.0

12.0

6.0

7.0

3.1

11.0
9.0 -o-

word-wrap

23.0

12.0

5.5

3.5

6.1

12.1

word-break

4.0

12.0

5.5

15.0

3.1

15.0

 

text-shadow

কোন কিছুর Shadow বা ছায়া তৈরি করতে আপনাকে চারটা জিনিস ব্যাখ্যা করে দিতে হবে যথা- horizontal shadow, the vertical shadow, the blur distance, এবং the color of the shadow বা ছায়াটির রং কি হবে।
উদাহরণ-


h1{
     text-shadow: 5px 5px 5px #ff0000;
 }

আপনি color code এবং value গুলো পরিবর্তন করে কোন value এর কারনে কোন পরিবর্তন আসছে তা দেখে নিতে পারেন।

 

CSS3 Word Wrapping

যখন একটা word বা শব্দ অনেক বড় হয়, যা এরিয়ার ভিতর আঁটানো যায়না তখন শব্দটা বাইরে চলে যায়।
css3 তে word wrap প্রপার্টিটা শব্দটিকে তার area এর ভিতরে চেপে ঢুকতে বাধ্য করে, এতে যদি অন্য কোন শব্দের মাঝখানে ঢুকে যায় তবুও।
উদাহরণ-


P{
    word-wrap: break-word;
 }

 

নিম্নে কিছু টেক্সট প্রপার্টি (CSS3 Text Properties) দেয়া হল

  • hanging-punctuation = এটি ব্যাখ্যা করে যে কোন punctuation charecter কে বক্স এর বাইরে অবস্থান করান যায় কি না। কিন্তু এই প্রপার্টি কোন ব্রাউজার এখনো সাপোর্ট করে না।
  • punctuation-trim = কোন punctuation character কে ছাটার ক্ষেত্রে এটি ব্যবহার করা যায়। কিন্তু এই প্রপার্টি কোন ব্রাউজার এখনো সাপোর্ট করে না।
  • text-overflow = যখন কোন প্রপার্টি overflow করে তখন এই প্রপার্টি ব্যবহার করা যায়।
  • text-shadow = এই প্রপার্টি টি যে কোন text বা শব্দের shadow বা ছায়া ৈরি করে।
  • word-break = এটি সাধারণত লাইন ভাঙার কাজ করে।
  • word-wrap = খুব বড় শব্দগুলোকে ভেঙে পরের লাইন তৈরি করে।

সি এস এস ৩ গ্র্যাডিয়েন্টস (CSS3 Gradients)

CSS3 gradients দুটি color এর মধ্যে সংযোগ স্থল কে মসৃণ করে।

এই কাজ টি করার জন্য আপনাকে একটি image ব্যাবহার করতে হবে। তবে CSS3 gradient ব্যাবহার করে আপনি download
এবং bandwidth usage কমাতে পারবেন। একইসাথে gradient এর মাধ্যমে করা element গুলি ভাল দেখায় যখন zoom
করা হয়, কেননা gradient সবসময় browser এ সৃষ্টি হয়।

CSS3 তে ২ ধরনের gradient দেখা যায়-

  • Linear (রৈখিক ) Gradients (goes down/up/left/right/diagonally)
  • Radial (বৃত্তীয়) Gradients (defined by their center)

 

ব্রাউজার সাপর্ট

নিম্নে দেয়া browser version গুলি প্রাথমিক version যা এই property কে সম্পূর্ণ সমর্থন করে।

সংখ্যা -webkit-, -moz-, or -o- দ্বারা browser version নির্দেশ করা হয়েছে-

প্রোপার্টি
chrome compatible edge Internet Explorer firefox safari opera
linear-gradient

26.0
10.0 -webkit-

12.0

10.0

16.0
3.6 -moz-

6.1
5.1 -webkit-

12.1
11.1 -o-

radial-gradient

26.0
10.0 -webkit-

12.0

10.0

16.0
3.6 -moz-

6.1
5.1 -webkit-

12.1
11.6 -o-

repeating-linear-gradient

26.0
10.0 -webkit-

12.0

10.0

16.0
3.6 -moz-

6.1
5.1 -webkit-

12.1
11.1 -o-

repeating-radial-gradient

26.0
10.0 -webkit-

12.0

10.0

16.0
3.6 -moz-

6.1
5.1 -webkit-

12.1
11.6 -o-

 

CSS3 Linear (রৈখিক) Gradients

একটি linear gradient তৈরি করার জন্য কমপক্ষে দুটি "color stop" দরকার হবে। color stop হচ্ছে একটি স্থান যেখানে দুটি
color এর মিলন ঘটে। আপনি এর সাথে একটি gradient effect দ্বারা আদ্যস্থল এবং একটি দিক(অথবা কোণ) ঠিক করে দিতে
পারেন।

কোড গুলি লিখার পদ্ধতি-


background: linear-gradient(direction, color-stop1, color-stop2, ...);

 

Linear Gradient - Top to Bottom (রৈখিক Gradient - উপর থেকে নিচ আবধি)

নিচের উদাহরণ টি Linear Gradient এর একটি উদাহরণ যেটি শুরু হয়েছে top থেকে এবং এখানে red এবং blue এর transition দেখানো
হয়েছে।
উদাহরণটিঃ


#grad {
  background: -webkit-linear-gradient(red, blue); /* For Safari 5.1 to 6.0 */
  background: -o-linear-gradient(red, blue); /* For Opera 11.1 to 12.0 */
  background: -moz-linear-gradient(red, blue); /* For Firefox 3.6 to 15 */
  background: linear-gradient(red, blue); /* Standard syntax */
}

 

Linear Gradient - Left to Right(বা থেকে ডান দিকে)

নিচের উদাহরণ টি আপনাকে একটি linear gradient দেখাবে যেখানে এই বাম পাশ থেকে শুরু হয়। এখানে red এবং blue এর transition দেখানো
হয়েছে।
উদাহরনঃ


#grad {
  background: -webkit-linear-gradient(left, red , blue); /* For Safari 5.1 to 6.0 */
  background: -o-linear-gradient(right, red, blue); /* For Opera 11.1 to 12.0 */
  background: -moz-linear-gradient(right, red, blue); /* For Firefox 3.6 to 15 */
  background: linear-gradient(to right, red , blue); /* Standard syntax */
}

 

Linear Gradient - Diagonal (তির্যক)

আপনি একটি Diagonal Gradient তৈরি করতে পারেন যেখানে এর horizontal(আনুভূমিক) and vertical(খাড়া) শুরুর স্থানটিকে
নির্দিষ্ট করে দিতে হয়।
নিচের উদাহরণটি থেকে এই বিষয় টি ভাল ভাবে বুজতে পারবেন।
এটি একটি linear gradient যা top left থেকে শুরু হয় এবং bottom right এ শেষ হয়।


#grad {
  background: -webkit-linear-gradient(left top, red , blue); /* For Safari 5.1 to 6.0 */
  background: -o-linear-gradient(bottom right, red, blue); /* For Opera 11.1 to 12.0 */
  background: -moz-linear-gradient(bottom right, red, blue); /* For Firefox 3.6 to 15 */
  background: linear-gradient(to bottom right, red , blue); /* Standard syntax */
}

 

Using Angles (কোণ এর ব্যাবহার)

আপনি যদি gradient এর উপর আরও বেশি নিয়ন্ত্রণে রাখতে চান তবে আপনাকে একটি angle নির্দিষ্ট করতে হবে পূর্বে নির্দিষ্ট
করা গতিপথ(to bottom, to top, to right, to left, to bottom right, etc.) বাদ দিয়ে।
কোডটি নিম্নরূপ-


background: linear-gradient(angle, color-stop1, color-stop2);

 

Horizontal line এবং gradient line এর মধ্যে একটি কোণ নির্দিষ্ট করার জন্য Angle ব্যাবহার করা হয়। যেটি ঘড়ির ঘূর্ণন এর উল্টা।
আপরদিকে, 0 ডিগ্রী bottom থেকে top gradient এবং 90 ডিগ্রী left থেকে right gradient তৈরি করে।

কোডগুলি নিম্নরূপ -

 #grad {
  background: -webkit-linear-gradient(180deg, red, blue); /* For Safari 5.1 to 6.0 */
  background: -o-linear-gradient(180deg, red, blue); /* For Opera 11.1 to 12.0 */
  background: -moz-linear-gradient(180deg, red, blue); /* For Firefox 3.6 to 15 */
  background: linear-gradient(180deg, red, blue); /* Standard syntax */
}

 

Using Multiple Color Stops (একাধিক Color Stop এর ব্যাবহার)

নিম্নের উদাহরনে একাধিক Color Stop এর ব্যাবহার পদ্ধতি দেখানো হয়েছে।
কোড-


#grad {
  background: -webkit-linear-gradient(red, green, blue); /* For Safari 5.1 to 6.0 */
  background: -o-linear-gradient(red, green, blue); /* For Opera 11.1 to 12.0 */
  background: -moz-linear-gradient(red, green, blue); /* For Firefox 3.6 to 15 */
  background: linear-gradient(red, green, blue); /* Standard syntax */
}

 

নিচের উদাহরণটি তে rainbow color দ্বারা linear gradient তৈরি করণ পদ্ধতি-
কোড-


#grad {
  /* For Safari 5.1 to 6.0 */
  background: -webkit-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet);
  /* For Opera 11.1 to 12.0 */
  background: -o-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet);
  /* For Fx 3.6 to 15 */
  background: -moz-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet);
  /* Standard syntax */
  background: linear-gradient(to right, red,orange,yellow,green,blue,indigo,violet);
}

 

Using Transparency (স্বচ্ছতার ব্যাবহার)

CSS3 gradient স্বচ্ছতা সমর্থন করে।এটি ব্যাবহার করা হয় fading effects তৈরি করার জন্য।

স্বচ্ছতা তৈরি করার জন্য এবং color stop নির্দিষ্ট করার জন্য "rgba()" function টি ব্যাবহার করা হয়।
rgba() function এর শেষ parameter value 0 থেকে 1 এবং এটি স্বচ্ছতা নির্দেশ করে। এখানে 0 দ্বারা সম্পূর্ণ
স্বচ্ছতা এবং 1 দ্বারা full color নির্দেশ করে।
নিম্নে এর উদাহরণ দেয়া হল-


#grad {
  background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /*Safari 5.1-6*/
  background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Opera 11.1-12*/
  background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Fx 3.6-15*/
  background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /*Standard*/
}

 

Repeating a linear-gradient (linear-gradient এর পুনরাবৃত্তি)

"repeating-linear-gradient()" function টি ব্যাবহার করা হয় linear gradient এর পুনরাবৃত্তি করার জন্য।
উদাহরনঃ


#grad {
  /* Safari 5.1 to 6.0 */
  background: -webkit-repeating-linear-gradient(red, yellow 10%, green 20%);
  /* Opera 11.1 to 12.0 */
  background: -o-repeating-linear-gradient(red, yellow 10%, green 20%);
  /* Firefox 3.6 to 15 */
  background: -moz-repeating-linear-gradient(red, yellow 10%, green 20%);
  /* Standard syntax */
  background: repeating-linear-gradient(red, yellow 10%, green 20%);
}

 

CSS3 Radial Gradients

Radial gradient টি কেন্দ্র দ্বারা নির্দিষ্ট করা হয়।
একটি radial gradient তৈরি করতে আপনাকে কমপক্ষে দুটি color stops নির্দিষ্ট করতে হবে।
Radial Gradient তৈরির Syntax নিম্নরুপঃ


background: radial-gradient(shape size at position, start-color, ..., last-color);


স্বাভাবিক ভাবে আকৃতি হয় উপবৃত্তাকার, কোণ টি দূরবর্তী কোনায় হয়, উৎপন্ন হয় কেন্দ্রে।

Radial Gradient - Evenly Spaced Color Stops (Color Stop গুলি সমব্যবধান এ থাকে )

উদাহরনঃ


#grad {
  background: -webkit-radial-gradient(red, green, blue); /* Safari 5.1 to 6.0 */
  background: -o-radial-gradient(red, green, blue); /* For Opera 11.6 to 12.0 */
  background: -moz-radial-gradient(red, green, blue); /* For Firefox 3.6 to 15 */
  background: radial-gradient(red, green, blue); /* Standard syntax */
}

 

Radial Gradient - Differently Spaced Color Stops(ভিন্ন ব্যবধানের Color Stop)

উদাহরনঃ


#grad {
  background: -webkit-radial-gradient(red 5%, green 15%, blue 60%); /* Safari 5.1-6.0 */
  background: -o-radial-gradient(red 5%, green 15%, blue 60%); /* For Opera 11.6-12.0 */
  background: -moz-radial-gradient(red 5%, green 15%, blue 60%); /* For Firefox 3.6-15 */
  background: radial-gradient(red 5%, green 15%, blue 60%); /* Standard syntax */
}

 

Set Shape (আকার নির্দিষ্টকরণ)

Shape parameter টি gradient এর shape নির্দিষ্ট করে। এটি circle(বৃত্তাকার) বা ellipse(উপবৃত্তাকার) এর value
গ্রহন করতে পারে।
উদাহরনঃ


#grad {
  background: -webkit-radial-gradient(circle, red, yellow, green); /* Safari */
  background: -o-radial-gradient(circle, red, yellow, green); /* Opera 11.6 to 12.0 */
  background: -moz-radial-gradient(circle, red, yellow, green); /* Firefox 3.6 to 15 */
  background: radial-gradient(circle, red, yellow, green); /* Standard syntax */
}

 

Use of Different Size Keywords (বিভিন্ন ধরনের Keyword এর ব্যাবহার)

Size parameter দ্বারা gradient এর size নির্দিষ্ট করা হয়। এর ৪ ধরনের মান হতে পারে-

  • closest-side
  • farthest-side
  • closest-corner
  • farthest-corner

উদাহরনঃ

বিভিন্ন আকারের keyword সংবলিত একটি radial gradient এর উদাহরণ নিম্নরূপ-


#grad1 {
  /* Safari 5.1 to 6.0 */
  background: -webkit-radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
  /* For Opera 11.6 to 12.0 */
  background: -o-radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
  /* For Firefox 3.6 to 15 */
  background: -moz-radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
  /* Standard syntax */
  background: radial-gradient(closest-side at 60% 55%,blue,green,yellow,black);
}

#grad2 {
  /* Safari 5.1 to 6.0 */
  background: -webkit-radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
  /* Opera 11.6 to 12.0 */
  background: -o-radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
  /* For Firefox 3.6 to 15 */
  background: -moz-radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
  /* Standard syntax */
  background: radial-gradient(farthest-side at 60% 55%,blue,green,yellow,black);
}

 

Repeating a radial-gradient (radial-gradient এর পুনরাবৃত্তি)

repeating-radial-gradient(), function টি ব্যাবহার করা হয় radial gradient এর পুনরাবৃত্তি করার জন্য।
উদাহরনঃ


#grad {
  /* For Safari 5.1 to 6.0 */
  background: -webkit-repeating-radial-gradient(red, yellow 10%, green 15%);
  /* For Opera 11.6 to 12.0 */
  background: -o-repeating-radial-gradient(red, yellow 10%, green 15%);
  /* For Firefox 3.6 to 15 */
  background: -moz-repeating-radial-gradient(red, yellow 10%, green 15%);
  /* Standard syntax */
  background: repeating-radial-gradient(red, yellow 10%, green 15%);
}

 

সিএসএস ৩ ব্যাকগ্রাউন্ড (CSS3 Backgrounds)

Sheikh Mahfuzur Rahman

 

সিএসএস-থ্রি'তে কিছু নতুন ব্যাকগ্রাউন্ড প্রপার্টি যোগ করা হয়েছে, যার মাধ্যমে ব্যাকগ্রাউন্ড এলিমেন্টকে আরও ভালোভাবে নিয়ন্ত্রণ ও স্টাইল করা যায়।

এই চ্যাপ্টারে আপনারা নিচের ব্যাকগ্রাউন্ড প্রপার্টিগুলো সম্পর্কে জানবেনঃ

  • background-size
  • background-origin
  • background-clip

কিভাবে মাল্টিপল (একাধিক) ব্যাকগ্রাউন্ড ইমেজ ব্যবহার করা যায় তা নিয়েও এখানে আলোচনা করা হবে।

ব্রাউজার সাপোর্ট

নিচের তালিকায় প্রথম যে ব্রাউজার ভার্শনগুলো ব্যাকগ্রাউন্ড প্রপার্টিকে পুরোপুরিভাবে সাপোর্ট করে তা দেয়া হলো। -webkit-, -moz-, অথবা -o- এর সাথে যুক্ত ভার্শন নম্বরগুলো প্রিফিক্সসহ যেসব ভার্শন কাজ করে তার তালিকা প্রকাশ করে।

Property Internet Explorer Google Chrome Mozila Firefox Safari Opera
background-image
(একাধিক ব্যাকগ্রাউন্ড সহ)

9.0

4.0

3.6

3.1

11.5

background-size

9.0

4.0
1.0 -webkit-

4.0
3.6 -moz-

4.1
3.0 -webkit-

10.5
10.0 -o-

background-origin

9.0

1.0

4.0

3.0

10.5

background-clip

9.0

4.0

4.0

3.0

10.5

 

সিএসএস-থ্রি background-size প্রপার্টি

background-size প্রপার্টি ব্যাকগ্রাউন্ড ইমেজের সাইজ বা আকার ঠিক করে। সিএসএস-থ্রি প্রকাশের আগে ব্যাকগ্রাউন্ড ইমেজের আকার ইমেজের প্রকৃত আকার দিয়ে নির্ধারণ করা হতো। সিএসএস-থ্রি'তে ব্যকগ্রাউন্ড ইমেজের আকার ঠিক করে দেয়া সম্ভব যা আমাদের বিভিন্ন ক্ষেত্রে ব্যাকগ্রাউন্ড ইমেজগুলোকে পুনরায় ব্যবহারের সুযোগ করে দেয়।

আপনি সাইজটি পিক্সেল বা পার্সেন্টেজে নির্ধারণ করে দিতে পারেন। আপনি যদি সাইজটি পার্সেন্টেজে ঠিক করে দেন, সাইজটি প্যারেন্ট এলিমেন্টের প্রস্থ ও উচ্চতা এর সাপেক্ষে নির্ধারিত হবে।

১) উদাহরণ

একটি ব্যাকগ্রাউন্ড ইমেজকে রিসাইজ করা


<!DOCTYPE html>
<html>
<head>
<style>
#example1 {
    border: 1px solid black;
    background:url(img_flwr.gif);
    background-repeat: no-repeat;
    padding:15px;
}

#example2 {
    border: 1px solid black;
    background:url(img_flwr.gif);
    background-size: 100px 80px;
    background-repeat: no-repeat;
    padding:15px;
}
</style>
</head>



<body>

<p>Original background-image:</p>
<div id="example1">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod 
tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis 
nisl ut aliquip ex ea commodo consequat.</p>
</div>

<p>Resized background-image:</p>
<div id="example2">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod 
tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis 
nisl ut aliquip ex ea commodo consequat.</p>
</div>

</body>
</html>

 

২) উদাহরণ
পুরো কন্টেন্ট এরিয়াতে ব্যাকগ্রাউন্ড ইমেজকে ছরিয়ে দেয়াঃ


div {
background: url(img_flwr.gif);
background-size: 100% 100%;
background-repeat: no-repeat;
}


 

 

সিএসএস-থ্রি ব্যাকগ্রাউন্ড-অরিজিন প্রপার্টি

background-origin প্রপার্টি ব্যাকগ্রাউন্ড ইমেজের অবস্থান (positioning) নির্ধারণ করে দেয়। ব্যকগ্রাউন্ড ইমেজটি content-box, padding-box অথবা border-box এরিয়াতে বসানো যায়।

উদাহরণ
ব্যাকগ্রাউন্ড ইমেজকে content-box এ স্থাপন করাঃ


div {
background: url(img_flwr.gif);
background-repeat: no-repeat;
background-size: 100% 100%;
background-origin: content-box;
}


 

 

সিএসএস-থ্রি মাল্টিপল ব্যাকগ্রাউন্ড ইমেজ

সিএসএস-ত্রি আপনাকে একটি এলিমেন্টে একাধিক ব্যাকগ্রাউন্ড ইমেজ ব্যবহারের সুযোগ করে দেয়।

উদাহরণ
এলিমেন্টের জন্য দু'টি ব্যাকগ্রাউন্ড ইমেজ ব্যবহার করা যাকঃ


body {
background: url(img_tree.gif), url(img_flwr.gif);
background-size: 100% 100%;
background-repeat: no-repeat;
}


 

 

সিএসএস-থ্রি ব্যাকগ্রাউন্ড প্রপার্টিসমূহ

  • background-clip - এটি ব্যাকগ্রাউন্ড ইমেজের পেইন্টিং এরিয়া নির্ধারণ করে।
  • background-origin - এটি ব্যকগ্রাউন্ড ইমেজের পজিশনিং (অবস্থান) এরিয়া নির্ধারণ করে
  • background-size - এটি ব্যাকগ্রাউন্ড ইমেজের সাইজ ঠিক করে।

সিএসএস ৩ বর্ডার (CSS3 Borders)

সিএসএস ৩ এর সাহায্যে তুমি গোলআকৃতির বর্ডার তৈরি করতে পারবা, এবং বক্স এ ছায়া দিতে পারবা, এবং যেকোন ইমেজ কে বর্ডার করতে পারবা ফটোশপ অথবা অন্য যে কোন ধরনের ডিজাইন প্রোগ্রাম ছাড়াই।

এই অংশে আমরা শিখব বর্ডার এর প্রপার্টিজ এর কিছু বিষয় সম্পর্কেঃ

  • বর্ডার - রেডিয়াস
  • বক্স - ছায়া
  • বর্ডার - ইমেজ

এই কাজ গুল প্রায় সব ওয়েব ব্রাওজার দিয়েই করা যায়।

 

সিএসএস ৩ বর্ডার - রেডিয়াস প্রপার্টি- গোলাকার কোনা

সিএসএস ২ তে গোলাকার কোনা তৈরি করা অনেক কষ্টের ছিল । আমাদেরকে প্রতিটা কোনার জন্য ভিন্ন ভিন্ন ইমেজ ব্যবহার করতে হতো।
এখন সিএসএস ৩ তে গোলাকার কোনা তৈরি করা অনেক সহজ । সিএসএস ৩ তে border-radius প্রোপার্টি ব্যবহার করা হয় গোলাকার কোনা তৈরি করার জন্য ।

উদারন সরুপ

একটা <div> এর ভিতর গোলাকার ইলিমেন্ট লেখার জন্য


 div {
     border: 3px solid;
     border-radius: 30px;
 }

 

সিএসএস ৩ box-shadow প্রপার্টি

সিএসএস ৩ তে box-shadow প্রপার্টি ব্যবহার করা হয় বক্স এ ছাড়া দেয়ার জন্য
উদারন
একটা <div> এর ভিতর বক্স ছায়া ব্যবহার করার জন্য লিখতে হয়


div {
     box-shadow: 20px 12px 6px #888888;
 }

 

সিএসএস ৩ এ বর্ডার-ইমেজ প্রপার্টি

সিএসএস ৩ এর মাধমে তুমি খুব সহজ এই একটা ইমেজ কে বর্ডার হিসাবে ব্যবহার করতে পারবা বর্ডার-ইমেজ প্রপার্টি এর মাধ্যমে । এটা খুবেই ইজি ।

উদারন
একটা ইমেজ কে একটা বর্ডার হিসাবে ব্যবহার করতে হলে <div> এর ভিতর লিখতে হবে


div {
     -webkit-border-image: url(border.png) 30 30 round; /* Safari 3.1-5 */
     -o-border-image: url(border.png) 30 30 round; /* Opera 11-12.1 */
     border-image: url(border.png) 30 30 round;
 }

সিএসএস ন্যাভিগেশন বার (CSS Navigation Bar)

মীর তাউহীদুল ইসলাম
ওয়েব ডেভেলপার, ওডেস্ক

 

ব্যাবহারের সুবিধার্থে প্রত্যেকটি ওয়েব সাইটের জন্য ন্যাভিগেশন বার প্রয়োজন। সিএসএস এর মাধ্যমে যেকোন এইচটিএমএল মেনুকে খুব সুন্দর ন্যাভিগেশন বার এ পরিনত করা যায়।

ন্যাভিগেশন বার = লিংক তালিকা

একটি ন্যাভিগেশন বার তৈরি করার জন্য প্রথমে একটি এইচটিএমএল কাঠামোর প্রয়োজন হয়।
আমাদের উদাহারনে আমরা ন্যাভিগেশন বার তৈরি করেছি সাধারণ এইচটিএমএল লিস্ট (li) ট্যাগের মাধ্যমে। মূলত ন্যাভিগেশন বার হল একটি লিংকের তালিকা বা লিস্ট। তাই আমরা <ul></ul> এবং <li></li> ট্যাগগুলো ব্যাবহার করব।
উদাহারনঃ


 <ul>
  <li><a href="default.asp">Home</a></li>
  <li><a href="news.asp">News</a></li>
  <li><a href="contact.asp">Contact</a></li>
  <li><a href="about.asp">About</a></li>
</ul>

 

এখন এই তালিকা থেকে বুলেট (গোল কাল বৃত্ত) এবং মার্জিন এবং প্যাডিং সরিয়ে দেওয়া হল:
উদাহারনঃ


ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

উদাহরণ ব্যাখ্যা:

  • লিস্ট স্টাইল টাইপ নান( list-style-type: none;) দ্বারা বুলেটগুলোকে মুছে ফেলা হয়েছে।
  • ব্রাউজার এর ডিফল্ট সেটিংস মুছে ফেলার জন্য মার্জিন এবং প্যাডিং ০ সেট করা হয়েছে।

এখন লক্ষ করতে হবে যে, উপরের উদাহারনে যে কোডটুকু লেখা হয়েছে তা প্রত্যেক ন্যাভিগেশন বার তৈরি করতে লিখতে হবে হোক তা হরিজন্টাল বা ভারটিকাল।

 

ভারটিকাল ন্যাভিগেশন বার

একটি ভারটিকাল ন্যাভিগেশন বার তৈরির জন্য আমাদের শুধু উপরের কোড থেকে <a> উপাদানটির স্টাইল পরিবর্তন করতে হবে।
উদাহারনঃ


a {
    display: block;
    width: 60px;
}

উদাহরণ ব্যাখ্যা:

  • display: block –দ্বারা লিংকটিকে একটি ব্লক এলিমেন্টে রূপান্তরিত করা হয়েছে যার ফলে লিংকটি তার ব্লকের পুরো জায়গা দখল করবে এতে শুধু লিংকের লেখাটি ক্লিকেবল হবে না পুরো জায়গাটিই ক্লিকেবল হবে।
  • width: 60px –দ্বারা বুঝা যায় আমরা লিংক ব্লকটির জন্য ৬০পিক্সেল পরিমাণ জায়গা নিবো যদিও ব্লক সবসময় সম্পূর্ণ জায়গা দখল করে।

নোটঃ সবসময় <a> উপাদানটির জন্য ভারটিকাল ন্যাভিগেশন বার এ প্রস্থ উল্লেখ করতে হবে কারন এটা না করলে অনেক সময় IE6 অপ্রত্যাশিত ফলাফল উৎপন্ন করতে পারে।

 

হরিজন্টাল ন্যাভিগেশন বার

হরিজন্টাল ন্যাভিগেশন বার ইনলাইন এবং ফ্লটিং এই দুই পদ্ধতিতে তৈরি করা যায়। দুটো পদ্ধতিই ভাল কাজ করবে তবে লিংকগুলোর সাধারণ আকার বজায় রাখতে ফ্লটিং পদ্ধতি ব্যাবহার করতে হবে।

 

ইনলাইন লিস্ট পদ্ধতি

ইনলাইন লিস্ট পদ্ধতিতে ন্যাভিগেশন বার তৈরির জন্য আমাকে শুধু </li> ট্যাগের স্টাইলের একটা পরিবর্তন করতে হবে।
উদাহারনঃ


li {
    display: inline;
}

উদাহরণ ব্যাখ্যা:
সাধারনত লিস্ট স্টাইল এ ডিসপ্লে-ব্লক ডিফল্ট থাকে তাই (display: inline;) ট্যাগের মাধ্যমে এই ডিফল্ট কে পরিবর্তন করে ইনলাইন করা হয়।

 

ফ্লটিং লিস্ট পদ্ধতি

উপরের উদাহারনে লিংক গুলোর প্রত্যেকের পৃথক পৃথক প্রস্থ থাকবে। কিন্তু সবগুলো লিংকের সমান প্রস্থ এর জন্য লিংক গুলোকে ফ্লট করতে হবে। এর জন্য <li> এর <a> কে স্টাইল করতে হবে।

উদাহারনঃ


li {
    float: left;
}

a {
    display: block;
    width: 60px;
}

উদাহরণ ব্যাখ্যা:

  • এখানে উদাহারনে প্রত্যেকটি লিস্ট ট্যাগকে বামে ফ্লট করানো হয়েছে এবং প্রত্যেকটি লিংককে ব্লকে রূপান্তরিত করে প্রত্যেকটির জন্য পৃথক পৃথক ৬০ পিক্সেল জায়গা নেওয়া হয়েছে।

 

সিএসএস৩ পরিচিতি (CSS3 Introduction)

Ali Hossain

Student of English Literature, Jahangirnagar University.

 
CSS (সিএসএস) এর আধুনিক মানদন্ড বা নিশান হচ্ছে CSS3 (সিএসএস৩)

পূর্বের CSS (সিএসএস) এর ভার্সন এর সাথে CSS3 (সিএসএস৩) সম্পূর্নভাবে সামঞ্জস্যপূর্ণ । এই অধ্যায়ে আপনি CSS3 (সিএসএস৩) এর নতুন বৈশিষ্ট্য সম্পর্কে জানতে পারবেন।

 

CSS3 Modules (সিএসএস৩ মডিউলস)

CSS3 (সিএসএস৩) কে “Modules” (মডিউলস) এ বিভক্ত করা হয়েছে।

এটিতে “পুরাতন CSS (সিএসএস) এর বৈশিষ্ট্য রয়েছে (যে গুলোকে ছোট ছোট ভাগে বিভক্ত করা হয়েছে)। উপরন্তু, নতুন Modules (মডিউলস) যোগ করা হয়েছে।

CSS3 (সিএসএস৩) এর সবচেয়ে গুরুত্বপুর্ন কিছু Modules (মডিউলস) হচ্ছে :

  1. Selectors
  2. Box Model
  3. Backgrounds and Borders
  4. Image Values and Replaced Content
  5. Text Effects
  6. 2D/3D Transformations
  7. Animations
  8. Multiple Column Layout
  9. User Interface

 

CSS3 (সিএসএস৩) এর সুপারিশ

CSS3 (সিএসএস৩) এর অধিকাংশ Module (মডিউল) এ W3C এর প্রস্তাবনা রয়েছে, এবং CSS3 (সিএসএস৩) এর বৈশিষ্ট্য সব আধুনিক ব্রাওজারগুলুতে প্রয়োগ করা হয়েছে।

 

সিএসএস এট্রিবিউট সিলেক্টরস (CSS Attribute Selectors)

সিএসএস সিলেক্টর টিউটোরিয়াল

সিএসএস সিলেক্টর কে সিএসএস এর হৃদপিন্ড বলা হয়। বিভিন্ন ধরনের সিলেক্টর আছে, এসব দিয়ে এইচটিএমএল পেজের এলিমেন্ট সিলেক্ট করা যায় এবং সিলেক্ট করার পর নিজের ইচ্ছেমত স্টাইলিং করা যায়। সিএসএস সিলেক্টর এর ব্যাপারে খুব গভীর এবং স্বচ্ছ ধারনা থাকতে হবে। সিলেক্টর নিয়ে কাজ করার আগে কিছু টার্ম জানতে হবে যেমনঃ

১। এইচটিএমএল এলিমেন্ট
২। এট্রিবিউট

রুল সেট বা রুল (css rule)

Selector আর declaration block দুটি মিলে একটা রুল। অর্থ্যাৎ কোন একটা এইচটিএমএল এলিমেন্টকে সিলেক্ট করে সেটার জন্য যেসব সিএসএস লেখা হয় তা হচ্ছে একটা রুল।

পুরো সিএসএস টিউটোরিয়াল জুড়ে শুধু মুলত ৩টি জিনিসের আলোচনা হবেঃ

সিলেক্টর : কোন একটা এইচটিএমএল এলিমেন্টকে সিলেক্ট বা টার্গেট করে সেটার জন্য সিএসএস রুল লেখা হয়। এলিমেন্টে id, class এট্রিবিউটের যে মান দেয়া থাকে সেটা দিয়েই সিলেক্ট/টার্গেট করা যায়।

প্রেপার্টি : সিএসএস এ শত শত প্রোপার্টি আছে। এক একটি দিয়ে এক এক কাজ হয় যেমন "background-color" প্রোপার্টি দিয়ে কোন এলিমেন্টের ব্যাকগ্রাউন্ডে রং দেয়া যায়। "font-family" দিয়ে এলিমেন্ট টির ফন্ট কি হবে সেটা ঠিক করা যায় ইত্যাদি।

মান (value) : প্রত্যেকটি প্রোপার্টির নির্দিষ্ট মান আছে। এই প্রোপার্টি এবং প্রোপার্টিগুলির মান কি কি হবে সেগুলি যত বেশি মুখস্থ থাকবে তত ভাল কাজ করতে পারবেন। তবে কাজ করে করে প্রফেশনাল হয়ে গেলে শত শত প্রোপার্টি এবং এদের মানগুলি মুখস্থই থাকে।

01.h4
02.{
03.background-color:white;
04.font-size:12px;
05.}
06.p
07.{
08.color:red;
09.}

এখানে h4, p এসব হচ্ছে সিলেক্টর, h4 এর দ্বারা এইচটিএমএল পেজের <h4></h4> এর ভিতরে যা আছে তা সিলেক্ট করবে বা বলা যায় h4 এলিমেন্ট সিলেক্ট করবে।
h4 এর পর সেকেন্ড ব্রাকেট যেখান থেকে শুরু হয়েছে এবং p এর আগে যেখানে সেকেন্ড ব্রাকেট শেষ হয়েছে এইটুকু ডিক্লেয়ারেশন ব্লক।
সেকেন্ড ব্রাকেটের ভিতরে সবটুকু হচ্ছে ডিক্লেয়ারেশন।
background-color হচ্ছে প্রোপার্টি এবং white হচ্ছে এর ভ্যালু।
আর পুরোটা অর্থ্যাৎ h4 থেকে শুরু করে এর সেকেন্ড ব্রাকেট যেখানে শেষ হয়েছে এইটুকু রুল বা রুল সেট। উপরের কোডে দুটি রুল আছে h4 এবং p।

নিচে বিভিন্ন সিলেক্টর এর নাম এবং এরা কিভাবে কাজ করে তা দেয়া হলঃ

১। ইউনিভার্সাল সিলেক্টর

ইউনিভার্সাল সিলেক্টর এইচটিএমএল পেজের প্রতিটি এলিমেন্ট কে সিলেক্ট করে। যেমনঃ নিচের কোডটি সব এইচটিএমএল এলিমেন্ট এর রং লাল করে দেবে।

1.* {color:red;}

অনেকে padding, margin এখানে 0 করে দেন যেমনঃ

1.*{
2.margin:0;
3.padding:0;
4.}

এই কাজটি করা অপ্রোয়জনীয়, এতে ব্রাউজারের উপর চাপ বেশি পরে তাই অনেকে এটা করতে নিষেধ করেন।

২। টাইপ সিলেক্টরঃ

1.p{
2.background-color:orange;
3.}
4.a{
5.color:maroon;
6.}

p, a হচ্ছে এখানে টাইপ সিলেক্টর। p সিলেক্টর এইচটিএমএল পেজের সব এলিমেন্ট কে সিলেক্ট করবে এবং এদের ব্যাকগ্রাউন্ড রং কমলা করে দেবে আর a সিলেক্টর এইচটিএমএল সব লিংক কে সিলেক্ট করে রং খয়েরি করে দেবে।

 

সিএসএস মিডিয়া টাইপস (CSS Media Types)

মৃত্যুঞ্জয় বিশ্বাস

 
এই @media পদ্ধতি ব্যবহার করে, একটি ওয়েবসাইট এর স্কৃণ্, মুদ্রণ, মোবাইল ফোন, ট্যাবলেট ইত্যাদি জন্য একটি ভিন্ন লেআউট করতে পাড়বো।

মিডিয়ার ধরন সমূহ

কিছু CSS এর বৈশিষ্ট্য শুধুমাত্র একটি নির্দিষ্ট মিডিয়া জন্য ডিজাইন করা হয়। উদাহরণস্বরূপ "voice-family" বৈশিষ্ট শ্রবণেন্দ্রিয় সংক্রান্ত ব্যবহারকারী এজেন্ট এর জন্য ডিজাইন করা হয়েছে। অন্যান্য বেশ কয়েকটি বৈশিষ্ট্য বিভিন্ন মিডিয়া ধরনের জন্য ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, "font-size" বৈশিষ্ট স্কৃণ্ এবং প্রিন্ট মিডিয়ার জন্য ব্যবহার করা হয়ে থাকে। যদিও এর বিভিন্ন ব্যবহার আসে। একটি নথিতে সাধারণত কাগজ থেকে একটি স্কৃণ্ এ বড় ফন্টের প্রয়োজন হয়। sans-serif ফন্ট এর মাধমে স্কৃণ্ এ সহজে পড়তে পারা যায় , যদিও কাগজেও সহজে পড়া যায়।

 

@ মিডিয়া রুল সমূহ

এই @media রুল, একই স্টাইল শীট এ বিভিন্ন মিডিয়ার জন্য বিভিন্ন নিয়ম তৈরি করে। উদাহরণস্বরূপ এই স্টাইল এ নীচের ব্রাউজার এর বর্ণনাই একটি ১৪14 পিক্সেল Verdana ফন্ট এর স্কৃণ্ প্রদর্শন করা হল। যদি পাতাগুলো প্রিন্ট করা হয়। তবে এটি একটি ২০20 পিক্সেল ফন্ট এবং লাল রঙের হবে।

উদাহরণঃ


@media screen {
      p {
      font-family: verdana,sans-serif;
      font-size: 14px;
      }
 }
@media print {
      p {
      font-size: 20px;
      color: red;
      }
 }

 

নীচে অন্যান্য মিডিয়া ধরন সম্পর্কে আলোচনা করা হলঃ

  1. all= সবধরনের মিডিয়া ডিভাইসের জন্য ব্যবহৃত হয়।
  2. aural= এটি বক্তৃতা এবং শব্দ synthesizers জন্য ব্যবহৃত হয়।
  3. braille= ব্রেইল স্পৃশ্য প্রতিক্রিয়া ডিভাইসের জন্য ব্যবহৃত হয়।
  4. embossed= পেজড ব্রেইল প্রিন্টার জন্য ব্যবহৃত করা হয়।
  5. handheld= এটি ছোট বা হ্যান্ডহেল্ড ডিভাইসের জন্য ব্যবহৃত হয়।
  6. print= প্রিন্টার জন্য ব্যবহৃত হয়।
  7. projection= প্রোজেক্ট উপস্থাপনা জন্য ব্যবহৃত হয়, সাদারনত স্লাইডের মত।
  8. screen= কম্পিউটার পর্দা জন্য ব্যবহৃত হয়
  9. tty= Teletypes এবং টার্মিনালের মত, যা মিডিয়ার নির্দিষ্ট পিচ প্রকৃতির গ্রিড এ ব্যবহার করা হয়।
  10. tv= টেলিভিশন -টাইপ ডিভাইসের জন্য ব্যবহৃত হয়।

সিএসএস এ অস্বচ্ছতা / স্বচ্ছতা (CSS Image Opacity / Transparency)

অঞ্জন দাস (American international univetsity)

 

আপাসিটি দ্বারা নিধারণ করা হয় অবজেক্টটি কতটা স্বচ্ছ। সাধারণত কোন ইমেজের অপাসিটি নিয়ন্ত্রণের মাধ্যমে ঐ ইমেজের উপর বিভিন্ন ইফেক্ট দেয়া যায়।

CSS এর মাধ্যমে সহজে স্বচ্ছ ইমেজ তৈরি করা। CSS এর অস্বচ্ছতা (Opacity) CSS 3 এর একটি একটি অংশ।

উদাহরণ 1 - একটি স্বচ্ছ ইমেজ তৈরি করাঃ

CSS 3 বৈশিষ্ট্য হল এর স্বচ্ছতা ও অস্বচ্ছতা। প্রথম আমরা কিভাবে CSS এর সঙ্গে একটি স্বচ্ছ ইমেজ তৈরি করতে হয় তা দেখব ।
নিয়মিত চিত্র:

Transparency তে একই চিত্র:

উদাহরণঃ


img {
    opacity: 0.4;
    filter: alpha(opacity=40); /* For IE8 and earlier */
}

অপাসিটি নিয়ন্ত্রণের জন্য CSS এ ইন্টারনেট এক্সপ্লোরার-৯, ফায়ারফক্স, ক্রোম, অপেরা এবং সাফারি সহ নতুন সকল ব্যাউজারের জন্য opacity প্রোপার্টি ব্যবহৃত হয়। opacity প্রোপার্টি র মান 0.0 থেকে 1.0 গ্রহণ করতে পারে। IE8 এবং তার আগের ব্যাউজার filter:alpha(opacity=x) ব্যবহার করে। এর নিম্ন মান উপাদান আরো স্বচ্ছ করে তোলে।

উদাহরণ 2 - চিত্র ট্রান্সপারেন্সি এর হভার (Hover) প্রভাব

ইমেজ এর উপর মাউস রাখেন
উদাহরণঃ


img {
    opacity: 0.4;
    filter: alpha(opacity=40); /* For IE8 and earlier */
}

img:hover {
    opacity: 1.0;
    filter: alpha(opacity=100); /* For IE8 and earlier */
}

এটি প্রথম CSS ব্লক উদাহরণ ১ এর অনুরূপ কোড। উপরন্তু, আমরা যখন ইমেজ এ hover ওভার asযোগ করবো। এই ক্ষেত্রে যদি স্বচ্ছ ইমেজ না চান তাহলে hover over রেখে দেখুন।
এই জন্য সিএসএস হল: opacity=1
IE8 এবং আগের জন্য filter:alpha(opacity=100)
যখন মাউস পয়েন্টার ইমেজ থেকে দূরে চলে আসে, তখন ইমেজ আবার স্বচ্ছ হতে পারে।

উদাহরণ 3 - Transparent বক্স-এর লেখাটি

উদাহরণঃ


 <html>
<head>
<style>
div.background {
    background: url(klematis.jpg) repeat;
    border: 2px solid black;
}

div.transbox {
    margin: 30px;
    background-color: #ffffff;
    border: 1px solid black;
    opacity: 0.6;
    filter: alpha(opacity=60); /* For IE8 and earlier */
}

div.transbox p {
    margin: 5%;
    font-weight: bold;
    color: #000000;
}
</style>
</head>
<body>

<div class="background">
  <div class="transbox">
    <p>This is some text that is placed in the transparent box.</p>
  </div>
</div>

</body>
</html>

 

প্রথমত, আমরা <div> element (class="background") এর সাথে একটি ব্যাকগ্রাউন্ড ইমেজ এবং একটি পার্শ্ব তৈরি করবো। তারপর আমরা <div> (class="transbox") তৈরি করবো । যার পাশে <div>. The <div class="transbox"> এ আগের পটভূমির রঙ এবং একটি স্বচ্ছ DIV সীমানা (bbBBBGGH4141444 border)rderr আছে। ভিতরের transparent <div> এ আমরা একটি <p> উপাদান ভিতরে কিছু লেখা যোগ করবো।

 

সি এস এস ইমেজ স্প্রাইটস্ (CSS Image Sprites)

মৃত্যুঞ্জয় বিশ্বাস

 

ইমেজ স্প্রাইটস্ কি?

ওয়েব সাইটের জন্য আকর্ষণীয় বাটন তৈরির জন্য এবং নেভিগেশন বার তৈরির ক্ষেত্রে ইমেজ স্প্রাইটস একটা ভালো কৌশল। এক্ষেত্রে অনেকগুলো ইমেজ একত্রে করে একটা সিঙ্গেল ইমেজ তৈরি করা হয় এবং প্রয়োজন অনুসারে ইমেজের বিশেষ অংশ প্রদর্শন করা হয়। সাধারণত একটা বাটন তৈরির ক্ষেত্রে দুইটি অবস্থা বিবেচনা করা হয়। একটা হচ্ছে সাধারণ অবস্থা এবং বাটনের উপর মাউস নিয়ে গেলে বাটনটি কেমন দেখাবে সে অবস্থা। দুইটি অবস্থার জন্য, সাধারণত দুইটি ইমেজ ব্যবহার করা হয়। কিন্তু ইমেজ স্প্রাইটস এর মাধ্যমে একটা ইমেজ ব্যবহার করেই বাটনটি তৈরি করা যাবে।

 

ইমেজ স্প্রাইটস্ এর কিছু সহজ উদাহরণ

তিনটি পৃথক ইমেজ এর পরিবর্তে, আমরা এই একক চিত্র ব্যবহার করতে পারব ("img_navsprites.gif") এর মাধমে:

CSS এর সঙ্গে, আমরা শুধু প্রয়োজনীয় ইমেজ প্রদর্শন করতে পারব।

নিম্নলিখিত উদাহরণে সিএসএস এর " img_navsprites.gif " ছবিটি কোন নির্দিষ্ট অংশ প্রদর্শন করে তা দেখব :
উদাহরণঃ


#home {
    width: 46px;
    height: 44px;
    background: url(img_navsprites.gif) 0 0;
}

উদাহরণ ব্যাখ্যা:

  • <img id="home" src="img_trans.gif"> - Src অ্যাট্রিবিউট খালি হতে পারে না, কারণ শুধুমাত্র একটি ছোট স্বচ্ছ ইমেজ সংজ্ঞায়িত করে। প্রদর্শিত ইমেজ এ CSS এর মধ্যে নির্দিষ্ট পটভূমি চিত্র হতে হবে।
  • width: 46px; height: 44px; - ইমেজ এর অংশ সংজ্ঞায়িত করার জন্য ব্যবহৃত করা হয়।
  • background: url(img_navsprites.gif) 0 0; - Defines the background image and its position (left 0px, top 0px) - ব্যাকগ্রাউন্ড ইমেজ এবং তার অবস্থান (বাম ০ 0px, শীর্ষ ০ 0px ) সংজ্ঞায়িত করার জন্য ব্যবহৃত হয়।

এটি হল ইমেজ স্প্রাইটস্ ব্যবহার করার সবচেয়ে সহজ উপায়। এখন আমরা এই প্রভাব ব্যবহার করে লিঙ্ক এবং কার্সার প্রসারিত করতে পারব।

 

ইমেজ স্প্রাইটস্ এর ন্যাভিগেশন তালিকা তৈরি

ইমেজ স্প্রাইটস্ ব্যবহার ("img_navsprites.gif") করতে প্রথমে নেভিগেশন তালিকা তৈরি করতে হবে।

আমেদের একটি HTML তালিকা ব্যবহার করা হবে, কারণ এটি একটি লিঙ্ক এবং একটি ব্যাকগ্রাউন্ড ইমেজ সমর্থন করে।

উদাহরণঃ


#navlist {
    position: relative;
}

#navlist li {
    margin: 0;
    padding: 0;
    list-style: none;
    position: absolute;
    top: 0;
}

#navlist li, #navlist a {
    height: 44px;
    display: block;
}

#home {
    left: 0px;
    width: 46px;
    background: url('img_navsprites.gif') 0 0;
}

#prev {
    left: 63px;
    width: 43px;
    background: url('img_navsprites.gif') -47px 0;
}

#next {
    left: 129px;
    width: 43px;
    background: url('img_navsprites.gif') -91px 0;
}

উদাহরণ ব্যাখ্যা:

  • #navlist {position:relative;} – আপেক্ষিক অবস্থান সেট করা হয়, ভিতরে পরম অবস্থান অনুমতি করার জন্য।
  • #navlist li {margin:0;padding:0;list-style:none;position:absolute;top:0;} - তালিকা-স্টাইল মুছে ফেলা জন্য মার্জিন এবং প্যাডিং ০0 সেট করা হয় এবং সব তালিকার আইটেম নিশ্চিত করা হয়।
  • #navlist li, #navlist a {height:44px;display:block;} - সব ছবি উচ্চতা 44 44px হয়।

 

এখন প্রতিটি নির্দিষ্ট অংশ জন্য অবস্থান বর্ণনা করবো।

  • #home {left:0px;width:46px;} - বাম সব স্থান বাম পথ এ এবং ইমেজ প্রস্থ 44 46px হয়।
  • #home {background:url(img_navsprites.gif) 0 0;} - ব্যাকগ্রাউন্ড ইমেজ এবং তার অবস্থান (বাম ০ 0px, শীর্ষ ০ 0px ) সংজ্ঞায়িত করার জন্য ব্যবহৃত হয়।
  • #prev {left:63px;width:43px;} – ডানে 63px এবং প্রস্থ 43px স্থান হবে (#home width 46px + some extra space between items)।
  • #prev {background:url('img_navsprites.gif') -47px 0;} - ডান ব্যাকগ্রাউন্ড ইমেজ 47px সংজ্ঞায়িত করার জন্য ব্যবহৃত হয় (#home width 46px + 1px line divider)
  • #next {left:129px;width:43px;}- ডানে 129px এবং প্রস্থ 43px স্থান হবে (start of #prev is 63px + #prev width 43px + extra space)
  • #next {background:url('img_navsprites.gif') -91px 0;} - ডান ব্যাকগ্রাউন্ড ইমেজ 91px সংজ্ঞায়িত করার জন্য ব্যবহৃত হয় (#home width 46px + 1px line divider + #prev width 43px + 1px line divider )

 

ইমেজ স্প্রাইটস্ এ হভের (Hover) প্রভাব

এখন আমরা আমাদের নেভিগেশন তালিকায় একটি হভের (Hover) প্রভাব যোগ করবো। হভের নির্বাচক শুধুমাত্র লিঙ্ক না, সমস্ত উপাদান, ব্যবহার করা যেতে পারে।

আমাদের নতুন ইমেজ (" img_navsprites_hover.gif ") তিন নেভিগেশন ইমেজ এর উপস্থিত রয়েছে। কারণ এটি একটি একক চিত্র না বরঞ্চ ছয়টি পৃথক ফাইল। যখন কোন লোড দেরী হবে না, কারন ব্যবহারকারী ইমেজ উপর hovers থাকে।

আমরা এখন শুধুমাত্র হভের (Hover) প্রভাব এ তিন লাইন কোড যোগ করবো:

উদাহরণঃ


#home a:hover {
    background: url('img_navsprites_hover.gif') 0 -45px;
}

#prev a:hover {
    background: url('img_navsprites_hover.gif') -47px -45px;
}

#next a:hover {
    background: url('img_navsprites_hover.gif') -91px -45px;
}

উদাহরণ ব্যাখ্যা:

  • #home a:hover {background: transparent url('img_navsprites_hover.gif') 0 -45px;} - আমরা তিনটি সব হভার ইমেজ এ 45px এর নিচে একই পটভূমি অবস্থান উল্লেখ করেছি।

সিএসএস Pseudo-classes

Pseudo-classes কি ???

Pseudo-classes ব্যবহার করা হয় একটি উপাদান এর একটি বিশেষ state নির্ধারণ করতে ।

উদাহরণস্বরূপ এটি ব্যবহার করা হয়ঃ

  • যখন user এর উপর মাউস নিয়ে নাড়াচাড়া করে তখন ভিন্ন Style প্রদর্শন করে ।
  • visited লিঙ্ক এবং unvisited লিঙ্ক ভিন্ন ভিন্ন Style প্রদর্শন করে।

 

Syntax বা শব্দবিন্যাস

pseudo-classes এর শব্দবিন্যাসঃ


selector:pseudo-class {
        property:value;
 }

 

Anchor Pseudo-classes

লিংক বিভিন্ন উপায়ে প্রদর্শিত হতে পারে:

উদাহরনঃ


/* unvisited link */
a:link {
    color: #FF0000;
}

/* visited link */
a:visited {
    color: #00FF00;
}

/* mouse over link */
a:hover {
    color: #FF00FF;
}

/* selected link */
a:active {
    color: #0000FF;
}

Note: a:link এর পরে অবশ্যই a:hover আসবে এবং a:visited আসে যাতে সিএসএস সংজ্ঞা কার্যকর করা হয় !!

CSS definition অনুযায়ী a:hover এর পরে সব সময় a:active আসবে যা গুরুত্বপূর্ণ অর্থ বহন করে ।

Pseudo-class নাম সংবেদনশীল নয় ।

 

Pseudo-classes এবং CSS Classes

Pseudo-classes , CSS classes এর সাথেও যুক্ত হতে পারেঃ

উদাহরনঃ


a.highlight:hover {
       color: #ff0000;
 }

উদাহরণস্বরূপ আপনি যখন লিঙ্ক এর উপর কার্সার রাখবেন, এর রং পরিবর্তন হবে

 

CSS - The :first-child Pseudo-class

the :first-child pseudo-class সেই সব উপাদানের সাথে মিলিত হয় যা অন্য উপাদানের first child

Note: প্রথমে :first-child IE8 এ কাজ করলেও পরবর্তীতে সেটা < !DOCTYPE> এ ঘোষণা করা হয়

 

Match the first <p> element

নিম্নলিখিত উদাহরণে, Selector যে কোনো উপাদান সাথে মেলে যেটা কিনা কোন <p> উপাদান এর First-child :

উদাহরনঃ


p:first-child {
      color: blue;
 }

 

Match the first <i> element in all <p>elements

নিম্নলিখিত উদাহরণে, selector সমস্ত <p> উপাদান এর প্রথম প্রথম উপাদানের সাথে মিলিত হয়

উদাহরনঃ


p:first-child i {
       color: blue;
 }

 

CSS - The :lang Pseudo-class

The : Lang pseudo-class আপনাকে বিভিন্ন ভাষার জন্য বিশেষ নিয়ম নির্ধারণ করতে সাহায্য করবে

Note: IE8 , :lang pseudo-class কে তখনই সাপোর্ট করবে যখন এটি < !DOCTYPE> হবে

নীচের উদাহরণে,: Lang ক্লাস = "না" lang এর সঙ্গে<p>উপাদানের জন্য উদ্ধৃতি চিহ্ন সংজ্ঞায়িত করে:

উদাহরনঃ


p i:first-child {
    color: blue;
}

 

সিএসএস কম্বিনেটরস (CSS Combinators)

শেখ মাহফুজুর রহমান

সিএসএস কম্বিনেটর সিলেক্টরগুলোর মধ্যে সম্পর্ক নির্দেশ করে। একটি সিএসএস সিলেক্টর একাধিক সিম্পল সিলেক্টর ধারণ করতে পারে। এই সিম্পল সিলেক্টরগুলোর মধ্যে আমরা একটি কম্বিনেটর যোগ করতে পারি। সিএসএস-থ্রি'তে চার প্রকার কম্বিনেটর রয়েছেঃ

  • ডিসেন্ডেন্ট সিলেক্টর
  • চাইল্ড সিলেক্টর
  • অ্যাডজাসেন্ট সিবলিং সিলেক্টর
  • জেনেরাল সিবলিং সিলেক্টর

 

ডিসেন্ডেন্ট সিলেক্টর

ডিসেন্ডেন্ট সিলেক্টর একটি নির্দিষ্ট এলিমেন্টের সবগুলো ডিসেন্ডেন্ট এলিমেন্টকে ম্যাচ বা সিলেক্ট করে। নিচের উদাহরণে <div> এলিমেন্টের ভিতরের সবগুলো <p> এলিমেন্টকে সিলেক্ট করা হয়েছেঃ


div p {
background-color: yellow;
}


 

চাইল্ড সিলেক্টর

চাইল্ড সিলেক্টর একটি নির্দিষ্ট এলিমেন্টের ঠিক ভিতরের চাইল্ড এলিমেন্টগুলোকে সিলেক্ট করে। নিচের উদাহরণে <div> এলিমেন্টের ঠিক ভিতরের অর্থাৎ এর ইমিডিয়েট সন্তান <p> (এখানে p ভিতর অন্য কোন p থাকলে সিলেক্ট হবেনা) এলিমেন্টগুলোকে সিলেক্ট করা হয়েছেঃ


div > p {
      background-color: yellow;
}

 

অ্যাডজাসেন্ট সিবলিং সিলেক্টর

অ্যাডজাসেন্ট সিবলিং সিলেক্টর একটি নির্দিষ্ট এলিমেন্টের অ্যাডজাসেন্ট সিবলিং ( যেমন <div> এর পর <p> এলিমেনটি থাকলে <p> হলো <div> এর সিবলিং বা সহোদর) এলিমেন্টগুলোকে সিলেক্ট করে। সিবলিং এলিমেন্টগুলোর অবশ্যই একই প্যারেন্ট থাকতে হবে অর্থাৎ সেগুলোকে একই এলিমেন্টের ভিতরে অন্তঃভূর্ক্ত হতে হবে এবং অ্যাডজাসেন্টের মানে হলো ঠিক পরে এসেছে। নিচের উদাহরণে <div> এলিমেন্টের ঠিক পরের সবগুলো <p> এলিমেন্টগুলোকে সিলেক্ট করা হয়েছেঃ


div + p {
background-color: yellow;
}


 

জেনারেল সিবলিং সিলেক্টর

জেনারেল সিবলিং সিলেক্টর একটি নির্দিষ্ট এলিমেন্টের সবগুলো সিবলিংকে সিলেক্ট করে। নিচের উদাহরণে

এলিমেন্টের সবগুলোএলিমেন্টকে সিলেক্ট করা হয়েছেঃ


div ~ p {
background-color: yellow;
}


সিএসএস আনুভূমিক সারি (CSS Horizontal Align)

ইন্দ্র ভূষণ শুভ

 

CSS এ, উপাদানকে আনুভূমিক ভাবে সারিবদ্ধ করার জন্য বিভিন্ন ধরনের বৈশষ্ট্য ব্যবহার করা হয়।

সারিবদ্ধ ব্লক উপাদানসমূহ

ব্লক উপাদান হলো এক ধরণের উপাদান যা ব্যবহারযোগ্য সব width ব্যবহার করে, এবং আগে ও পরে একটি লাইন বিরতি থাকে।

 

ব্লক উপাদানের উদাহরণ

সারিবদ্ধ টেক্সটের জন্য, CSS Text অধ্যায় দেখুন।
এই অধ্যায়ে আমরা দেখব কিভাবে বিন্যাসের উদ্দেশ্যে উপাদানগুলোকে আনুভূমিক ভাবে সারিবদ্ধ করা হয়।

মার্জিন বৈশিষ্ট্য ব্যবহার করে কেন্দ্রে সারিবদ্ধ করা

বাম এবং ডান মার্জিনকে "auto" সেট করে ব্লক উপদানকে কেন্দ্রে সারিবদ্ধ করা যায়।

বিশেষ দ্রষ্টব্যঃ মার্জিন ব্যবহারঃ auto; IE8 এবং পুর্বের গুলোতে কাজ করে না যতক্ষণ না !DOCTYPE ধরা হয়।

বাম এবং ডান মার্জিন সয়ংক্রিয় ধরা হয় যাতে তারা ব্যবহারযোগ্য মার্জিন সমান ভাগে বিভক্ত করে। এর ফলে কেন্দ্রীভূত উপাদান পাওয়া যায়ঃ

উদাহরণ


.center {
     margin-left: auto;
     margin-right: auto;
     width: 70%;
     background-color: #b0e0e6;
 }

নির্দেশঃ প্রস্থ যদি ১০০% হয় তবে কেন্দ্রে সারির কনো প্রভাব নেই।

 

স্থান বৈশিষ্ট্যকে ব্যবহার করে বাম এবং ডানে সারিবদ্ধ করা

পূর্ণ অবস্থানের জন্য সারিবদ্ধ উপাদানে একটি পদ্ধতি ব্যবহার কর হয়ঃ
উদাহরণ


.right {
    position: absolute;
    right: 0px;
    width: 300px;
    background-color: #b0e0e6;
 }

বিশেষ দ্রষ্টব্যঃ পূর্ণ অবস্থানের উপাদানকে স্বাভাবিক প্রবাহ থেকে সরিয়ে নেওয়া হয়, এবং উপাদানকে আবৃত করতে পারে।

 

Crossbrowser সামঞ্জস্যের সমস্যা

যখন উপাদানকে সারিবদ্ধ করা হয়,<body> উপাদানের জন্য মার্জিন এবং প্যাডিংকে পূর্বনির্ধারণ করা সর্বদাই একটি ভাল ধারণা। এটি করা হয় বিভিন্ন ব্রাউজেরের দৃশ্যমান পার্থক্য এড়ানোর জন্য।
যখন স্থান বৈশিষ্ট্য ব্যবহার করা হয় তখন IE8 এবং পুর্বের গুলোতে কিছু সমস্যা দেখা দেয়। যদি ধারক উপাদানটিতে ( এক্ষত্রে<div class="container">) নির্ধারিত প্রস্থ থাকে এবং !DOCTYPE না ধরা হয়, IE8 এবং পুর্বের গুলো ডান দিকে 17px এর একটি মার্জিন যোগ করে। এটি একটি স্ক্রলবারের জন্য সংরক্ষিত স্থান মনে করা হয়। স্থান বৈশিষ্ট্যে সবসময় !DOCTYPE সেট করতে হয়ঃ

 উদাহরন

body {
     margin: 0;
     padding: 0;
 }

.container {
     position: relative;
     width: 100%;
 }
.right {
     position: absolute;
     right: 0px;
     width: 300px;
     background-color: #b0e0e6;
 }

 

ফ্লট বৈশিষ্ট্য ব্যবহার করে বামে এবং ডানে সারিবদ্ধ করা

ফ্লট বৈশিষ্ট্যের জন্য সারিবদ্ধ উপাদানে একটি পদ্ধতি ব্যবহার কর হয়ঃ

উদাহরণ


.right {
     float: right;
     width: 300px;
     background-color: #b0e0e6;
 }

 

Crossbrowser সামঞ্জস্যের সমস্যা

যখন উপাদানকে সারিবদ্ধ করা হয়,<body> উপাদানের জন্য মার্জিন এবং প্যাডিংকে পূর্বনির্ধারণ করা সর্বদাই একটি ভাল ধারণা। এটি করা হয় বিভিন্ন ব্রাউজেরের দৃশ্যমান পার্থক্য এড়ানোর জন্য।

যখন ফ্লট বৈশিষ্ট্য ব্যবহার করা হয় তখন IE8 এবং পুর্বের গুলোতে কিছু সমস্যা দেখা দেয়। যদি উপাদানটিতে !DOCTYPE না ধরা হয়, IE8 এবং পুর্বের গুলো ডান দিকে 17px এর একটি মার্জিন যোগ করে। এটি একটি স্ক্রলবারের জন্য সংরক্ষিত স্থান মনে করা হয়। স্থান বৈশিষ্ট্যে সবসময় !DOCTYPE সেট করতে হয়ঃ

উদাহরণ


body {
     margin: 0;
     padding: 0;
 }
.right {
     float: right;
     width: 300px;
     background-color: #b0e0e6;
 }

 

সিএসএস ফ্লোট (CSS Float)

শেখ মাহফুজুর রহমান

 

সিএসএস ফ্লোট কি?

ফ্লোটের বাংলা হলো ভাসা। সিএসএস ফ্লোটের মাধ্যমে একটি এলিমেন্টকে ব্রাউজার স্ক্রিনের বাম অথবা ডান দিকে ঠেলে বা ভাসিয়ে দেয়া যায়। এতে ডকুমেন্টের অন্যান্য এলিমেন্টগুলো এর চারপাশ ঘিরে অবস্থান করে যা রেপ (wrap) নামে পরিচিত। ইমেজ নিয়ে কাজ করার ক্ষেত্রে সাধারণত ফ্লোট ব্যবহার করা হয় কিন্তু এর মূল ব্যবহার হয় পেজের লেআউট নিয়ে কাজ করার সময়।

 

কিভাবে একটি এলিমেন্ট ভাসে

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


img {
      float: right;
}

 

পাশাপাশি থাকা ফ্লোটিং এলিমেন্ট

আপনি যদি কিছু সংখ্যক ফ্লোটিং এলিমেন্টকে একটির পর আরেকটিকে রাখেন তাহলে তারা জায়গা থাকার সাপেক্ষে একটি অপরটির পাশে ফ্লোট করবে। নিচে ফ্লোট প্রপার্টি ব্যবহার করে একটি ইমেজ গ্যালারি বানানো হয়েছেঃ


.thumbnail {
     float: left;
     width: 110px;
     height: 90px;
     margin: 5px;
 }

 

ক্লিয়ার ব্যবহার করে ফ্লোট বন্ধ করা

ফ্লোটিং এলিমেন্টের পরের এলিমেন্টগুল এর চারপাশে ফ্লো বা ভেসে বেড়াবে। ক্লিয়ার প্রপার্টি কোন এলিমেন্টের কোন দিকে (ডান অথবা বাম) অন্য ফ্লোটিং এলিমেন্ট থাকতে পারবেনা তা বলে দেয়। নিচের উদাহরণে ইমেজ গ্যালারিতে টেক্সট লাইনের সাথে ক্লিয়ার প্রপার্টি ব্যবহার করা হয়েছেঃ


.text_line {
       clear: both;
 }

 

 

আরও কিছু উদাহরণঃ নিজে করুন

  • বর্ডার ও মার্জিনসহ একটি ইমেজ যা একটি প্যারাগ্রাফের ডানে ফ্লোট করেঃ একটি ইমেজকে প্যারাগ্রাফের ডানদিকে ভাসিয়ে দিন এবং ইমেজটিতে বর্ডার ও মার্জিন যোগ করুন।
  • ক্যাপশনসহ একটি ইমেজ যা ডানদিকে ফ্লোট করেঃ ক্যাপশনসহ একটি ইমেজকে ডানদিকে ফ্লোট করুন
  • একটি প্যারাগ্রাফের প্রথম অক্ষরকে বাম দিকে ফ্লোট করাঃ একটি প্যারাগ্রাফের প্রথম অক্ষরকে বাম দিকে ফ্লোট করে তাতে স্টাইল যোগ করুন।
  • হরাইজন্টাল মেন্যু তৈরি করাঃ একটি হরাইজন্টাল মেন্যু তৈরি করতে হাইপার লিংকের একটি লিস্টে ফ্লোট যোগ করুন।
  • টেবল ব্যবহার না করে হোমপেজ তৈরি করাঃ হেডার, ফুটার, লেফট কন্টেন্ট এবং মেইন কন্টেন্টসহ ফ্লোট ব্যবহার করে একটি হোমপেজ তৈরি করুন।

 

সবগুলো সিএসএস ফ্লোট প্রপার্টি

clear - ফ্লোটিং এলিমেন্টের কোন দিকে (ডান অথবা বাম) অন্যান্য এলিমেন্ট থাকতে পারবেনা তা ঠিক করে দেয়। এর ভ্যালুগুলো হলো-

left
right
both
none
inherit

 

float - একটি বক্স অর্থাৎ এলিমেন্ট ফ্লোট করবে কি করবেনা তা ঠিক করে। এর ভ্যালুগুলো হলো-

left
right
none
inherit

সিএসএস পজিশনিং (CSS Positioning)

পজিশনিং

সিএসএস এ পজিশনিং খুব গুরত্বপূর্ন একটি বিষয়। সিএসএস পজিশনিং বৈশিষ্ট্য আপনাকে একটি উপাদান (element) উপস্থাপন করার অনুমতি দেয়। এর মাধ্যমে উপাদান গুলো একটির পিছনে আরেকটি উপাদান রাখা যায়। এমন কি উপাদান এর কন্টেন্ট খুব বড় হলে কি হবে তা উল্লেখ করতে পারে।

উপাদানসমূহ উপরে, নীচে, বাম, ডান এবং বৈশিষ্ট্যাবলী ব্যবহার করে স্থান দিতে পারে। আগে অবস্থান যথাযত সেট না করা হলে, তবে এই বৈশিষ্ট্য কাজ করবে না। এরা পজিশনিং পদ্ধতির উপর নির্ভর করে ভিন্নভাবে কাজ করে। পরিষ্কার ধারনা না থাকলে অনেক কাজে গিয়ে আটকা পরে যাবে।

৪ ধরনের পজিশন পদ্ধতি আছে। নিচে সেগুলা নিয়ে আলোচনা করবো।

১. স্ট্যাটিক (static) পজিশনিং

এতে HTML উপাদান (element) ডিফল্ট স্ট্যাটিক স্থান হয়। এর স্ট্যাটিক স্থান, উপাদান সবসময় পৃষ্ঠার স্বাভাবিক প্রবাহ অনুযায়ী হয়। স্ট্যাটিক স্থান উপাদানগুলো উপরে, নীচে, বাম এবং ডান বৈশিষ্ট্য দ্বারা প্রভাবিত হয় না। এতে বাই ডিফল্ট position: static থাকে, এটার অর্থ হচ্ছে কোন পজিশনিং করা নেই। ডকুমেন্টের কোডের কারনে এলিমেন্টটি যেখানে আসে পেজেও সেখানে দেখাবে।


div.static {
    position: static;
    border: 3px solid #8AC007;
}

 

২. স্থায়ী (Fixed) পজিশনিং

কোন এলিমেন্টের পজিশন ফিক্সড করে দিলে সেটা ব্রাউজারের সাপেক্ষে স্থির হয়ে থাকবে এমনকি স্ক্রল করলেও ঐ এলিমেন্ট তার অবস্থান পরিবর্তন করবেনা।
উদাহরণঃ


div.fixed {
position: fixed;
bottom: 0;
right: 0;
width: 300px;
border: 3px solid #8AC007;
}


ফিক্সড পজিশনিং উপাদানগুলি স্বাভাবিক প্রবাহ থেকে সরিয়ে ফেলা হয়। সাধারনত সেগুলি খুঁজে পায়ও যাই না। এটার কাজ হুবহু absolute এর মতই শুধু পার্থক্য হচ্ছে এটা সবসময় ব্রাউজারের সাপেক্ষে তার অবস্থান নেবে, absolute এর মত প্যারেন্ট এলিমেন্ট এর সাপেক্ষে সরবেনা।

IE7, IE78 এ DOCTYPE না দিলে fixed পজিশনিং কাজ করবেনা।

৩. Relative পজিশনিং

Relative পজিশন করলে এলিমেন্ট তার স্বীয় অবস্থান সাপেক্ষে থাকে।
উদাহরণঃ


h2.pos_left {
    position: relative;
    left: -20px;
}

h2.pos_right {
    position: relative;
    left: 20px;
}

এটাও static এর মতই কিন্তু এখানে top, left, bottom, right এবং z-index ব্যবহার করে এলিমেন্ট কে তার অবস্থান থেকে সরানো যাবে।
উদাহরণঃ


h2.pos_top {
    position: relative;
    top: -50px;
}

Relative পজিশনিং এর উপাদান প্রায়ই একেবারে স্থান উপাদানের জন্য ধারক ব্লক হিসাবে ব্যবহার করা হয়।

৪. Absolute পজিশনিং

position: absolute দিলে এলিমেন্টটি তার immediate আগের প্যারেন্ট ডিভের সাপেক্ষে সরবে (top, left ইত্যাদি দিয়ে)। যদি কোন প্যারেন্ট ডিভ না থাকে তাহলেতথা ব্রাউজারের সর্ববাম এবং উপর থেকে হিসেব করে সরবে। উদাহরণঃ h2 { position: absolute; left: 100px; top: 150px; } Absolute পজিশন করলে এলিমেন্ট ডকুমেন্টে স্বাভাবিক অবস্থান হারিয়ে ফেলে মানে absolute উঠিয়ে দিলে এলিমেন্ট টি যেখানে দেখাবে, absolute দিলে সেখানে আর দেখাবেনা। এখানে এলিমেন্ট তার নিজের জন্য আর স্পেস ধরে রাখেনা।

ওভারল্যাপিং উপাদানসমূহ

যখন উপাদানগুলো স্বাভাবিক প্রবাহ বাইরে স্থান হয়, তখন তারা অন্যান্য উপাদানগুলো কে ওভারল্যাপ করে। z-index একটি উপাদান যা স্ট্যাক এ নির্দিষ্ট করে। একটি উপাদান এর ইতিবাচক বা নেতিবাচক স্ট্যাক অর্ডার আছে। উদাহরণঃ img { position: absolute; left: 0px; top: 0px; z-index: -1; } বৃহত্তর স্ট্যাক অর্ডার এর একটি উপাদান একটি নিম্ন স্ট্যাক অর্ডার এর একটি উপাদানের সামনে সবসময় হবে। যদি দুইটি স্থান উপাদান নির্দিষ্ট একটি z-index ছাড়া আবৃত তাহলে HTML কোড শেষ অবস্থান উপাদান এর উপরে দেখানো হবে।

 

সিএসএস ডিসপ্লে এন্ড ভিজিবিলিটি (CSS Display and Visibility)

display প্রোপার্টিজ দিয়ে ব্লক লেভেল এলিমেন্টকে ইনলাইন আবার ইনলাইন এলিমেন্ট কে ব্লক লেভেল বানানো যায়। এছাড়া এই প্রোপার্টিজ দিয়ে এলিমেন্ট অদৃশ্য করে রাখা যায়। মূলত এর ৩/৪ টি মান খুব ব্যবহার হয় বাকি মানগুলি দিয়েও অনেক কাজ হয় তবে কম ব্যবহৃত হয়ে থাকে।


navigation a {
    display: block;
    margin-left: 0.5em;
    padding: 5px;
    border: 1px solid #000;
    color: #000;
    text-decoration: none;
}

 

display:inline; দিয়ে দেখুন সব a বা এনকর ট্যাগ একলাইনে দেখাবে। এনকর হচ্ছে (<a></a>) ইনলাইন এলিমেন্ট। display:block; দেয়াতে ব্লক লেভেল এলিমেন্টের মত কাজ করেছে। এরুপ <span>, <em> ইত্যাদি ইনলাইন এলিমেন্ট বা যেকোন ইনলাইন এলিমেন্টে কে প্রয়োজনে ব্লক লেভেল করা যায় এই প্রোপার্টিজ দিয়ে।

আবার <p>, <li> ইত্যাদি ব্লক লেভেল এলিমেন্ট যেগুলি ব্রাউজারের সম্পূর্ন width নিয়ে থাকে এবং আগে পিছে লাইন ব্রেক দেয়া থাকে এসবকে ইনলাইন এর মত কাজ করাতে display:inline; করে দিতে হয়। যেমনঃ

 


li {
    display: inline;
}

 

দেখুন p কিভাবে ইনলাইন এলিমেন্টের মত কাজ করছে। display এর আরেকটা মান আছে যথা "none", এটা দিলে ঐ এলিমেন্টকে লুকিয়ে ফেলবে এবং কোন স্পেসও ধরে রাখবেনা।

জেকোয়েরি দিয়ে কাজ ফর্ম ভেলিডেশন ইত্যাদি কাজে এভাবে এলিমেন্ট অদৃশ্য করে রাখার প্রয়োজন হয়।

উপরের উদাহরনে display:inline; এর জায়গায় display:none; দিয়ে দেখুন অার কিছু দেখাবেনা।

inline-block (display:inline-block) একটা মান আছে এটা দিলে ইনলাইনের মতই কাজ করবে শুধু পার্থক্য হচ্ছে height এবং width এখন এলিমেন্ট টির জন্য কাজ করবে।

সাধারনভাবে ইনলাইন এলিমেন্টের height, width কাজ করেনা।

display:table; দিলে এলিমেন্টটি টেবিলের (<table></table>) মত আচরন করবে।

display:table-cell; দিলে এলিমেন্ট টি <td></td> এর মত কাজ করবে।

table-row দিলে <tr></tr> মত কাজ হবে।

এরুপ আরো আছে, প্রয়োগ করে দেখতে পারেন।

  1. display:inline-table;
  2. display:list-item;
  3. display:table-caption;
  4. display:table-column-group;
  5. display:table-header-group;
  6. display:table-footer-group;
  7. display:table-row-group;
  8. display:table-column;
  9. display:run-in;
  10. display:flex;

 

সি এস এস ডায়মেনশন (CSS Dimension)

CSS dimension হচ্ছে এমন একটি properties যা element এর height এবং width নিয়ন্ত্রণ করে।

height এবং width নির্ধারণ করা

এলিমেন্ট এর উচ্চতা এবং প্রসস্থতা নির্ধারণ করতে height এবং width প্রোপার্টিজ ব্যবহার করা হয়।

height এবং width সয়ংক্রিয় হতে পারে (ডিফল্ট হিসেবে ব্রাউজার উচ্চতা এবং প্রসস্থতা নির্ধারণ করে) বা px, cm ইত্যাদি দ্বারা বা শতকরা হারে (%) নির্ধারণ করে দেয়া যেতে পারে।

[<div> এলিমেন্ট এর উচ্চতা 100 pixels এবং প্রসস্থতা 500 pixels]

নোটঃ height এবং width প্রোপার্টিজ প্যাডিং, বর্ডার বা মার্জিন সমন্নয় করে না; তারা এলিমেন্ট এর প্যাডিং, বর্ডার বা মার্জিন এর ভিতরের উচ্চতা/প্রসস্থতা নির্ধারণ করে।

নিচের উদাহরণটি দেখাচ্ছে যে <div> এলিমেন্ট এর উচ্চতা 100 pixels এবং প্রসস্থতা 500 pixels


div {
    width: 500px;
    height: 100px;
    border: 3px solid #8AC007;
}

 

সর্বচ্চ প্রসস্থতা নির্ধারণ করে দেয়া

max-width প্রোপার্টি এলিমেন্ট এর সর্বচ্চ প্রসস্থতা নির্ধারণ করতে ব্যবহৃত হয়।

max-width সয়ংক্রিয় হতে পারে (ডিফল্ট হিসেবে ব্রাউজার উচ্চতা এবং প্রসস্থতা নির্ধারণ করে) বা px, cm ইত্যাদি দ্বারা বা শতকরা হারে (%) নির্ধারণ করে দেয়া যেতে পারে।

ব্রাউজার এর উইন্ডো এর প্রসস্থতা যখন  <div> এলিমেন্ট এর চেয়ে ছোট হয় তখন এটি সমস্যা সৃষ্টি করে। ব্রাউজার তখন horizontal scrollbar প্রদর্শন করে।

max-width ব্যবহার করলে ব্রাউজার এই সমস্যা ভালভাবে হ্যান্ডলিং করতে পারে।

টিপসঃ দুটি div এর মধ্যে পার্থক্য দেখার জন্য ব্রাউজারকে টেনে 500px এর চেয়ে ছোট করুন।

নোটঃ max-width  প্রোপার্টি এর মান width কে ওভাররাইড করে।

নিচের উদাহরণটি 100 pixels উচ্চতা এবং 500 pixels max-width বিশিষ্ট <div> এলিমেন্ট প্রদর্শন করে।


div {
    max-width: 500px;
    height: 100px;
    border: 3px solid #8AC007;
}

 

CSS Dimension এর সকল Properties

প্রোপার্টি বর্ণনা মান
height

auto

element এর height নির্ধারণ length

%

inherit

max-height একটি element এর maximum height নির্ধারণ none

length

%

inherit

max-width একটি element এর maximum width নির্ধারণ none

length

%

inherit

min-height একটি element এর minimum height নির্ধারণ length

%

inherit

min-width একটি element এর minimum width নির্ধারণ length

%

inherit

width একটি element এর width নির্ধারণ auto

length

%

inherit

সি এস এস প্যাডিং (CSS Padding)

CSS Padding হচ্ছে element border এবং element content এর মধ্যে ফাকা স্থান।

প্যাডিং

Padding হচ্ছে content (border এর ভিতরে থাকে) এর চারপাশে একটি ফাকা স্থান। Padding কার্যকর হয় element এর
background color দিয়ে।

top, right, bottom এবং left padding পরিবর্তন করা যায় আলাদা properties ব্যাবহার করে । একটি shorthand padding (সংক্ষিপ্ত প্যাডিং) প্রোপার্টি ব্যাবহার করে এক সাথে সব ধরনের padding এর property পরিবর্তন করা যায়।

সম্ভাব্য মান

মান বর্ণনা
length এটি fixed padding নির্দেশ করে (in pixels, pt, em, etc.)
% এটি দ্বারা containing element এর padding % এ প্রকাশ করে

 

প্যাডিং - স্বতন্ত্র দিক

CSS এর ক্ষেত্রে , ভিন্ন ভিন্ন দিক থেকে ভিন্ন ভিন্ন Padding নির্দিষ্ট করা সম্ভব

উদাহরণ


p {
    padding-top: 25px;
    padding-right: 50px;
    padding-bottom: 25px;
    padding-left: 50px;
}

 

Padding - Shorthand property (শর্টকাট পদ্ধতি)

code ছোট রাখতে, সকল padding properties কে একটি প্রোপার্টি দ্বারা নির্দিষ্ট করা সম্ভব। একেই বলে Shorthand property (শর্টকাট পদ্ধতি)।
সকল প্যাডিং প্রোপার্টি এর শর্টকাট প্রোপার্টি হচ্ছে "padding:"

উদাহরণ


p {
    padding: 25px 50px;
}

 

padding property এর একটি হতে চারটি মান থাকতে পারে।

  • padding: 25px 50px 75px 100px;
    • top padding is 25px
    • right padding is 50px
    • bottom padding is 75px
    • left padding is 100px
  • padding: 25px 50px 75px;
    • top padding is 25px
    • right and left paddings are 50px
    • bottom padding is 75px
  • padding: 25px 50px;
    • top and bottom paddings are 25px
    • right and left paddings are 50px
  • padding: 25px;
    • all four paddings are 25px

 

সকল সিএসএস প্যাডিং প্রোপার্টি

প্রোপার্টি বর্ণনা
padding সকল প্যার্ডি প্রোপার্টি এর জন্য শর্টকাট প্রোপার্টি
padding-bottom এলিমেন্ট এর নিচের দিকের প্রার্ডিং নির্দিষ্ট করা
padding-left এলিমেন্ট এর বাম পাশের প্রার্ডিং নির্দিষ্ট করা
padding-right এলিমেন্ট এর ডান পাশের প্রার্ডিং নির্দিষ্ট করা
padding-top এলিমেন্ট এর উপরের দিকের প্রার্ডিং নির্দিষ্ট করা

 

সি এস এস মার্জিন (CSS Margin)

সিএসএস মার্জিন দ্বারা elements এর চার পাশের কিছু ফাঁকা স্থান নির্দেশ করে ।

মার্জিন

Margin দ্বারা element এর চার পাশের clear স্থান (outside the border) কে নির্দেশ করে । Margin এর কোন background color নেই, এটি পুরোপুরি transparent।

Top, right, bottom, and left margin স্বাধীন ভাবে পরিবর্তন করা যায় তাদের আলাদা আলাদা properties ব্যাবহার করে।

সবধরনের margins পরিবর্তন করার জন্য সংক্ষিপ্ত margin property ও ব্যাবহার করা যায়।

সম্ভাব্য মান

মান বর্ণনা
auto এই পদ্ধতি তে browser নিজেই margin calculate করে
length margin বিশেষ ভাবে উল্লেখ করা হয় in px, pt, cm, etc. Default value is 0px
% margin বিশেষ ভাবে উল্লেখ করা হয় in percent of the width of the containing element
inherit margin টি parent element থেকে স্থানান্তরিত হওয়া নির্দেশ করা হয় inherit দ্বারা।

বিঃ দ্রঃ negative values ব্যাবহার করা সম্ভব content overlap করার জন্য।

উদাহরণ


p {
    margin-top: 100px;
    margin-bottom: 100px;
    margin-right: 150px;
    margin-left: 50px;
}

 

মার্জিন - সংক্ষিপ্ত প্রোপার্টি

code কে ছোট করতে ভিন্ন ভিন্ন margin properties কে একটি properties এর মাধ্যমে বর্ণনা করা হয়। একে Shorthand property বলে।
সকল মার্জিন প্রোপার্টি এর জন্য সংক্ষিপ্ত প্রোপার্টি হলো: "margin" ।


p {
    margin: 100px 50px;
}

margin property এক থেকে চার ধরনের মান হতে পারেঃ

  • margin: 25px 50px 75px 100px;
    • top margin is 25px
    • right margin is 50px
    • bottom margin is 75px
    • left margin is 100px
  • margin: 25px 50px 75px;
    • top margin is 25px
    • right and left margins are 50px
    • bottom margin is 75px

margin: 25px 50px;
top and bottom margins are 25px
right and left margins are 50px

margin: 25px;
all four margins are 25px

সি এস এস আউটলাইন্স (CSS Outlines)

এটি elements এর চারপাশে একটি অমীমাংসিত স্থান যা element কে "stand out" করে।
outline properties টি outline এর style, color, and width বিশেষ রূপে উল্লেখ করে।

 

সি এস এস আউটলাইন্স

Outline হচ্ছে এমন একটা line যা elements এর চারপাশে অমীমাংসিত (border এর বাইরে ) স্থান যা element কে "stand out" করে।
তবে outline property টি border property থেকে সম্পূর্ণ ভিন্ন ।

Outline টি element's dimension এর কোন অংশ নয়, element এর সম্পূর্ণ width এবং height ও outline এর width দ্বারা প্রভাবিত হয় না।

Box Outline

 

সকল সিএসএস আউটলাই প্রোপার্টি

প্রোপার্টি

বর্ণনা

মান

outline outline properties একটি declaration দ্বারা নির্ধারণ করা হয় outline-color
outline-style
outline-width
inherit
outline-color outline এর color নির্ধারণ করা হয় color_name
hex_number
rgb_number
invert
inherit
outline-style outline এর ধরন নির্ধারণ করা হয় none
dotted
dashed
solid
double
groove
ridge
inset
outset
inherit
outline-width outline এর ব্যাপকতা নির্ধারণ করা হয় thin
medium
thick
length
inherit

 

সি এস এস বর্ডার (CSS Border)

CSS border properties এলিমেন্ট এর border এর style, size, and color নির্ধারণ করতে সাহায্য করে ।

 

বর্ডার স্টাইল

Border-style property নির্ধারণ করা হয় কি ধরনের border প্রদর্শিত হবে।
বি: দ্র: Border properties এর কোন প্রভাব কাজ করবে না যদি না border-style property নির্ধারণ করা হয়।

 

বর্ডার স্টাইল মান

none কোন border না থাকা নির্দেশ করে
dotted dotted border নির্দেশ করা হয় এটি দ্বারা
dashed dashed border নির্দেশ করা হয় এটি দ্বারা
solid solid border নির্দেশ করা হয় এটি দ্বারা
double দুইটি border একত্রে নির্দেশ করা হয় এটি দ্বারা। দুটি border এর ব্যাপকতা একই থাকে যেমনটি border-width value তে দেয়া হয়।
groove 3D grooved border নির্দেশ করা হয় এটি দ্বারা। এর প্রভাব border এর color value এর উপর নির্ভর করে ।
ridge 3D ridged borderনির্দেশ করা হয় এটি দ্বারা। এর প্রভাব border এর color value এর উপর নির্ভর করে ।
inset 3D inset border নির্দেশ করা হয় এটি দ্বারা। এর প্রভাব border এর color value এর উপর নির্ভর করে ।
outset 3D outset border নির্দেশ করা হয় এটি দ্বারা। এর প্রভাব border এর color value এর উপর নির্ভর করে ।

 

বর্ডার এর প্রসস্থতা

”Border-Width” property ব্যাবহার করা হয় border এর width নির্ধারণ করার জন্য ।

Width ব্যাবহার করা হয় pixels এককে অথবা তিনটি পূর্ব নিরধারিত values: thin, medium, or thick দ্বারা।

বি: দ্র: "border-width" property একাকী ব্যাবহার করলে ইহা কাজ করবে না । তাই প্রথমে "border-style" ব্যাবহার করে border নির্ধারণ করে নিতে হয়।

উদাহরনঃ


p.one {
    border-style: solid;
    border-width: 5px;
}

p.two {
    border-style: solid;
    border-width: medium;
}

 

বর্ডার এর রঙ

Border-color property ব্যাবহার করা হয় border এর color নির্ধারণ করার জন্য। Color নির্ধারণ করার উপায়ঃ

name color value নির্ধারণ , like "red"
RGB RGB value নির্ধারণ , like "rgb(255,0,0)"
Hex shex valueনির্ধারণ, like "#ff0000"

আপনি চাইলে border color কে "transparent" হিসেবে নির্ধারণ করতে পারেন।

যদি না border color নির্ধারণ করা হয় inherited from "the color property of the element"।

বি: দ্র: "border-color" property একাকী ব্যাবহার করলে ইহা কাজ করবে না । তাই প্রথমে "border-style" ব্যাবহার করে border নির্ধারণ করে নিতে হয়।

উদাহরনঃ


p.one {
    border-style: solid;
    border-color: red;
}

p.two {
    border-style: solid;
    border-color: #98bf21;
}

 

বর্ডার - স্বতন্ত্র সাইড

CSS এর ক্ষেত্রে ভিন্ন ভিন্ন border ভিন্ন ভিন্ন পাশে ব্যাবহার করা সম্ভবঃ
উদাহরনঃ


p {
    border-top-style: dotted;
    border-right-style: solid;
    border-bottom-style: dotted;
    border-left-style: solid;
}

উপরে দেয়া উদাহরণ টি একটি একক property দিয়েও নির্ধারণ করা যায়ঃ

উদাহরনঃ


p {
    border-style: dotted solid;
}

 

border-style property এর একটি থেকে চারটি values হতে পারেঃ

  • border-style: dotted solid double dashed;
    • top border is dotted
    • right border is solid
    • bottom border is double
    • left border is dashed
  • border-style: dotted solid double;
    • top border is dotted
    • right and left borders are solid
    • bottom border is double
  • border-style: dotted solid;
    • top and bottom borders are dotted
    • right and left borders are solid
  • border-style: dotted;
    • all four borders are dotted

Border-style property উপরোক্ত উদাহরণে ব্যবহার করা হয়। যাইহোক, এটি border-width and border-color এর সাথে কাজ করতে সক্ষম।

 

Border - সংক্ষিপ্ত property

এতক্ষন আপনি উপরের উদাহরন দেখেছেন যেখানে যখন borders নির্ধারণ করতে হয় তখন অনেকগুলি properties consider করতে হয় ।

Individual border properties কে একটি property তে রুপান্তর করে code কে ছোট করা সম্ভব। একেই shorthand property বলে।

Borde property টি একটি individual border properties এর জন্য shorthand এ লিখা হয়ে থাকেঃ

  • border-width
  • border-style (required)
  • border-color

উদাহরনঃ


p {
     border: 5px solid red;
 }

 

CSS এর সকল Border Properties

প্রোপার্টি

বর্ণনা

border সকল border properties একটি declaration দ্বারা নির্ধারণ
border-bottom সকল bottom border properties একটি declaration দ্বারা নির্ধারণ
border-bottom-color bottom border এর color নির্ধারণ
border-bottom-style bottom border এর style নির্ধারণ
border-bottom-width bottom border এর width নির্ধারণ
border-color চারটি borders এর color নির্ধারণ
border-left একটি declaration দ্বারা সকল left border এর properties নির্ধারণ
border-left-color Left border এর color নির্ধারণ
border-left-style Left border এর style নির্ধারণ
border-left-width Left border এর width নির্ধারণ
border-right একটি declaration দ্বারা সকল right border এর properties নির্ধারণ
border-right-color right border এর color নির্ধারণ
border-right-style right border এর style নির্ধারণ
border-right-width right border এর width নির্ধারণ
border-style চারটি borders এর style নির্ধারণ
border-top একটি declaration দ্বারা সকল top এর properties নির্ধারণ
border-top-color top border এর color নির্ধারণ
border-top-style top border এর style নির্ধারণ
border-top-width top border এর width নির্ধারণ
border-width চারটি borders এর style নির্ধারণ

সি এস এস বক্স মডেল (CSS Box Model)

সব HTML উপাদানগুলোকে বক্স হিসাবে বিবেচনা করা যেতে পারে । CSS এ “ বক্স মডেল” শব্দটি ব্যবহার করা হয় যখন নকশা এবং বিন্যাস নিয়ে আলোচনা করা হয়।

সিএসএস বক্স মডেল মূলত চারপাশে HTML উপাদানে ঘেরা একটি বক্স, এবং এতে রয়েছে মার্জিন, সীমানা, প্যাডিং, এবং প্রকৃত বিষয়বস্তু।

বক্স মডেল আমাদেরকে উপাদানের কাছাকাছি একটি সীমানা, এবং উপাদানের মধ্যে স্থান নির্ধারণ করতে দেয়।
নীচের ইমেজটি বক্স মডেল প্রকাশ করেঃ

Box Model

বিভিন্ন অংশের ব্যাখ্যাঃ

  • বিষয়বস্তু – বক্সের বিষয়বস্তু, যেখানে টেক্সট এবং ইমেজ থাকে
  • প্যাডিং – বিষয়বস্তুর আশেপাশের এলাকা পরিস্কার করে। প্যাডিং সচ্ছ হয়
  • সীমানা – সীমানা হলো সেটা যেটা বিষয়বস্তু এবং প্যাডিং কে চারপাশ থেকে ঘিরে রাখে
  • মার্জিন – সীমানার চারপাশের এলাকা পরিস্কার করে। মার্জিন সচ্ছ

উদাহরণ


div {
    width: 300px;
    padding: 25px;
    border: 25px solid navy;
    margin: 25px;
}

 

উপদানের প্রস্থ এবং উচ্চতা

সব ব্রাউজারে একটি উপদানের পস্থ এবং উচ্চতা সঠিকভাবে সেট করার জন্য, কিভাবে বক্স মডেল কাজ করে সেটা জানতে হবে।

গুরুত্বপূর্ণঃ আপনি যখন CSS দিয়ে একটি উপদানের প্রস্থ এবং উচ্চতা সেট করবেন, আপনাকে শুধু বিষয়বস্তুর এলাকার প্রস্থ এবং উচ্চতা সেট করতে হবে। উপদানের সম্পূর্ণ আকার পরিমাপের জন্য, আপনাকে পাডিং, সীমানা এবং মার্জিনও যোগ করতে হবে।

মোট 350px প্রস্থের একটি <div>  উপাদানের স্টাইল করা যাকঃ


div {
    width: 320px;
    padding: 10px;
    border: 5px solid gray;
    margin: 0;
}

চলো অংকটা করা যাকঃ
320px (প্রস্থ)
+ 20px (বাম + ডান প্যাডিং)
+10px (বাম + ডান সীমানা)
+ 0px (বাম + ডান মার্জিন)
= 350px
উপাদানের মোট প্রস্থ এভাবে গননা করা উচিতঃ
মোট উপাদানের প্রস্থ = প্রস্থ + বাম প্যাডিং + ডান প্যাডিং + বাম সীমানা + ডান সীমানা + বাম মার্জিন + ডান মার্জিন
উপাদানের মোট প্রস্থ এভাবে গননা করা উচিতঃ
মোট উপাদানের উচ্চটা = উচ্চতা + শীর্ষ প্যাডিং + নীচের প্যাডিং + শীর্ষ সীমানা + নীচের সীমানা + শীর্ষ মার্জিন + নীচের মার্জিন

ব্রাউজার সামঞ্জস্যের ইস্যু

ইন্টারনেট এক্সপ্লোরার ৮ এবং তার আগের সংস্করণে প্রস্থ প্রপার্টিতে প্যাডিং এবং সীমানা যোগ করতে হয়।

এই সমস্যা দূর করার জন্য, HTML পেইজে < !DOCTYPE html> যোগ করতে হয়।

 

সি এস এস টেবিল (CSS Tables)

একটি HTML টেবিলকে CSS এর সাহায্যে সুন্দরভাবে উপস্থাপন করা যায়। নিম্নে একটি টেবিলের উদাহরণ দেয়া হলো:

Table

 

টেবিল বর্ডার (Borders)

CSS এ টেবিল বর্ডার যোগ করার জন্য border property ব্যবহার করতে হবে।
নিম্নে উদাহরণে <table>, <th>, এবং <td> এলিমেন্টে কালো (black) বর্ডার যোগ করা হয়েছে:


table, th, td {
   border: 1px solid black;
}

উপরোক্ত উদাহরণে টেবিলটিতে double border যুক্ত হয়েছে, কেননা টেবিল এবং <th>/<td> এলিমেন্টে উভয়ের অলাদা বর্ডার রয়েছে।

এখন, টেবিলটিতে single border দেখাতে চাইলে border-collapse property যোগ করতে হবে।

 

Collapse Borders

border-collapse property এর সাহায্যে টেবিলের বর্ডার single অথবা separated হবে তা নির্ধারণ করা হয়। নিম্নের উদাহরনে টেবিলে single বর্ডার দেখানো হয়েছে:


table {
    border-collapse: collapse;
}

table, th, td {
    border: 1px solid black;
}

 

টেবিলের Table Width এবং Height

width এবং height properties এর সাহায্যে টেবিলের Width ও Height নির্দিষ্ট করা যায়।
নিম্নের উদাহরণে টেবিলের Width 100% এবং <th> এলিমেন্টের Height 50px নির্দিষ্ট করা হয়েছে:


table {
    width: 100%;
}

th {
    height: 50px;
}

 

Horizontal Text Alignment

text-align property এর সাহায্যে Text এর Alignment left, right বা center নির্দিষ্ট করা যায়।

সাধারণত, <th> এলিমেন্টের ক্ষেত্রে Text এর Alignment থাকে center Align, <td> এলিমেন্টের ক্ষেত্রে Text এর Alignment থাকে left Align.

নিম্নের উদাহরণে <th> এলিমেন্টের ক্ষেত্রে Text এর Alignment, left এ নির্দিষ্ট করা হয়েছে:


th {
    text-align: left;
}

 

Vertical Text Alignment

vertical-align property এর সাহায্যে টেবিলে সেলের vertical alignment নির্ধারণ করা হয়।

এক্ষেত্রে সেলের Text Alignment top, bottom অথবা middle নির্ধারণ করা হয়। (<th> এবং <td> উভয় এলিমেন্ট এর জন্য)

নিম্নের উদাহরণে <td> এলিমেন্টের এর জন্য Text এর vertical Alignment, bottom এ নির্দিষ্ট করা হয়েছে:


td {
    height: 50px;
    vertical-align: bottom;
}

 

টেবিল Padding

টেবিল বর্ডার এবং content এর মাঝখানের space নির্ধারণ করার জন্য <td> and <th> এলিমেন্টে padding property ব্যবহার করা হয়।


td {
    padding: 15px;
}

 

টেবিল Color

নিচের উদাহরণে টেবিলের বর্ডার Color যোগ করার জন্য “border:” property ব্যবহার করা হয়েছে।

<th> এলিমেন্টে background color যোগ করার জন্য “background-color:” property ব্যবহার করা হয়।


table, td, th {
    border: 1px solid green;
}

th {
    background-color: green;
    color: white;
}

 

সি এস এস লিস্ট (CSS Lists)

সিএসএস লিস্ট প্রোপার্টি আপনাকে অনুমতি দেবে:

  • তালিকার ক্রম (ordered lists) এর জন্য বিভিন্ন আইটেম তালিকা চিহ্নিতকারী নির্ধারণ
  •  Unordered তালিকা এর জন্য বিভিন্ন আইটেম তালিকা চিহ্নিতকারী নির্ধারণ
  • আইটেম তালিকা চিহ্নিতকারী হিসেবে image (স্টিল ছবি) নির্ধারণ করা

 

তালিকা (list)

এইচটিএমএল এ লিস্ট তৈরীর জন্য দুই ধরনের এলিমেন্ট আছে।

  • unordered lists (<ul>) - লিস্ট আইটেম বুলেট প্রতিক দ্বারা চিহ্নিত করা হয়।
  • ordered lists (<ol>) - লিস্ট আইটেম সংখ্যা বা বর্ণ দ্বারা চিহ্নিত করা হয়।

সিএসএস দিয়ে, লিস্টকে আরো বেশি স্টাইল করা যায় এবং লিস্ট আইটেম চিহ্নিতকারী হিসেবে image ব্যবহার করা যায়।

 

বিভিন্ন লিস্ট আইটেম চিহ্নিতকারী

লিস্ট স্টাইলিং এর জন্য সিএসএস list-style-type প্রোপার্টিজ ব্যবহার করে।

যেমনঃ


ul.a {
    list-style-type: circle;
}

ul.b {
    list-style-type: square;
}

ol.c {
    list-style-type: upper-roman;
}

ol.d {
    list-style-type: lower-alpha;
}

 

কিছু মান unordered lists এর জন্য এবং কিছু ordered lists এর জন্য।

 

একটি ইমেজ বা স্টিল ছবি লিস্ট আইটেম মার্কার হিসেবে ব্যবহার

স্টিল ছবিকে লিস্ট আইটেম চিহ্নিতকারী হিসেবে ব্যবহারের জন্য লিস্ট স্টাইলিং এর জন্য list-style-image প্রোপার্টিজ ব্যবহার করা হয়।


ul {
   list-style-image: url('sqpurple.gif');
}

উপরের উদাহরণটি সকল ব্রাউজার সমানভাবে দেখায় না। ইন্টারনেট এক্সপ্লোরার (IE) এবং ওপেরাে ব্রাউজার Firefox, Chrome, and Safari থেকে ইমেজটি একটু বেশি উন্নত দেখায়।

যদি আপনি সকল ব্রাউজার এ চিহ্নিতকারী িইমেজটি সমানভাবে দেখাতে চান তাহলে নিচে একটি crossbrowser solution বর্ণনা করা হলো।

 

Crossbrowser সমাধান

নিচের উদাহরণটি সকল ব্রাউজারে চিহ্নিতকারী ছবিটি সমানভাবে দেখায়:


ul {
    list-style-type: none;
    padding: 0px;
    margin: 0px;
}

ul li {
    background-image: url(sqpurple.gif);
    background-repeat: no-repeat;
    background-position: 0px center;
    padding-left: 15px;
}

উদাহরণের বর্ণনা:

  • <ul> এর জন্য
    • লিস্ট মার্কার মুছে ফেলতে list-style-type কে none হিসেবে নির্ধারণ করুন
    • প্যাডিং এবং মার্জিন উভয় 0px হিসেবে নির্ধারণ করুন (ক্রস ব্রাউজার উপযুক্ততার জন্য)
  • সকল <li> এর ভিতরের <ul> এর জন্য
    • ইমেজ এর URL সেট করুন এবং এটিকে কেবলমাত্র একবার দেখান (কোন পুনরাবৃত্তি নয়)
    • আপনি যেখানে চান সে অনুসারে ইমেজ এর অবস্থান ঠিক করুন (left 0px and vertical value: center)
    • টেক্সটকে padding-left সহ অবস্থান ঠিক করুন

 

লিস্ট - সংক্ষিপ্ত প্রোপার্টি

list-style প্রোপার্টি হচ্চে সংক্ষিপ্ত প্রোপার্টি। এটি সকল লিস্ট প্রোপার্টি ঘোষণা করতে ব্যবহৃত হয়।


 

ul {
    list-style: square inside url("sqpurple.gif");
}

 

যখন সংক্ষিপ্ত প্রোপার্টি ব্যবহার করা হবে তখন প্রোপার্টি মান এর ক্রম হবে:

  • list-style-type - (যদি লিস্ট স্টাইল ইমেজ নির্দিষ্ট হয়, প্রোপার্টি এর মান প্রদর্শিত হবে যদি কোন কারণে ইমেজটি প্রদর্শিত না হয়)
  • list-style-position - (লিস্ট আইটেম চিহ্নিতকারীটি কন্টেন্ট এর ভেতরের দিকে নাকি বাহিরে দিকে প্রদর্শিত হবে তা নির্দিষ্ট করে)
  • list-style-image - (লিস্ট আইটেম চিহ্নিতকারী হিসেবে ইমেজকে নির্দিষ্ট করে)

যদি এদের একটি প্রোপার্টি মান অনুপস্তিত থাকে, অনুপস্থিত প্রোপার্টি এর ডিফল্ট মান (যদি থাকে) প্রবেশ করবে।

 

নিজে নিজে চেষ্টা করো

অনুশীলন ০১ঃ

তালিকাটিকে unordered লিস্ট হতে "স্কয়ার" হিসেবে স্টাইল করো এবং ক্রমিক লিল্টটিকে "upper-roman" হিসেবে সেট করো।


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<p>This is an unordered list:</p>
<ul>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Coca Cola</li>
</ul>

<p>This is an ordered list:</p>
<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Coca Cola</li>
</ol>
</body>
</html>

 

অনুশীলন ০২ঃ

"sqpurple.gif" ইমেজটিকে লিস্ট আইটেম চিহ্নিতকারী হিসেবে ব্যবহার করো।


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<p>This is an unordered list:</p>
<ul>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Coca Cola</li>
</ul>

</body>
</html>

 

 

সকলণ সিএসএস লিস্ট প্রোপার্টি

প্রোপার্টি বর্ণনা
list-style সকল প্রোপার্টিকে সেট করার জন্য একবারে ঘোষণা করা হয়।
list-style-image ইমেজকে লিস্ট আইটেম চিহ্নিতকারী হিসেবে চিহ্নিত করা হয়।
list-style-position লিস্ট আইটেম চিহ্নিতকারীটি কন্টেন্ট এর ভেতরের দিকে নাকি বাহিরে দিকে প্রদর্শিত হবে তা নির্দিষ্ট করে
list-style-type লিস্ট আইটেম চিহ্নিতকারী এর প্রকার নির্দিষ্ট করে

সি এস এস লিঙ্ক (CSS Links)

স্টাইলিং লিঙ্ক

সিএসএস প্রোপার্টি দ্বারা লিঙ্ক স্টাইল করা যেতে পারে (যেমন: color, font-family, background, ইত্যাদি)


a {
    color: #FF0000;
}

 

লিঙ্ক এর অবস্থা অনুসারে একে স্টাইল করা যেতে পারে।

লিঙ্ক এর চারটি অবস্থা রয়েছে:

  • a:link - সাধারণ, ভিজিট করা হয়নি এমন লিঙ্ক
  • a:visited - যে লিঙ্ক এ ভিজিটর ভিজিট করেছেন
  • a:hover - যে লিঙ্ক এর উপর ব্যবহারকারী মাউস রেখেছেন
  • a:active - ক্লিক করার মূহুর্তে লিঙ্ক এর অবস্থা

উদাহরণঃ


/* unvisited link */
a:link {
    color: #FF0000;
}

/* visited link */
a:visited {
    color: #00FF00;
}

/* mouse over link */
a:hover {
    color: #FF00FF;
}

/* selected link */
a:active {
    color: #0000FF;
}

 

লিঙ্ক এর বিভিন্ন অবস্থা স্টাইল করার ক্ষেত্রে ক্রমের কিছু নিয়ম রয়েছে:

  • a:hover অবশ্যই a:link এবং a:visited এর পরে আসতে হবে
  • a:active অবশ্যিই a:hover এর পরে আসতে হবে

 

প্রচলিত লিঙ্ক স্টাইল

উপরের উদাহরণে লিঙ্ক এর রঙ লিঙ্ক এর অবস্থার উপর ভিত্তি করে পরিবর্তিত হয়।

লিঙ্ক স্টাইল করার ক্ষেত্রে অন্যান্য প্রচলিত পন্থাগুলো দেখা যাক:

 

টেক্সট ডাইরেকশন

text-decoration প্রোপার্টি বেশিরভাগ ক্ষেত্রে লিঙ্ক এর আন্ডারলাইন মুছে ফেলতে ব্যবহার করা হয়:


a:link {
    text-decoration: none;
}

a:visited {
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

a:active {
    text-decoration: underline;
}

 

ব্যাকগ্রাউন্ড রঙ

background-color প্রোপার্টি ব্যাকগ্রাউন্ড এর এর রঙ নির্ধারণ করতে ব্যবহৃত হয়:


a:link {
    background-color: #B2FF99;
}

a:visited {
    background-color: #FFFF85;
}

a:hover {
    background-color: #FF704D;
}

a:active {
    background-color: #FF704D;
}

 

নিজে নিজে চেষ্টা করুন

অনুশীলন ০১ঃ

লিঙ্ক এর রঙ সবুজ হিসেবে নির্ধারণ করুন


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p><a href="http://www.w3schools.com">W3Schools.com</a></p>

</body>
</html>

 

অনুশীলন ০২ঃ

ভিজিট করা হয়নি এমন অবস্থায় লিঙ্ক এর রঙ লাল এবং ভিজিট করার পর লিঙ্ক এর রঙ নীল হিসেবে নির্ধারণ করুন।


<!DOCTYPE html>
<html>
<head>
<style>
/* mouse over link */
a:hover {
    color: black;
}

/* selected link */
a:active {
    color: green;
}
</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p><a href="http://www.w3schools.com">W3Schools.com</a></p>

</body>
</html>

 

অনুলীলন ০৩ঃ

hover এবং active লিঙ্ক অবস্থার ক্ষেত্রে ভিজিটেড এবং আনভিজিটেড লিঙ্ক হতে আন্ডারলাইন মুছে দিন


<!DOCTYPE html>
<html>
<head>
<style>
/* unvisited link */
a:link {
    
}

/* visited link */
a:visited {
    
}

/* mouse over link */
a:hover {
    
}

/* selected link */
a:active {
    
}
</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p><a href="http://www.w3schools.com">W3Schools.com</a></p>

</body>
</html>

 

অনুশীলন ০৪ঃ

ভিজিটেড এবং আনভিজিটেড লিঙ্ক এর জন্য ব্যাকগ্রাউন্ড রঙ "lightblue" নির্ধারণ করুন এবং hover এবং active লিঙ্ক অবস্থার ক্ষেত্রে ব্যাকগ্রাউন্ড রঙ হলুদ হিসেবে নির্ধারণ করুন


<!DOCTYPE html>
<html>
<head>
<style>
/* unvisited link */
a:link {
    
}

/* visited link */
a:visited {
    
}

/* mouse over link */
a:hover {
    
}

/* selected link */
a:active {
    
}
</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p><a href="http://www.w3schools.com">W3Schools.com</a></p>

</body>
</html>

 

সি এস এস ফন্ট (CSS Font)

এইচটিএমএল এলিমেন্টের ভিতরের টেক্সটের আকার, ফন্ট, গাঢ়তা ইত্যাদি পরিবর্তন এবং সাজাতে সিএসএস ফন্ট গুরত্বপূর্ল। এজন্য বেশ কিছু সিএসএস প্রোপার্টিজ আছে যেগুলির বহুল ব্যবহার প্রচলিত। নিচের সেগুলির উদাহরনসহ আলোচনা করা হলঃ

Serif এবং Sans-Serif ফন্ট এর মধ্যে পার্থক্য
Serif এবং Sans-Serif ফন্ট এর মধ্যে পার্থক্য

ফন্ট পরিবার (Font Family)

font-family প্রোপার্টিজ দিয়ে এলিমেন্টের ফন্ট কি হবে সেটা ঠিক করা যায়। একসাথে একাধিক ফন্ট কমা (,) দিয়ে দেয়া যায়। এক্ষেত্রে ব্রাউজার আগে প্রথমটি খুজবে যদি সিস্টেমে না পায় (অর্থ্যাৎ আপনার পিসিতে ফন্টটি ইনস্টল না থাকে) তখন পরেরটি দেখবে এভাবে..। যদি একটি না পায় তখন প্রথম ফন্টটি যে পরিবারের সদস্য সেই পরিবারের একটা ফন্ট প্রয়োগ করবে।

font-family: Verdana, SolaimanLipi;

font-size দিয়ে ঠিক করা যায় এলিমেন্টের ভিতরের টেক্সট এর সাইজ বা আকার কত বড় হবে। px বা em ইউনিট দিয়ে যেকোন মান দিতে পারেন যেমনঃ
font-size:18px;
বা,
font-size: 2em;

(কত em এ কত পিক্সেল এগুলি গুগলে সার্চ দিলে হাজারটা সমাধান পাবেন)

font-weight দিয়ে ফন্টটি দেখতে কত গাঢ় হবে সেটা ঠিক করা যায়। এর মান হতে পারে "normal", "bold", "bolder", "lighter", "inherit" এবং 100, 200, 300 ...900। বেশিরভাগ সময়ে লেখা একটু বোল্ড করতে bold মানটি ব্যবহৃত হয়। মানগুলি দেখেই বোঝা যায় কোনটা দিলে টেক্সট দেখতে কেমন হবে।

font-weight: bold;

font-style সাধারনত ইটালিক করার জন্য ব্যবহৃত হয় তবে এর আরো ৩টি মান দেয়া যায়ঃ

  1. font-style:italic;
  2. font-style : oblique;
  3. font-style : normal;
  4. font-style: inherit;

সি এস এস ট্যাক্সট (CSS Text)

 

text formatting

This text is styled with some of the text formatting properties. The heading uses the text-align, text-transform, and color properties. The paragraph is indented, aligned, and the space between characters is specified. The underline is removed from the "Try it yourself" link.

 

লেখা ফরম্যাটিং

ওয়েব সাইট তো কত গুলো টেক্সট আর ইমেজের সমষ্টি তাই না? লেখা গুলোকে যে যত সুন্দর করে দেখাতে পারে তার ওয়েব সাইট তত সুন্দর হয়। css আমাদের সাইটকে ভিজিটরদের কাছে সুন্দর ভাবে উপস্থাপন করতে পারে। আজ দেখব টেক্সটের যত বৈশিষ্ট / স্টাইল রয়েছে, শিরোনাম টেক্সট প্রান্তিককরণ, টেক্সট রুপান্তর, এবং রঙ বৈশিষ্ট্য ব্যবহার করে। অনুচ্ছেদের প্রান্তিককৃত, সংভৃত এবং অক্ষরের মধ্যে স্থান উল্লেখ করা হয়ে থাকে। নিম্নরেখা "এটা নিজে চেষ্টা করেন" এবং লিঙ্ক থেকে লেখা মুছে ফেলা হবে।

 

লেখার রঙ

লেখার রঙ দেওয়ার জন্য টেক্সট রঙ ব্যবহৃত হয়।

সিএসএস এর সঙ্গে, কিছু রঙ প্রায়শই উল্লেখ করা হয়:

  • একটি HEX মান: "# ff0000"
  • একটি RGB মান : "RGB (255,0,0)"
  • একটি রঙ নাম -  যেমন-"লাল"

একটি পাতার জন্য ডিফল্ট রং body সেকশন এর মধ্যে সংজ্ঞায়িত করা হয়।


body {
    color: blue;
}

h1 {
    color: #00ff00;
}

h2 {
    color: rgb(255,0,0);
}

 

টেক্সট এলাইনমেন্ট

লেখাগুলোর বিন্যাস/ align কিভাবে হবে, ডানে নাকি বামে নাকি মধ্য খানে তাই সেট করা হয়। তিন ধরনের align করা যায়, center, left, right. সাধারন ভাবে সকল লেখা গুলো left align করা থাকে। উদাহরন হিসেবে নিচের কোড গুলো একটি এইচটিএমএল ফাইলে পেস্ট করে তারপর ব্রাউজারে দেখুনঃ


h1 {
    text-align: center;
}

p.date {
    text-align: right;
}

p.main {
    text-align: justify;
}

 

টেক্সট অলংকরণ

আমরা ইংরেজী এবং বাংলা লিখি বাম থেকে ডানে, কোন কোন দেশের লেখা যেমন আরবী ডান থেকে বামে লিখতে হয়। এই ডান থেকে বামে হবে নাকি বাম থেকে ডান হবে তাই direction সিএসএস রুল দিয়ে সেট করা হয়। ডিফল্ট ভাবে সেট করা থাকে left-to-right. যেভাবে আমরা লিখি। আপনি যদি ডান থেকে বামে লেখে এমন কোন দেশের ওয়েব সাইট তৈরি করেন তাহলে আপনাকে right-to-left সেট করে দিতে হবে।

টেক্সট থেকে আনডারলাইন উঠিয়ে দিতে ব্যবহার করা হয়ঃ


a {
    text-decoration: none;
}

এটিও টেক্সট ডেকোরেশন করার জন্য ব্যবহার করা যেতে পারে।


h1 {
    text-decoration: overline;
}

h2 {
    text-decoration: line-through;
}

h3 {
    text-decoration: underline;
}

 

টেক্সট রূপান্তর

text-transform ছোট অক্ষরে বা বড় অক্ষরে লেখাগুলোকে পরিবর্তন করার কাজে ব্যবহৃত হয়। তিন প্রকার text-transform রয়েছে।

Uppercase – সকল লেখাকে বড় হাতের অক্ষরে পরিনত করবে।
Lowercase – সকল লেখাকে ছোট হাতের অক্ষরে পরিনত করবে।
Capitalize – লেখার সকল শব্দের প্রথব বর্ণ বড় হাতের হবে।

উদাহরন হিসেবে নিচের কোড গুলো একটি এইচটিএমএল ফাইলে পেস্ট করে তারপর ব্রাউজারে দেখুন।


p.uppercase {
    text-transform: uppercase;
}

p.lowercase {
    text-transform: lowercase;
}

p.capitalize {
    text-transform: capitalize;
}

 

টেক্সট ইনডেনটেশন

পত্রিকায় আমরা প্রায় সময়ই দেখি প্রথম লাইনের শব্দটির আগে একটু গ্যাফ থাকে। এইচটিএমএল ফাইলে ঐরকম গ্যাফটা দেওয়া হয় text-indent দিয়ে। উদাহরন হিসেবে নিচের কোড গুলো একটি এইচটিএমএল ফাইলে পেস্ট করে তারপর ব্রাউজারে দেখুন।


p {
text-indent: 50px;
}


 

সকল সিএসএস টেক্সট প্রোপার্টি।

পোপার্টি বর্ণনা
color লেখার রঙ নির্ধারন করার জন্য ব্যবহৃত হয়।
direction আমরা ইংরেজী এবং বাংলা লিখি বাম থেকে ডানে, কোন কোন দেশের লেখা যেমন আরবী ডান থেকে বামে লিখতে হয়। এই ডান থেকে বামে হবে নাকি বাম থেকে ডান হবে তাই direction সিএসএস রুল দিয়ে সেট করা হয়।
letter-spacing একটা বর্ণ থেকে আরেকটা বর্ণের দূরত্ব সেট করার জন্য এ property ব্যবহৃত হয়।
line-height একটা লাইনের উচ্চতা কতটুকু হবে তা এটি দিয়ে নির্ধারন করা হয়।
text-align লেখা গুলোর বিন্যাস / align কিভাবে হবে, ডানে নাকি বামে নাকি মধ্য খানে তাই সেট করা হয়।
text-decoration একটা লেখার নিচে বা উপরে বা মাঝখান দিয়ে একটা লাইন দেওয়ার জন্য ব্যহৃত হয়।
text-indent পত্রিকায় আমরা প্রায় সময়ই দেখি প্রথম লাইনের শব্দটির আগে একটু গ্যাফ থাকে। এইচটিএমএল ফাইলে ঐরকম গ্যাফটা দেওয়া হয় text-indent দিয়ে।
text-transform ছোট অক্ষরের বা বড় অক্ষরের লেখা গুলোকে পরিবর্তন করার কাজে ব্যবহৃত হয়।
word-spacing লেখার প্রতিটি শব্দের মধ্যে ফাঁক দেওয়ার কাছে ব্যহৃত হয়।

 

এগুলো ছাড়াও আরো কিছু Property রয়েছে।

 

নিজে নিজে চেষ্টা করো

অনুশীলন ০১ঃ

পেজটির টেক্সট এর রঙ লাল এবং <h1> এর টেক্সট এর রঙ নীল নির্ধারণ করোঃ


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

অনুশীলন ০২ঃ

<h1> এর এলাইনমেন্ট সেন্টার নির্ধারণ করোঃ


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

অনুশীলন ০৩ঃ

লিঙ্কটি থেকে আনডারলাইন মুছে দাওঃ


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p><a href="css_text.asp">CSS text tutorial</a></p>

</body>
</html>

 

অনুশীলণ ৪ঃ

<h1> এর লেখাকে বড় হাতের অক্ষরে এবং <p> এর লেখাকে ক্যাপিটালাইজ (প্রথম অক্ষর বড় হাতের) করঃ


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

 

অনুশীলন ০৫ঃ

প্রথম লাইনকে 20px পরিমাণ ইনটেন্ড করোঃ


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>

</body>
</html>

 

সিএসএস ব্যাকগ্রাউন্ড (CSS Background)

CSS background properties ব্যাবহার করা হয় element এর background effects নির্দেশ করার জন্য।

যে CSS properties গুলি background effects এর জন্য ব্যাবহার করা হয় তা নিম্নরুপঃ

  • background-color
  • background-image
  • background-repeat
  • background-attachment
  • background-position

 

Background Color

একটি element এর background color নির্দিষ্ট করার জন্য background-color property ব্যাবহার করা হয়।
একটি page এর background color নির্ধারণ করার উপায় নিম্নরুপঃ


body {
    background-color: #b0c4de;
}

 

CSS দ্বারা একটি color প্রায়শ এভাবে নির্ধারিত করা হয়ে থাকেঃ

  • a HEX value - like "#ff0000"
  • an RGB value - like "rgb(255,0,0)"
  • a color name - like "red"

 

নিম্নোক্ত উদাহরণে <h1>, <p>, এবং <div> এলিমেন্ট এর ভিন্ন ভিন্ন ব্যাকগ্রাউন্ড কালার রয়েছে


h1 {
    background-color: #6495ed;
}

p {
    background-color: #e0ffff;
}

div {
    background-color: #b0c4de;
}

 

Background Image

একটি element এর background হিসেবে image ব্যাবহার করতে চাইলে background-image property ব্যাবহার করতে হয়।
স্বাভাবিক ভাবে image টির পুনরাবৃত্তি ঘটে এবং এটি element অংশ কে আবৃত করে।
একটি page এর background image নিম্নরূপে নির্ধারণ করা হয়ঃ


body {
    background-image: url("paper.gif");
}

নিম্নের উদাহরণ টি text and background image এর অসম জোড় যেখানে text টি প্রায় পড়ার অযোগ্যঃ

body {
    background-image: url("bgdesert.jpg");
}

 

Background Image - Horizontally বা Vertically পুনরাবৃত্তি

স্বাভাবিক ভাবে background-image property একটি image কে horizontally (আনুভূমিক) এবং vertically (উল্লম্ব) ভাবে পুনরাবৃত্তি করে ।
কিছু কিছু image এর ক্ষেত্রে শুধু horizontal অথবা vertical পুনরাবৃত্তির প্রয়োজন হয়, তা নাহলে তাদেরকে অদ্ভুত দেখায়।


body {
    background-image: url("gradient_bg.png");
}

 

যদি image টি শুধুমাত্র horizontally পুনরাবৃত্তি হত তবে background অনেক চমৎকার দেখাত।


body {
     background-image: url("gradient_bg.png");
     background-repeat: repeat-x;
 }

 

Background Image - অবস্থান নির্ধারণ এবং কোন পুনরাবৃত্তি নয়

বিঃ দ্রঃ যখন background image ব্যাবহার করা হয় তখন এমন image ব্যাবহার করা ভাল যা text এর উপর কোন প্রভাব ফেলে না ।

Image কে পুনরাবৃত্তি না করে একবার নির্দিষ্ট করা হয় background-repeat property দ্বারা।


body {
    background-image: url("img_tree.png");
    background-repeat: no-repeat;
}

 

উপরে বর্ণীত উদাহরণ গুলিতে background image এবং text কে একই জাইগা তে দেখানো হয়েছে । এখন আমরা image এর  জাইগা পরিবর্তন করব যেন image এর জন্য text এর উপর তেমন কোন প্রভাব না পরে।

এখানে background-position property দ্বারা image এর জাইগা ঠিক করা হয়।


body {
    background-image: url("img_tree.png");
    background-repeat: no-repeat;
    background-position: right top;
}

 

Background - শর্টহ্যান্ড প্রোপার্টি

উপরের উদাহরন গুলি থেকে আপনারা দেখতে পাচ্ছেন যে background কে মনোরম করার জন্য অনেকগুলি properties ব্যাবহার করা হয়েছে।

code কে ছোট করতে সকল properties কে একটি একক properties এ রূপ দেয়া হয়। একে property সংক্ষিপ্ত হয়।

Background এর জন্য shorthand property হচ্ছে "background"।


body {
    background: #ffffff url("img_tree.png") no-repeat right top;
}

 

যখন shorthand property ব্যাবহার করা হয় তখন value গুলির ক্রম হচ্ছেঃ

  • background-color
  • background-image
  • background-repeat
  • background-attachment
  • background-position

 

যদি কোন property value না থাকে তবে কোন সমস্যা নেই কিন্তু যদি উপস্থিত থাকে তবে উপরোক্ত ক্রম মেনে চলবে।

এই উদাহরণ টি ব্যাবহার করা হয় advanced CSS এর জন্য।


<!DOCTYPE html>
<html>
<head>
<style>
body {
    margin-left: 200px;
    background: #5d9ab2 url("img_tree.png") no-repeat top left;
}

.container {
    text-align: center;
}

.center_div {
    border: 1px solid gray;
    margin-left: auto;
    margin-right: auto;
    width: 90%;
    background-color: #d0f0f6;
    text-align: left;
    padding: 8px;
}
</style>
</head>
<body>

<div class="container">
  <div class="center_div">
    <h1>Hello World!</h1>
    <p>This example contains some advanced CSS methods you may not have learned yet. 
    But, we will explain these methods in a later chapter in the tutorial.</p>
  </div>
</div>

</body>
</html>

 

নিজে নিজে চেষ্টা করো

অনুশীলন ০১ঃ

পেজ এর ব্যাকগ্রাউন্ড রঙ হিসেবে "linen" এবং <h1> এর ব্যাকগ্রাউন্ড রঙ হিসেবে "lightblue" নির্ধারণ করোঃ


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

অনুশীলন ০২ঃ

"paper.gif" নামক ছবিটি পেজ এর ব্যাকগ্রাউন্ড ছবি হিসেবে নির্ধারণ করো


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

অনুশীলন ০৩ঃ

"gradient_bg_vertical.png" নামক ছবিটি ব্যাকগ্রাউন্ড হিসেবে নির্ধারণ করো এবং এটিকে শুধুমাত্র উল্লম্বভাবে পুনরাবৃত্তি ঘটাওঃ


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

অনুশীলন ০৪ঃ
ব্যাকড্রাউন্ড ছবি কেবলমাত্র একবার উপরের দিকে ডান পাশে প্রদর্শন করো


<!DOCTYPE html>
<html>
<head>
<style>
body {
    background-image: url("img_tree.png");
}
</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

অনুলীন ০৫ঃ

ব্যাকগ্রাইন্ড প্রোপার্টি ব্যবহার করে উপরের দিকে ডান পাশে কেবলমাত্র একবার "img_tree.png" নামক ছবিটি প্রদর্শন করোঃ


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

সকল সিএসএস ব্যাকগ্রাউন্ড প্রোপার্টি

প্রোপার্টি বর্ণনা
background এক ঘোষণায় সকল ব্যাকগ্রাউন্ড বৈশিষ্ট্য নির্ধারণ করে
background-attachment একটি ব্যাকগ্রাউন্ড ইমেজ নির্দিষ্ট থাকবে বা পেজ এর সাথে স্ক্রল হবে তা নির্ধারণ করে
background-color একটি এলিমেন্ট এর ব্যাকগ্রাউন্ড রং নির্ধারণ করে
background-image একটি এলিমেন্ট জন্য ব্যাকগ্রাউন্ড ইমেজ নির্ধারণ করে
background-position একটি ব্যাকগ্রাউন্ড ইমেজ এর শুরুর অবস্থানে নির্ধারণ করে
background-repeat একটি ব্যাকগ্রাউন্ড ইমেজ কিভাবে পুনরাবৃত্তি হবে তা নির্ধারণ করে

 

 

সি এস এস সিলেক্টর (CSS Selectors)

এইচটিএমএল এর সব element গুলোকে manipulate করার জন্য সিএসএস এর বিভিন্ন selector ব্যবহার করা হয়।

id , class, type, attribute ইত্যাদির উপর ভিত্তি করে এইচটিএমএল এলিমেন্টগুলো খোঁজা বা নির্বাচন করার জন্য সিএসএস সিলেক্টর ব্যবহার করা হয়।

এলিমেন্ট সিলেক্টর

এলিমেন্ট সিলেক্টর এলিমেন্টের নামের উপর ভিত্তি করে উপাদান নির্বাচন করে।

আমরা সকল <p> এলিমেন্টগুলোকে সিলেক্ট করতে পারি এইভাবে


P {
   text-align: center;
   color: red;
 }

ID Selector

কোন ইউনিক element এর জন্য আমরা id ব্যবহার করে থাকি। একটি পেজ এর মধ্যে ID ইউনিক হওয়া উচিত। কোন element এর নির্দিষ্ট কোন ID কে কল করতে গেলে আমাদের হেস operator ব্যবহার করতে হয়।

যেসকল এইচটিএমএল এর এলিমেন্ট id="para1" তাদের সিলেন্ট করতে হয় এভোবে


#para1 {
    text-align: center;
    color: red;
}

নোটঃ আইডি এর নাম সংখ্যা দিয়ে শুরু করবেন না।

ক্লাস সিলেক্টর

class selector নির্দিষ্ট ক্লাস এট্রিবিউ এর এলিমেন্টগুলি সিলেক্ট করে।

নির্দিষ্ট ক্লাস এর এট্রিবিউটগুলো নির্বাচন করতে class selector কে ডট চিহ্ন দিয়ে সুরু করতে হয়, পরে ক্লাসের নাম উল্লেখ করতে হয়।

নিচের উদারণটি সকল এইচটিএমএল  এলিমেন্ট যেগুলোতে class="center" আছে সেগুলো সিলেক্ট করবে।


.center {
    text-align: center;
    color: red;
}

 

ক্লাস দ্বারা আপনি শুধুমাত্র নির্দিষ্ট এইচটিএমএল এলিমেন্ট প্রভাবিত হবে এভাবেও নির্দিষ্ট করে দিতে পারেন।

নিচের উদারণটি সকল এইচটিএমএল <p> এলিমেন্ট যেগুলোতে class="center" আছে সেগুলো সিলেক্ট করবে।


p.center {
    text-align: center;
    color: red;
}

নোটঃ আইডি এর নাম সংখ্যা দিয়ে শুরু করবেন না।

Grouping selector

অনেক সময় দেখা যায় অনেকগুলো element এর স্টাইল প্রায় এক রকম থাকে। যেমন
 h1 {
    text-align: center;
    color: red;
}

h2 {
    text-align: center;
    color: red;
}

p {
    text-align: center;
    color: red;
}

কোড ছোট রাখতে আপনি সিলেক্টরগুলোর গ্রুপ তৈরি করতে পারেন। 
গ্রুপ তৈরি করতে প্রতিটি সিলেক্টরকে কমা (,) দ্বারা পৃথক করতে হয়।
উদাহরণঃ

h1, h2, p {
    text-align: center;
    color: red;
}

 

 

নিজে নিজে চেষ্টা করো

 

অনুশীলন ০১ঃ

সকল <p> এলিমেন্ট এর রঙ লাল এ পরিবর্তন কর


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

অনুশীলন ০২ঃ

যে এলিমেন্টগুলোর id="para1" সেগুলোর রঙ লাল এ পরিবর্তন কর


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p id="para1">This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

অনুশীলন ০৩ঃ

যেসকল এলিমেন্ট এর ক্লাস "colortext" সেগুলোর রঙ লাল এ পরিবর্তন কর


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<p class="colortext">This is another paragraph.</p>
<p class="colortext">This is also a paragraph.</p>

</body>
</html>

 

অনুশীলন ০৪ঃ

সকল <p> এবং <h1> এলিমেন্ট এর রঙ লাল এ পরিবর্তন কর। কোড ছোট রাখতে এলিমেন্টগুলোর গ্রুপ তৈরি কর।


<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>

<h1>This is a heading</h1>
<h2>This is a smaller heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

</body>
</html>

 

সিএসএস সিন্ট্যাক্স (CSS Syntax)

Protap Chandra

CSS (সিএসএস) Syntax বা গঠনরীতি

সিএসএস স্টেটমেন্ট একটি selector (সিলেক্টর) এবং একটি declaration block (ডিক্লেয়ারেশন ব্লক) নিয়ে গঠিত। নিচের ডায়াগ্রামটি থেকে এ ব্যাপারে পরিষ্কার ধারণা পাবেন:

CSS selector

selector (সিলেক্টর) সেই HTML উপাদানের কথা ইঙ্গিত করে যা আপনি style করতে চান।
অন্যদিকে, declaration block অংশে এক বা একাধিক declaration থাকে। ডিক্লেয়ারেশন যদি একাধিক হয় তবে সেমিকোলন দিয়ে একটির সঙ্গে অন্যটিকে আলাদা করা হয়।
প্রতিটি declaration এর মধ্যে একটি property এবং একটি value থাকে। property এবং value এর মাঝে একটি কোলন (:) চিহ্ন থাকে।

CSS (সিএসএস) এর উদাহরণ

সিএসএস declaration অবশ্যই সেমিকোলনের মাধ্যমে শেষ হবে এবং ডিক্লেয়ারেশন গ্রুপকে দ্বিতীয় বন্ধনী দ্বারা আবদ্ধ করতে হবে। যেমন:


p {color:red;text-align:center;}

 

তবে সহজে বোঝার জন্য সিএসএসের প্রতিটি declaration আলাদা আলাদা লাইনেও লেখা যেতে পারে। নিচের উদাহরণে লেখা ডিক্লেয়ারেশনটি HTML এ লেখা সকল <p> উপাদানকে center-align করবে। একই সাথে টেক্সটগুলোর রং red বা লাল করবে।


p {
    color: red;
    text-align: center;
}

 

CSS Comments বা মন্তব্য:

সিএসএস কোডিং লেখার সময় কখনো কখনো মন্তব্য লেখার প্রয়োজন হয়। মন্তব্য লেখা থাকলে পরবর্তীতে এগুলো পরিবর্তন পরিবর্ধন করার সময় বুঝতে সুবিধা হয়। সিএসএসে মন্তব্য লেখার সময় বিশেষ সংকেত ব্যবহার করা হয়। ব্রাউজার HTML উপাদানগুলো সাজানোর সময় মন্তব্য চিহ্নিত অংশটুকু উপেক্ষা করে। CSS comment বা মন্তব্য শুরু হয় /* চিহ্ন দিয়ে এবং */ চিহ্ন দিয়ে শেষ হয়। মন্তব্য এক বা একাধিক লাইনে লেখা যেতে পারে। যেমন:


p {
    color: red;
    /* This is a single-line comment */
    text-align: center;
}
/* This is
a multi-line
comment */

 

 

সি এস এস পরিচিতি (CSS Introduction)

মোঃ রফিকুল ইসলাম

 

এই সিএসএস টিউটোরিয়াল এর মাধ্যমে সিএসএস কিভাবে স্টাইল নিয়ন্ত্রণ করে এবং একইসাথে একাধিক ওয়েব পেজ এ ব্যবহার করা যায় সে সম্পর্কে জানতে পারবেন।

প্রতি অধ্যায় এ উদাহরণ

এই টিউটোরিয়াল এ শত শত সিএসএস টিউটোরিয়াল সন্নিবেশ করা হয়েছে।

সিএসএস উদাহরণঃ


 body {
    background-color: #d0e4fe;
}

h1 {
    color: orange;
    text-align: center;
}

p {
    font-family: "Times New Roman";
    font-size: 20px;
}

 

সিএসএস কুইজ

সিএসএস কুইজ এর মাধ্যমে আপনার সিএসএস দক্ষতা যাচাই করুন।

আপনাকে কি আগে থেকেই জানতে হবে

শুরু করার আগে আপনাকে অবশ্যই এইচটিএমএল সম্পর্কে জানতে হবে।

সিএসএস কি?

  • সিএসএস এর এব্রিবিয়েশন হচ্ছে ক্যাসকাইডিং স্টাইল শীট (Cascading Style Sheets)
  • সিএসএস এইচটিএমএল উপাদানসময়হ কিভাবে প্রদর্শন করা হবে তা নির্ধারণ করে।
  • এইচটিএমএল ৪.০ এর একটি সমস্যা সমাধানের জন্য স্টাইল তৈরি করা হয়েছে।
  • সিএসএস প্রচুর পরিমাণে কাজ করার হাত থেকে রক্ষা করে।
  • বহিস্থিত স্টাইল শীট একটি আলাদা সিএসএস ফাইলে সংরক্ষণ করা হয়।

সিএসএস একটি বড় সমস্যার সমাধান করেছে

ডকুমেন্ট ফরমেটিং করার জন্য ট্যাগ ধারণ করার উদ্দেশ্যে এইচটিএমএল তৈরি করা হয় নাই।

এইচটিএমএল ডকুমেন্টের উপাদান বা বিষয়বস্তু নির্ধারণ করার উদ্দেশ্যেই তৈরি করা হয়েছিল। যেমন:

<h1>This is a heading</h1>

<p>This is a paragraph.</p>

যখন ট্যাগ যেমন <font> এবং কালার এট্রিবিউট এইচটিএমএল 3.2 এ যোগ করা হয়েছিল, এটি ওয়েব ডেবেলপারদের জন্য একটি দুঃস্বপ্নের সূচনা করেছিল। একটি বিশাল ওয়েব সাইট ডেবেলপ করার ক্ষেত্রে, যখন ফন্ট এবং কালার এর তথ্য প্রত্যেকটি  পৃষ্ঠায় যোগ করা হতো, তখন এটি দীর্ঘ সময় সাপেক্ষ এবং ব্যয়বহুল হয়ে উঠেছিল।

এই সমস্যা সমাধানের জন্য World Wide Web Consortium (W3C) সিএসএস তৈরি করেছে।

এইচটিএমএল 4.0 এ, এইচটিএমএল ডকুমেন্ট থেকে সকল ফরমেটিং মুছে ফেলা হতে পারে এবং আলাদা সিএসএস ফাইলে সঞ্চিত করা হতে পারে।

সিএসএস প্রচুর কাজ করা থেকে রক্ষা করে!

স্টাইল ডিফাইনেশন সাধারণত আলাদা সিএসএস ফাইলে সংরক্ষণ করা হয়।

বহিস্থিত সিএসএস ফাইল দিয়ে, আপনি শুধু একটি ফাইল পরিবর্তন করে আপনি একটি ওয়েব সাইটের চেহারা পরিবর্তন করতে পারেন।

 

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

বর্তমানে সিএসএস ৩ চলে এসেছে। এর আগের ভার্সন হল সিএসএস ২.১। তবে সিএসএস ৩ এখন অধিকাংশ ব্রাউজারে সাপোর্ট করে এবং CSS 3 ব্যবহার দিন দিন বেড়েই চলছে।