مواد ڏانھن هلو

ڪيسڪيڊنگ اسٽائل شيٽون (CSS)

کليل ڄاڻ چيڪلي، وڪيپيڊيا مان
Cascading Style Sheets (CSS)
سرڪاري لوگو کان وٺي

ڊسمبر 2024[[Category:اهي مضمون جن ۾ ممڪن طور پراڻا بيان شامل آهن from اظھاري چُڪَ: غير متوقع < عامل.]]


[1]
CSS ذريعو ڪوڊ جو مثال
فائل نالو جو واڌارو.css
انٽرنيٽ ميڊيا ٽائيپ text/css
يو ٽي آء (UTI)public.css
تيار ڪندڙWorld Wide Web Consortium (W3C)
پھريون ڀيرو جاري ٿيوسانچو:Release date and age
سافٽويئر جي تازي صورتحال
CSS 3 ڪيترن الڳ ماڊيولن جي صورت ۾ تيار ٿي رهيو آهي۔ Regular snapshots انهن جي حالت جو خلاصو ڏين ٿا۔
(سانچو:Release date and age)
فارميٽ جو قسماسٽائل شيٽ ٻولي
ڊجيٽل ڪنٽينر فارميٽ HTML عنصرن لاءِ اندازبندي جا قاعدا
شاملHTML دستاويز

Cascading Style Sheets (CSS) هڪ اسٽائل شيٽ ٻولي آهي جيڪا ڪنهن مارڪ اپ ٻولي ۾ لکيل دستاويز جي پيشڪش ۽ اندازبندي کي بيان ڪرڻ لاءِ استعمال ٿيندي آهي، جهڙوڪ HTML يا XML (جنهن ۾ XML جا مختلف لهجا جهڙوڪ SVG، MathML يا XHTML شامل آهن).[2] CSS، HTML ۽ JavaScript سان گڏ، World Wide Web جي بنيادي ٽيڪنالاجين مان هڪ آهي.[3]

CSS جو مقصد مواد ۽ ان جي پيشڪش کي الڳ ڪرڻ آهي، جنهن ۾ لي آئوٽ، رنگ ۽ فونٽ شامل آهن.[4] هي الڳ ٿيڻ ڪيترن فائدن جو سبب بڻجي ٿو، جهڙوڪ مواد جي accessibility ۾ واڌارو، پيشڪش تي وڌيڪ ڪنٽرول، ڪيترن ويب صفحن تي هڪجهڙو انداز، ۽ .css فائل کي ڪيش ڪرڻ جي ڪري صفحن جي تيز لوڊنگ.

مواد ۽ فارميٽنگ کي الڳ ڪرڻ سان ساڳئي مارڪ اپ صفحي کي مختلف اندازن سان ڏيکارڻ ممڪن ٿي وڃي ٿو، جهڙوڪ اسڪرين تي، ڇپائي ۾، آواز ذريعي (اسپيچ برائوزر يا screen reader) يا بريل ڊوائيس تي. CSS موبائل ڊوائيسن لاءِ به متبادل انداز مهيا ڪري سگهي ٿو.[5]

"Cascading" نالو ان ترجيحي نظام مان آيو آهي جيڪو اهو طئي ڪري ٿو ته جيڪڏهن هڪ ئي عنصر لاءِ ڪيترائي اعلان موجود هجن ته ڪهڙو لاڳو ٿيندو. هي ترجيحي نظام اڳڪٿي لائق هوندو آهي.

CSS جون وضاحتون World Wide Web Consortium (W3C) سنڀاليندو آهي. انٽرنيٽ ميڊيا ٽائيپ text/css کي RFC 2318 (مارچ 1998) ۾ CSS لاءِ رجسٽر ڪيو ويو. W3C CSS دستاويزن لاءِ مفت CSS validation service پڻ مهيا ڪري ٿو.[6]

HTML کان علاوه ٻيون مارڪ اپ ٻوليون به CSS کي سپورٽ ڪن ٿيون، جهڙوڪ XHTML، XML، SVG ۽ XUL.

CSS جو نحو سادو هوندو آهي ۽ مختلف اندازي خاصيتن جا نالا بيان ڪرڻ لاءِ ڪيترائي انگريزي لفظ استعمال ڪندو آهي۔

اسٽائيل شيٽ

[سنواريو]
اصل مضمون جي لاءِ ڏسو Style sheet (web development)

هڪ اسٽائيل شيٽ قاعدن جي فهرست تي مشتمل هوندي آهي۔ هر قاعدو يا rule-set هڪ يا وڌيڪ سيليڪٽرن ۽ هڪ ڊڪليئريشن بلاڪ تي مشتمل هوندو آهي۔

سيليڪٽر

[سنواريو]

CSS ۾ سيليڪٽر اهو ظاهر ڪن ٿا ته انداز مارڪ اپ جي ڪهڙي حصي تي لاڳو ٿيندو، يعني اهي خود مارڪ اپ ۾ موجود ٽيگن ۽ خاصيتن سان ميل کائي لاڳو ٿيندا آهن۔

سيليڪٽر جا قسم

[سنواريو]

سيليڪٽر هيٺين شين تي لاڳو ٿي سگهن ٿا:

  • ڪنهن مخصوص قسم جا سڀ عنصر، مثال طور ٻئي درجي جا سرناما h2
  • اهي عنصر جيڪي خاصيت ذريعي مقرر ڪيا ويا هجن، خاص طور:
    • id: دستاويز اندر هڪ منفرد سڃاڻپ ڪندڙ، جيڪو سيليڪٽر جي ٻولي ۾ هيش اڳياڙي سان ظاهر ڪيو ويندو آهي، مثال: #id
    • class: اهڙو سڃاڻپ ڪندڙ جيڪو دستاويز ۾ گهڻن عنصرن کي نشان لڳائي سگهي، ۽ ڊاٽ اڳياڙي سان ظاهر ڪيو ويندو آهي، مثال: .classname (جيتوڻيڪ "CSS class" وارو اصطلاح ڪڏهن ڪڏهن استعمال ٿيندو آهي، پر اهو صحيح اصطلاح نه آهي، ڇاڪاڻ⁠تہ element classes — جيڪي HTML class attribute سان مقرر ٿين ٿيون — مارڪ اپ جي هڪ خاصيت آهن، جيڪي برائوزرن جي CSS subsystems کان جدا آهن؛ "class" نظام جي اصليت لاءِ RDF ۽ microformats ڏسو)
  • اهي عنصر جيڪي document tree ۾ ٻين عنصرن جي نسبت سان پنهنجي جڳهه جي بنياد تي چونڊيا وڃن۔

Classes ۽ IDs case-sensitive هوندا آهن، اکرن سان شروع ٿيندا آهن، ۽ انهن ۾ اکرن سان گڏ انگ، hyphen ۽ underscore شامل ٿي سگهن ٿا۔ هڪ class ڪنهن به عنصر جي ڪيترين ئي مثالن تي لاڳو ٿي سگهي ٿي، جڏهن⁠تہ هڪ ID صرف هڪ ئي عنصر تي لاڳو ٿي سگهي ٿي۔

پسيڊو-ڪلاسز

[سنواريو]

Pseudo-classes CSS سيليڪٽرن ۾ ان مقصد لاءِ استعمال ٿيندا آهن ته formatting اهڙي معلومات جي بنياد تي به ٿي سگهي جيڪا document tree ۾ موجود نه هجي۔

هڪ گهڻو استعمال ٿيندڙ pseudo-class جو مثال :hover آهي، جيڪو مواد کي تڏهن سڃاڻي ٿو جڏهن استعمال ڪندڙ ڏسڻ لائق عنصر ڏانهن "اشارو" ڪري، عام طور ماؤس جو ڪرسر ان تي رکي۔ اهو سيليڪٽر سان هن نموني ڳنڍيو ويندو آهي: a:hover يا #elementid:hover۔

هڪ pseudo-class دستاويز جي عنصرن کي درجا بندي ڪري ٿو، جهڙوڪ :link يا :visited، جڏهن⁠تہ هڪ pseudo-element اهڙي چونڊ ڪري ٿو جيڪا جزوي عنصرن تي به مشتمل ٿي سگهي، جهڙوڪ ::first-line يا ::first-letter.[7] نوٽ ڪريو ته pseudo-elements لاءِ ٻٽي-colon notation ۽ pseudo-classes لاءِ اڪيلي-colon notation استعمال ٿيندي آهي۔

گڏيندڙ (Combinators)

[سنواريو]

ڪيترائي سادا سيليڪٽر combinators استعمال ڪري ڳنڍي سگهجن ٿا ته جيئن عنصرن کي جڳهه، عنصر جي قسم، id، class، يا انهن جي ڪنهن به ميلاپ جي بنياد تي مقرر ڪري سگهجي.[8] سيليڪٽرن جي ترتيب اهم هوندي آهي۔ مثال طور، div .myClass {color: red;} انهن سڀني عنصرن تي لاڳو ٿيندو جيڪي myClass ڪلاس وارا هجن ۽ div عنصرن جي اندر هجن، جڏهن⁠تہ .myClass div {color: red;} انهن سڀني div عنصرن تي لاڳو ٿيندو جيڪي myClass ڪلاس وارن عنصرن جي اندر هجن۔ هن کي اهڙن ڳنڍيل سڃاڻپ ڪندڙن سان نه گڏي ڏسڻ گهرجي جهڙوڪ div.myClass {color: red;} جيڪو myClass ڪلاس وارن div عنصرن تي لاڳو ٿيندو آهي۔

سيليڪٽر نحو جو خلاصو

[سنواريو]

هيٺ ڏنل جدول سيليڪٽر نحو جو خلاصو ڏئي ٿو، جنهن ۾ استعمال ۽ CSS جي اها سطح ڏيکاريل آهي جنهن ۾ اهو پهريون ڀيرو متعارف ٿيو.[9]

CSS سيليڪٽر
Patternڪهڙي شيءِ سان ملي ٿوپهريون ڀيرو
CSS سطح ۾ مقرر ٿيو
Eقسم E جو هڪ عنصر1
E:linkقسم E جو اهڙو عنصر جيڪو hyperlink جو source anchor هجي، جنهن جو حدف يا ته اڃا نه ڏٺو ويو هجي (:link) يا اڳ ۾ ڏٺو ويو هجي (:visited)1
E:visited
E:activeاستعمال ڪندڙ جي ڪجهه عملن دوران قسم E جو هڪ عنصر1
E:hover2
E:focus
E::first-lineقسم E جي عنصر جي پهرين فارميٽ ٿيل سٽ1
E::first-letterقسم E جي عنصر جو پهريون فارميٽ ٿيل اکر1
.cاهي سڀ عنصر جن ۾ class="c" هجي1
#myidاهو عنصر جنهن ۾ id="myid" هجي1
E.warningقسم E جو اهڙو عنصر جنهن جي class "warning" هجي (دستاويز جي ٻولي طئي ڪري ٿي ته class ڪيئن مقرر ٿيندي)1
E#myidقسم E جو اهڙو عنصر جنهن جي ID "myid" هجي1
.c#myidاهو عنصر جنهن ۾ class="c" ۽ ID "myid" هجي1
E Fقسم F جو اهڙو عنصر جيڪو قسم E جي عنصر جو descendant هجي1
*ڪو به عنصر2
E[foo]قسم E جو اهڙو عنصر جنهن ۾ "foo" خاصيت هجي2
E[foo="bar"]قسم E جو اهڙو عنصر جنهن جي "foo" خاصيت جي قيمت بلڪل "bar" جي برابر هجي2
E[foo~="bar"]قسم E جو اهڙو عنصر جنهن جي "foo" خاصيت جي قيمت whitespace سان جدا ٿيل قدرن جي فهرست هجي، ۽ انهن مان هڪ بلڪل "bar" جي برابر هجي2
E[foo|="en"]قسم E جو اهڙو عنصر جنهن جي "foo" خاصيت hyphen سان جدا ٿيل قدرن جي فهرست هجي ۽ جيڪا کاٻي پاسي کان "en" سان شروع ٿئي2
E:first-childقسم E جو هڪ عنصر، جيڪو پنهنجي parent جو پهريون ٻار هجي2
E:lang(fr)قسم E جو هڪ عنصر، زبان "fr" ۾ (دستاويز جي ٻولي طئي ڪري ٿي ته زبان ڪيئن مقرر ٿيندي)2
E::beforeقسم E جي عنصر جي مواد کان اڳ generated content2
E::afterقسم E جي عنصر جي مواد کان پوءِ generated content2
E > Fقسم F جو اهڙو عنصر جيڪو قسم E جي عنصر جو child هجي2
E + Fقسم F جو اهڙو عنصر جيڪو قسم E جي عنصر کان بلڪل پوءِ اچي2
E[foo^="bar"]قسم E جو اهڙو عنصر جنهن جي "foo" خاصيت جي قيمت بلڪل "bar" سان شروع ٿئي3
E[foo$="bar"]قسم E جو اهڙو عنصر جنهن جي "foo" خاصيت جي قيمت بلڪل "bar" تي ختم ٿئي3
E[foo*="bar"]قسم E جو اهڙو عنصر جنهن جي "foo" خاصيت جي قيمت ۾ "bar" ذيلي-رشتو موجود هجي3
E:rootقسم E جو هڪ عنصر، جيڪو دستاويز جي root هجي3
E:nth-child(n)قسم E جو هڪ عنصر، جيڪو پنهنجي parent جو n-هون ٻار هجي3
E:nth-last-child(n)قسم E جو هڪ عنصر، جيڪو پنهنجي parent جو n-هون ٻار هجي، پڇاڙيءَ کان ڳڻپ ڪندي3
E:nth-of-type(n)قسم E جو هڪ عنصر، جيڪو پنهنجي قسم جو n-هون ڀاءُ-ڀيڻ عنصر هجي3
E:nth-last-of-type(n)قسم E جو هڪ عنصر، جيڪو پنهنجي قسم جو n-هون ڀاءُ-ڀيڻ عنصر هجي، پڇاڙيءَ کان ڳڻپ ڪندي3
E:last-childقسم E جو هڪ عنصر، جيڪو پنهنجي parent جو آخري ٻار هجي3
E:first-of-typeقسم E جو هڪ عنصر، جيڪو پنهنجي قسم جو پهريون ڀاءُ-ڀيڻ عنصر هجي3
E:last-of-typeقسم E جو هڪ عنصر، جيڪو پنهنجي قسم جو آخري ڀاءُ-ڀيڻ عنصر هجي3
E:only-childقسم E جو هڪ عنصر، جيڪو پنهنجي parent جو اڪيلو ٻار هجي3
E:only-of-typeقسم E جو هڪ عنصر، جيڪو پنهنجي قسم جو اڪيلو ڀاءُ-ڀيڻ عنصر هجي3
E:emptyقسم E جو اهڙو عنصر جنهن جا ڪو به ٻار نه هجن (text nodes سميت)3
E:targetقسم E جو اهو عنصر جيڪو referring URI جو حدف هجي3
E:enableduser interface جو قسم E وارو عنصر جيڪو enabled هجي3
E:disableduser interface جو قسم E وارو عنصر جيڪو disabled هجي3
E:checkeduser interface جو قسم E وارو عنصر جيڪو checked هجي (مثال طور radio button يا checkbox)3
E:not(s)قسم E جو اهڙو عنصر جيڪو simple selector s سان نه ملي3
E ~ Fقسم F جو اهڙو عنصر جيڪو قسم E جي عنصر کان اڳ ۾ اچي3
E:has(s)قسم E جو اهڙو عنصر جنهن جي اندر simple selector s سان ملندڙ عنصر موجود هجي4

ڊڪليئريشن بلاڪ

[سنواريو]

هڪ declaration block قوسين جي هڪ جوڙي ({}) تي مشتمل هوندو آهي، جنهن جي اندر semicolon سان جدا ٿيل declarations جي فهرست هوندي آهي.[10]

ڊڪليئريشن

[سنواريو]

هر declaration پاڻ ۾ هڪ property، هڪ colon (:) ۽ هڪ value تي مشتمل هوندي آهي۔ پڙهڻ ۾ سهولت لاءِ declaration block، declarations، colons ۽ semi-colons جي چوڌاري اختياري white-space ٿي سگهي ٿي.[11]

خاصيتون

[سنواريو]

Properties CSS معيار ۾ مقرر ٿيل هونديون آهن۔ هر property لاءِ ممڪن قدرن جو هڪ مجموعو هوندو آهي۔ ڪجهه properties هر قسم جي عنصر تي اثرانداز ٿي سگهن ٿيون، جڏهن⁠تہ ٻيون صرف مخصوص گروهن جي عنصرن تي لاڳو ٿين ٿيون.[12][13]

Values لفظي ٿي سگهن ٿا، جهڙوڪ "center" يا "inherit"، يا عددي قدر ٿي سگهن ٿا، جهڙوڪ 200px (200 pixels)، 50vw (viewport جي ويڪر جو 50 سيڪڙو) يا 80% (parent عنصر جي ويڪر جو 80 سيڪڙو)۔

رنگن جا قدر keywords سان به بيان ڪري سگهجن ٿا (مثال: "red")، hexadecimal قدرن سان به (مثال: #FF0000، جنهن کي مختصر ڪري #F00 به لکي سگهجي ٿو)، RGB قدرن سان به 0 کان 255 جي ماپ تي (مثال: rgb(255, 0, 0))، RGBA قدرن سان به جيڪي رنگ ۽ alpha transparency ٻئي ظاهر ڪن ٿا (مثال: rgba(255, 0, 0, 0.8))، يا HSL ۽ HSLA قدرن سان به (مثال: hsl(0 100% 50%)، hsl(0 100% 50% / 0.8)).[14]

اهي غير-صفر عددي قدر جيڪي لڪيري ماپن کي ظاهر ڪن ٿا، انهن سان هڪ length unit جو هجڻ ضروري آهي، جيڪا يا ته حرفي ڪوڊ يا مخفف هوندي آهي، جيئن 200px يا 50vw؛ يا سيڪڙو جو نشان، جيئن 80%۔ ڪجهه units — cm (centimetrein (inchmm (millimetrepc (pica)؛ ۽ pt (point) — absolute آهن، جنهن جو مطلب آهي ته rendered dimension صفحي جي جوڙجڪ تي دارومدار نٿي رکي؛ جڏهن⁠تہ ٻيون — em (emex (ex) ۽ px (pixel)[وضاحت گهربل]relative آهن، جنهن جو مطلب آهي ته parent عنصر جي font size جهڙا عنصر rendered ماپ تي اثر وجهي سگهن ٿا۔ اهي اٺ units CSS 1 جي هڪ خاصيت هئا[15] ۽ پوءِ ايندڙ سڀني ترميمن ۾ برقرار رکيا ويا۔ تجويز ڪيل CSS Values and Units Module Level 3، جيڪڏهن W3C Recommendation طور منظور ڪيو ويو، ته ست وڌيڪ length units مهيا ڪندو: ch؛ Q؛ rem؛ vh؛ vmax؛ vmin؛ ۽ vw.[16]

استعمال

[سنواريو]

CSS کان اڳ، HTML دستاويزن جون تقريباً سڀئي presentational attributes خود HTML markup ۾ موجود هونديون هيون۔ يعني سڀ font colors، background styles، element alignments، borders، ۽ sizes سڌي طرح (اڪثر بار بار) HTML اندر لکڻا پوندا هئا۔ CSS ليکڪن کي اجازت ڏئي ٿو ته هن مان گهڻي معلومات ٻئي فائل، يعني style sheet، ۾ منتقل ڪن، جنهن سان HTML گهڻو سادو ٿي وڃي ٿو۔ ان کان علاوه، جيئن جيئن وڌيڪ ڊوائيس responsive web pages تائين رسائي حاصل ڪرڻ لڳا، مختلف اسڪرين سائيزون ۽ layout ظاهر ٿيڻ لڳا۔ هر ڊوائيس سائيز لاءِ جدا ويب سائيٽ ترتيب ڏيڻ مهانگو ۽ ڏينهون ڏينهن وڌيڪ ڏکيو بڻجي ويو۔ CSS جي modular نوعيت جو مطلب اهو آهي ته styles کي سائيٽ جي مختلف حصن ۾ يا مختلف سائيٽن تي ٻيهر استعمال ڪري سگهجي ٿو، جنهن سان يڪسانيت ۽ ڪارڪردگي وڌي ٿي۔

مثال طور، headings (h1 عناصر)، sub-headings (h2)، sub-sub-headings (h3) وغيره ساختي طور HTML جي ذريعي مقرر ڪيا ويندا آهن۔ ڇپائي ۽ اسڪرين تي انهن عنصرن لاءِ font، size، color ۽ emphasis جو انتخاب presentational هوندو آهي۔

CSS کان اڳ، جيڪي دستاويز لکندڙ سڀني h2 headings کي هڪجهڙا typographic خاصيتون ڏيڻ چاهيندا هئا، تن کي هر heading جي هر استعمال لاءِ HTML presentational markup کي ٻيهر لکڻو پوندو هو۔ ان سان دستاويز وڌيڪ پيچيده، وڏا، ۽ وڌيڪ غلطيءَ جو شڪار ۽ سنڀالڻ ۾ ڏکيا ٿي ويندا هئا۔ CSS presentation کي structure کان جدا ڪرڻ جي اجازت ڏئي ٿو۔ CSS رنگ، فونٽ، text alignment، size، borders، spacing، layout ۽ ٻيون ڪيتريون typographic خاصيتون مقرر ڪري سگهي ٿو، ۽ اهو ڪم اسڪرين ۽ ڇپيل ٻنهي صورتن لاءِ الڳ الڳ به ڪري سگهي ٿو۔ CSS غير-بصري styles به بيان ڪري سگهي ٿو، جهڙوڪ آواز ذريعي پڙهندڙن لاءِ reading speed ۽ emphasis۔ W3C هاڻي سڀ presentational HTML markup جي استعمال کي deprecated قرار ڏئي چڪو آهي.[17]

مثال طور، pre-CSS HTML ۾ هڪ heading عنصر کي ڳاڙهي متن سان هن طرح لکيو ويندو هو:

<h1><font color="red">Chapter 1.</font></h1>

CSS استعمال ڪندي ساڳيو عنصر HTML جي presentational attributes بدران style properties سان هن طرح لکجي سگهي ٿو:

<h1 style="color: red;">Chapter 1.</h1>

هن جا فائدا فوراً ظاهر نه ٿيندا، پر CSS جي اصل قوت تڏهن واضح ٿئي ٿي جڏهن style properties کي ڪنهن اندروني style element ۾ رکيو وڃي يا، ان کان به بهتر، ڪنهن ٻاهرين CSS فائل ۾ رکيو وڃي۔ مثال طور، فرض ڪريو دستاويز ۾ هي style element موجود هجي:

<style>
    h1 {
        color: red;
    }
</style>

ته پوءِ دستاويز جا سڀئي h1 عنصر پاڻمرادو ڳاڙها ٿي ويندا، بغير ڪنهن اضافي ڪوڊ جي۔ جيڪڏهن ليکڪ بعد ۾ چاهي ته h1 عنصرن کي نيرو ڪري، ته اهو صرف style element کي هن طرح تبديل ڪري ڪري سگهجي ٿو:

<style>
    h1 {
        color: blue;
    }
</style>

يعني ان بدران جو هر هڪ h1 عنصر کي الڳ الڳ تبديل ڪيو وڃي۔

Styles کي هيٺ بيان ڪيل نموني ڪنهن ٻاهرين CSS فائل ۾ به رکي سگهجي ٿو، ۽ پوءِ هن جهڙي نحو سان لوڊ ڪيو وڃي:

<link href="path/to/file.css" rel="stylesheet" type="text/css">

ان سان styling کي HTML دستاويز کان وڌيڪ جدا ڪيو وڃي ٿو ۽ صرف هڪ shared external CSS file کي ترميم ڪري ڪيترن ئي دستاويزن جي styling تبديل ڪرڻ ممڪن ٿي وڃي ٿو۔

ذريعا

[سنواريو]

CSS، يعني Cascading Style Sheets، ويب مواد کي انداز ڏيڻ جو هڪ لچڪدار طريقو مهيا ڪري ٿو، جتي styles جا ذريعا برائوزر جا default انداز، استعمال ڪندڙ جون ترجيحات، يا ويب ڊزائنرن جا انداز ٿي سگهن ٿا۔ اهي styles inline، HTML دستاويز جي اندر، يا وڌيڪ يڪسانيت لاءِ ٻاهرين .css فائلن ذريعي لاڳو ٿي سگهن ٿا۔ اهو نه رڳو ٻيهر استعمال ۽ آسان سنڀال ذريعي ويب ڊولپمينٽ کي سادو بڻائي ٿو، پر سائيٽ جي ڪارڪردگي پڻ بهتر ڪري ٿو، ڇاڪاڻ⁠تہ styles کي الڳ .css فائلن ۾ منتقل ڪري سگهجي ٿو جن کي برائوزر cache ڪري سگهن ٿا۔ ان کان علاوه، جيڪڏهن styles لوڊ نه ٿين يا غيرفعال ڪيا وڃن، تڏهن به هي الڳ ٿيڻ مواد جي accessibility ۽ readability برقرار رکي ٿو، جنهن سان سائيٽ سڀني استعمال ڪندڙن لاءِ، جن ۾ معذور ماڻهو به شامل آهن، قابل استعمال رهي ٿي۔ selector specificity، rule order، ۽ media types جهڙن گهڻ-رخن عنصرن جي ڪري CSS اها پڪ ڪري ٿو ته ويب سائيٽون بصري طور مربوط ۽ مختلف ڊوائيسن ۽ صارفين جي ضرورتن سان موافق رهن، ۽ ڊزائن جي ارادي ۽ user accessibility جي وچ ۾ توازن قائم رهي۔

گهڻيون اسٽائيل شيٽون

[سنواريو]

گھڻيون اسٽائيل شيٽون import ڪري سگهجن ٿيون۔ استعمال ٿيندڙ output device جي لحاظ سان مختلف styles لاڳو ڪري سگهجن ٿا؛ مثال طور، اسڪرين واري صورت ڇپيل صورت کان بلڪل مختلف ٿي سگهي ٿي، تنهنڪري ليکڪ هر medium لاءِ پيشڪش کي مناسب نموني ترتيب ڏئي سگهن ٿا۔

ڪاسڪيڊنگ (Cascading)

[سنواريو]

جنهن اسٽائل شيٽ کي سڀ کان وڌيڪ ترجيح هوندي آهي، اهو مواد جي ڏيک کي ڪنٽرول ڪندو آهي. جيڪي اعلان (Declarations) اعليٰ ترجيح واري ماخذ ۾ مقرر نه ڪيا ويا هجن، اهي گهٽ ترجيح واري ماخذ ڏانهن منتقل ٿي وڃن ٿا، جهڙوڪ يوزر ايجنٽ اسٽائل. هن عمل کي ڪاسڪيڊنگ چيو ويندو آهي۔

CSS جو هڪ مقصد اهو به آهي ته استعمال ڪندڙن کي پريزينٽيشن تي وڌيڪ ڪنٽرول مهيا ڪيو وڃي. مثال طور جيڪڏهن ڪنهن کي ڳاڙهي رنگ جي ترچين سرخين کي پڙهڻ ۾ ڏکيائي ٿئي، ته هو مختلف اسٽائل شيٽ لاڳو ڪري سگهي ٿو. برائوزر ۽ ويب سائيٽ تي دارومدار رکندي، استعمال ڪندڙ ڊيزائنرن طرفان مهيا ڪيل مختلف اسٽائل شيٽن مان چونڊ ڪري سگهي ٿو، يا سڀ اضافي اسٽائل هٽائي صرف برائوزر جي ڊيفالٽ اسٽائل سان سائيٽ ڏسي سگهي ٿو، يا صرف ڳاڙهي ترچين سرخين جي اسٽائل کي تبديل ڪري سگهي ٿو بغير ٻين خاصيتن کي تبديل ڪرڻ جي.

برائوزر ايڪسٽينشن جهڙوڪ Stylish ۽ Stylus اهڙن يوزر اسٽائل شيٽن جي انتظام لاءِ تيار ڪيا ويا آهن. وڏن منصوبن ۾ ڪاسڪيڊنگ ان ڳالهه کي طئي ڪرڻ ۾ مدد ڪندي آهي ته جڏهن ڊولپرز ٽئين ڌر جون اسٽائلون شامل ڪن ٿا ۽ انهن ۾ ترجيحن جو ٽڪراءُ پيدا ٿئي، ته ڪهڙي اسٽائل کي وڌيڪ ترجيح ڏني وڃي. ان کان علاوه ڪاسڪيڊنگ ٿيمڊ ڊيزائن ٺاهڻ ۾ پڻ مدد ڪندي آهي، جنهن سان ڊيزائنر مجموعي ترتيب کي خراب ڪرڻ کانسواءِ ڊيزائن جي مختلف پاسن کي ترتيب ڏئي سگهن ٿا.

CSS ترجيحي اسڪيم
[سنواريو]
CSS ترجيحي اسڪيم (وڏي کان ننڍي ترجيح تائين)
ترجيحCSS ماخذ جو قسموضاحت
1اهميت"!important" نشان اڳين سڀني ترجيحن کي مٽائي ڇڏيندو آهي
2InlineHTML عنصر تي سڌي طرح HTML جي "style" خاصيت ذريعي لاڳو ڪيل اسٽائل
3ميڊيا جو قسمخاصيت سڀني ميڊيا قسمن تي لاڳو ٿيندي آهي جيستائين ميڊيا لاءِ خاص CSS مقرر نه ڪئي وڃي
4يوزر طرفان مقررگهڻن برائوزرن ۾ رسائي جي سهولت طور يوزر طرفان مقرر ڪيل CSS موجود هوندي آهي
5سليڪٽر جي خاصيتوڌيڪ مخصوص سليڪٽر (#heading p) عام تعريف کي مٽائي ڇڏيندو آهي
6قاعدي جي ترتيبآخري اعلان ڪيل قاعدي کي وڌيڪ ترجيح هوندي آهي
7والدين کان وراثتجيڪڏهن خاصيت مقرر نه هجي ته اها والدين عنصر کان وراثت ۾ ملي ٿي
8HTML دستاويز ۾ CSS تعريفCSS قاعدو يا Inline اسٽائل برائوزر جي ڊيفالٽ قدر کي مٽائي ڇڏيندو آهي
9برائوزر ڊيفالٽسڀ کان گهٽ ترجيح: برائوزر جي ڊيفالٽ قدر W3C جي شروعاتي وضاحتن موجب طئي ٿيندي آهي

خصوصيت (Specificity)

[سنواريو]

خصوصيت مختلف قاعدن جي نسبتاً وزن کي ظاهر ڪري ٿي.[18] اهو طئي ڪري ٿو ته جڏهن هڪ عنصر تي ڪيترائي قاعدا لاڳو ٿي سگهن ٿا ته ڪهڙو اسٽائل استعمال ٿيندو. وضاحت موجب، سادو سليڪٽر (مثلاً H1) جي خصوصيت 1 هوندي آهي، ڪلاس سليڪٽر جي خصوصيت 1,0 هوندي آهي، ۽ ID سليڪٽر جي خصوصيت 1,0,0 هوندي آهي. ڇو ته خصوصيت جا قدر ڏهائي نظام وانگر گڏ ناهن ٿيندا، تنهن ڪري "عددن" کي ڌار ڪرڻ لاءِ ڪاما استعمال ٿيندي آهي.[19] (مثال طور جيڪڏهن CSS قاعدي ۾ 11 عنصر ۽ 11 ڪلاس هجن ته ان جي خصوصيت 11,11 هوندي، نه ته 121).

هيٺين قاعدن جا سليڪٽر هيٺ ڏنل خصوصيت پيدا ڪن ٿا:

سليڪٽرخصوصيت
h1 {color: white;}0, 0, 0, 1
p em {color: green;}0, 0, 0, 2
.grape {color: red;}0, 0, 1, 0
p.bright {color: blue;}0, 0, 1, 1
p.bright em.dark {color: yellow;}0, 0, 2, 2
#id218 {color: brown;}0, 1, 0, 0
style=" "1, 0, 0, 0

مثال

[سنواريو]

هيٺ ڏنل HTML ٽڪرو ڏسو:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <style>
            #xyz { color: blue; }
        </style>
    </head>
    <body>
        <p id="xyz" style="color: green;">خصوصيت کي ڏيکارڻ لاءِ</p>
    </body>
</html>

مٿي ڏنل مثال ۾ style خاصيت اندر ڏنل اعلان <style> عنصر جي اعلان کان وڌيڪ ترجيح رکي ٿو، ڇو ته ان جي خصوصيت وڌيڪ آهي، تنهن ڪري پيراگراف جو رنگ سائو نظر ايندو:

خصوصيت کي ڏيکارڻ لاءِ

وراثت (Inheritance)

[سنواريو]

وراثت CSS جي هڪ اهم خاصيت آهي؛ اها ابن ڏاڏن ۽ اولاد جي لاڳاپي تي ٻڌل هوندي آهي. وراثت اهو طريقو آهي جنهن ذريعي خاصيتون صرف هڪ عنصر تي نه پر ان جي اولادي عنصرن تي به لاڳو ٿينديون آهن.[18] وراثت دستاويزي وڻ (Document tree) تي دارومدار رکي ٿي، جيڪو صفحي ۾ XHTML عنصرن جي ترتيب کي ظاهر ڪري ٿو.

عام طور تي اولادي عنصر متن سان لاڳاپيل خاصيتون وراثت ۾ حاصل ڪندا آهن، پر باڪس سان لاڳاپيل خاصيتون وراثت ۾ منتقل ناهن ٿينديون. جيڪي خاصيتون وراثت ۾ منتقل ٿي سگهن ٿيون انهن ۾ رنگ، فونٽ، حرفن جي وچ ۾ فاصلو، لائن اوچائي، لسٽ اسٽائل، متن جي ترتيب، متن جي شروعاتي خالي جاءِ، متن جي تبديلي، ڏيک (visibility)، وائيٽ اسپيس، ۽ لفظن جي وچ ۾ فاصلو شامل آهن. جڏهن ته پس منظر، بارڊر، ڊسپلي، فلوٽ ۽ ڪليئر، اوچائي ۽ ويڪر، مارجن، گهٽ ۽ وڌ اوچائي يا ويڪر، آئوٽ لائين، اوور فلو، پيڊنگ، پوزيشن، ٽيڪسٽ ڊيڪوريشن، عمودي ترتيب، ۽ z-index وراثت ۾ منتقل ناهن ٿيندا.

وراثت جي مدد سان هڪ ئي خاصيت کي بار بار لکڻ کان بچي سگهجي ٿو، جنهن سان CSS مختصر ۽ سادي ٿي وڃي ٿي.

CSS ۾ وراثت، ڪلاس بنياد واري پروگرامنگ ٻولين واري وراثت جهڙي ناهي، جتي ڪلاس B کي "ڪلاس A جهڙو، پر ڪجهه تبديلين سان" بيان ڪري سگهجي ٿو.[20] CSS ۾ عنصر کي "ڪلاس A سان، پر تبديلي سان" اسٽائل ڪري سگهجي ٿو، پر اهڙو نئون ڪلاس B ٺاهي نٿو سگهجي جيڪو ڪيترن عنصرن تي استعمال ڪري سگهجي بغير تبديليون ٻيهر لکڻ جي.

مثال

[سنواريو]

هيٺ ڏنل اسٽائل شيٽ ڏسو:

p {
   color: pink;
}

فرض ڪريو هڪ p عنصر اندر زور ڏيڻ وارو عنصر (<em>) موجود آهي:

<p>
   هي مثال <em>وراثت</em> کي ظاهر ڪري ٿو
</p>

جيڪڏهن em عنصر لاءِ رنگ مقرر نه ڪيو ويو هجي ته "وراثت" لفظ p عنصر جو رنگ وراثت ۾ حاصل ڪندو. ڇاڪاڻ ته p جو رنگ گلابي آهي، تنهن ڪري em جو رنگ پڻ گلابي ٿيندو:

هي مثال وراثت کي ظاهر ڪري ٿو

خالي جڳهه (Whitespace)

[سنواريو]

خاصيتن ۽ سليڪٽرن جي وچ ۾ خالي جڳهه کي نظرانداز ڪيو ويندو آهي. هي ڪوڊ:

body{overflow:hidden;background:#000000;background-image:url(images/bg.gif);background-repeat:no-repeat;background-position:left top;}

هن ڪوڊ جي برابر آهي:

body {
   overflow: hidden;
   background-color: #000000;
   background-image: url(images/bg.gif);
   background-repeat: no-repeat;
   background-position: left top;
}

انڊينٽيشن

[سنواريو]
اصل مضمون جي لاءِ ڏسو Indentation style

CSS کي پڙهڻ ۾ آسان بڻائڻ لاءِ عام طريقو اهو آهي ته هر خاصيت کي نئين قطار تي لکيو وڃي. پڙهڻ جي سهولت کان علاوه شارٽ هينڊ خاصيتون استعمال ڪري ڪوڊ کي مختصر ۽ تيز بڻائي سگهجي ٿو.[21]

body {
   overflow: hidden;
   background: #000 url(images/bg.gif) no-repeat left top;
}

ڪڏهن ڪڏهن هڪ خاصيت جا ڪيترائي قدر الڳ قطارن ۾ لکيا ويندا آهن:

@font-face {
   font-family: 'Comic Sans';
   font-size: 20px;
   src: url('first.example.com'),
        url('second.example.com'),
        url('third.example.com'),
        url('fourth.example.com');
}

پوزيشننگ (Positioning)

[سنواريو]

CSS 2.1 ٽن پوزيشننگ اسڪيمز کي بيان ڪري ٿو:

عام وهڪرو (Normal flow)
Inline عنصر متن جي حرفن وانگر هڪ قطار ۾ ترتيب ڏنا ويندا آهن جيستائين جڳهه ختم نه ٿئي، پوءِ نئين قطار شروع ٿيندي. Block عنصر عمودي ترتيب ۾ رکيا ويندا آهن، جهڙوڪ پيراگراف يا بلٽ لسٽ جا عنصر.
فلوٽ (Floats)
فلوٽ ٿيل عنصر کي عام وهڪري مان ڪڍي کاٻي يا ساڄي پاسي وڌ ۾ وڌ جڳهه تائين منتقل ڪيو ويندو آهي. پوءِ ٻيو مواد ان جي چوڌاري وهندو آهي.
مطلق پوزيشننگ
اهڙو عنصر عام وهڪري جو حصو نه هوندو آهي ۽ ٻين عنصرن تي اثر نه ڪندو آهي. اهو پنهنجي ڪنٽينر اندر مقرر ڪيل جڳهه تي آزادانه طور رکيو ويندو آهي.[22]

پوزيشن يا خاصيت

[سنواريو]

position خاصيت جا پنج ممڪن قدر آهن. جيڪڏهن عنصر جي پوزيشن static کان مختلف هجي ته پوءِ top، bottom، left ۽ right خاصيتون ان جي جڳهه طئي ڪرڻ لاءِ استعمال ٿينديون آهن. جيڪڏهن پوزيشن static هجي ته اهي خاصيتون اثرانداز نه ٿينديون.

اسٽيٽڪ
[سنواريو]

هي ڊيفالٽ قدر آهي، جنهن ۾ عنصر عام وهڪري ۾ رکيو ويندو آهي.

لاڳاپيل
[سنواريو]

عنصر کي عام وهڪري ۾ رکيو وڃي ٿو، پوءِ ان کي ان جڳهه کان ٿورو منتقل ڪيو وڃي ٿو. ٻيا عنصر اهڙي طرح ترتيب ڏنا ويندا آهن ڄڻ اهو منتقل نه ٿيو هجي.

مطلق
[سنواريو]

هي مطلق پوزيشننگ بيان ڪري ٿو. عنصر پنهنجي ويجهي غير-static ابن ڏاڏي عنصر جي حوالي سان رکيو ويندو آهي.

مقرر
[سنواريو]

عنصر اسڪرين تي مقرر جڳهه تي رکيو ويندو آهي، ۽ صفحي جي اسڪرول ٿيڻ سان به پنهنجي جڳهه تبديل نه ڪندو.[22]

فلوٽ ۽ صاف

[سنواريو]

float خاصيت جا ٽي قدر ٿي سگهن ٿا. جيڪي عنصر absolute يا fixed هجن، اهي فلوٽ نٿا ٿي سگهن. ٻيا عنصر عام طور تي فلوٽ ٿيل عنصرن جي چوڌاري وهندا آهن، جيستائين clear خاصيت انهن کي روڪي نه.

left
عنصر کاٻي پاسي فلوٽ ڪندو آهي، ٻيا عنصر ان جي ساڄي پاسي وهندا آهن.
right
عنصر ساڄي پاسي فلوٽ ڪندو آهي، ٻيا عنصر ان جي کاٻي پاسي وهندا آهن.
clear
عنصر کي فلوٽ ٿيل عنصرن جي هيٺان آڻڻ لاءِ استعمال ٿيندو آهي (clear:left، clear:right يا clear:both).[22][23]

تاريخ

[سنواريو]
هاڪون ويئم لي، اوپيرا سافٽويئر ڪمپني جو چيف ٽيڪنيڪل آفيسر ۽ CSS ويب معيارن جو گڏيل خالق

CSS پهريون ڀيرو هاڪون ويئم لي طرفان 10 آڪٽوبر 1994ع تي تجويز ڪيو ويو.[24] ان وقت لي، ٽم برنرز لي سان گڏ CERN ۾ ڪم ڪري رهيو هو.[25] ساڳئي وقت ويب لاءِ ٻيون به ڪيتريون ئي اسٽائل شيٽ ٻوليون تجويز ڪيون ويون، ۽ عوامي ميلنگ لسٽن توڙي ورلڊ وائڊ ويب ڪنسورشيم جي اندر ٿيندڙ بحثن جي نتيجي ۾ 1996ع ۾ پهرين W3C CSS Recommendation (CSS1)[26] جاري ڪئي وئي. خاص طور تي برٽ بوس جي هڪ تجويز گهڻي اثرائتي ثابت ٿي؛ هو CSS1 جو گڏيل مصنف بڻيو ۽ CSS جو گڏيل خالق پڻ سمجهيو وڃي ٿو.[27]

اسٽائل شيٽون ڪنهن نه ڪنهن صورت ۾ 1980ع واري ڏهاڪي کان وٺي، جڏهن معياري عام مارڪ اپ ٻولي (SGML) وجود ۾ آئي، استعمال ٿينديون رهيون آهن، ۽ CSS کي ويب لاءِ اسٽائل شيٽون مهيا ڪرڻ جي مقصد سان تيار ڪيو ويو.[28] ويب اسٽائل شيٽ ٻولي لاءِ هڪ گهرج اها هئي ته اسٽائل شيٽون ويب تي مختلف ماخذن مان اچي سگهن. انهيءَ ڪري موجوده اسٽائل شيٽ ٻوليون جهڙوڪ DSSSL ۽ FOSI مناسب نه هيون. ان جي ابتڙ CSS هڪ ئي دستاويز جي ڏيک کي ڪيترين ئي اسٽائل شيٽن جي ذريعي "ڪاسڪيڊنگ" انداز سان متاثر ڪرڻ جي اجازت ڏني.[28]

جيئن جيئن HTML وڌندو ويو، اهو ويب ڊولپرن جي گهرجن کي پورو ڪرڻ لاءِ وڌيڪ اندازياتي صلاحيتون پاڻ ۾ شامل ڪندو ويو. هن ارتقا ڊزائنر کي سائيٽ جي ڏيک تي وڌيڪ ڪنٽرول ڏنو، پر ان جي قيمت طور HTML وڌيڪ پيچيده ٿي ويو. ويب برائوزر جي عملدرآمد ۾ فرق، جهڙوڪ ViolaWWW ۽ WorldWideWeb،[29] هڪجهڙي سائيٽ ڏيک کي ڏکيو بڻايو، ۽ استعمال ڪندڙن وٽ به ويب مواد جي ڏيک بابت گهٽ ڪنٽرول رهيو. ٽم برنرز لي پاران تيار ڪيل برائوزر/ايڊيٽر ۾ اسٽائل شيٽون پروگرام اندر ئي hard-coded هيون. تنهن ڪري اهي اسٽائل شيٽون ويب تي موجود دستاويزن سان ڳنڍي نه ٿيون سگهجن.[25] رابرٽ ڪيليائو، جيڪو پڻ CERN سان لاڳاپيل هو، ساخت کي ڏيک کان الڳ ڪرڻ چاهيو ٿي ته جيئن مختلف اسٽائل شيٽون ڇپائي، اسڪرين تي ڏيک، ۽ ايڊيٽرن لاءِ مختلف پريزينٽيشن بيان ڪري سگهن.[29]

ويب جي پريزينٽيشن صلاحيتن کي بهتر بنائڻ ويب برادري جي ڪيترن ماڻهن جي دلچسپي جو موضوع هو ۽ www-style ميلنگ لسٽ تي نون مختلف اسٽائل شيٽ ٻولين جون تجويزون ڏنيون ويون.[28] انهن نون تجويزن مان ٻه خاص طور تي ان شيءِ تي اثرانداز ٿيون جيڪا پوءِ CSS بڻجي: Cascading HTML Style Sheets[24] ۽ Stream-based Style Sheet Proposal (SSP).[27][30] ٻه برائوزر شروعاتي تجويزن لاءِ آزمائشي ميدان طور ڪم آيا؛ لي يو لا فون سان گڏجي ڊيو ريگٽ جي Arena برائوزر ۾ CSS لاڳو ڪئي.[31][32][33] برٽ بوس پنهنجي SSP تجويز کي Argo برائوزر ۾ لاڳو ڪيو.[27] ان کان پوءِ لي ۽ بوس گڏجي CSS معيار تي ڪم ڪيو (نالي مان 'H' هٽايو ويو، ڇو ته اهي اسٽائل شيٽون HTML کان سواءِ ٻين مارڪ اپ ٻولين تي به لاڳو ٿي سگهيون ٿيون).[25]

لي جي تجويز 1994ع ۾ شڪاگو، ايليناءِ ۾ ٿيل "Mosaic and the Web" ڪانفرنس (جيڪا پوءِ WWW2 سڏجڻ لڳي) ۾ پيش ڪئي وئي، ۽ 1995ع ۾ ٻيهر برٽ بوس سان گڏ پيش ڪئي وئي.[25] ان وقت تائين W3C اڳ ئي قائم ٿي چڪي هئي ۽ هن CSS جي ترقي ۾ دلچسپي ورتي. هن مقصد لاءِ اسٽيون پيمبرٽن جي صدارت هيٺ هڪ ورڪشاپ منعقد ڪئي وئي. نتيجي طور W3C، HTML editorial review board (ERB) جي deliverables ۾ CSS تي ڪم شامل ڪيو. لي ۽ بوس هن منصوبي جي هن پهلوءَ تي بنيادي ٽيڪنيڪل عملي طور ڪم ڪيو، جڏهن ته ٻين ميمبرن، جن ۾ Microsoft جو ٿامس ريئرڊن به شامل هو، پڻ حصو ورتو. آگسٽ 1996ع ۾ Netscape Communication Corporation هڪ متبادل اسٽائل شيٽ ٻولي JavaScript Style Sheets (JSSS) جي نالي سان پيش ڪئي.[25] اها specification ڪڏهن مڪمل نه ٿي ۽ هاڻي متروڪ سمجهي وڃي ٿي.[34] 1996ع جي آخر تائين CSS سرڪاري ٿيڻ لاءِ تيار ٿي چڪي هئي، ۽ CSS level 1 Recommendation ڊسمبر ۾ شايع ڪئي وئي.

HTML، CSS، ۽ DOM جي ترقي هڪ ئي گروهه، HTML Editorial Review Board (ERB)، اندر ٿي رهي هئي. 1997ع جي شروعات ۾ ERB کي ٽن ورڪنگ گروپن ۾ ورهايو ويو: HTML Working Group، جنهن جي صدارت W3C جي ڊين ڪنولي ڪئي؛ DOM Working Group، جنهن جي صدارت SoftQuad جي Lauren Wood ڪئي؛ ۽ CSS Working Group، جنهن جي صدارت W3C جي ڪرس للي ڪئي.

CSS Working Group انهن مسئلن تي ڪم شروع ڪيو جيڪي CSS level 1 ۾ حل نه ٿيا هئا، جنهن جي نتيجي ۾ 4 نومبر 1997ع تي CSS level 2 وجود ۾ آئي. اها 12 مئي 1998ع تي W3C Recommendation طور شايع ٿي. CSS level 3، جيڪا 1998ع ۾ شروع ڪئي وئي، بمطابق

2014


اڃا ترقي هيٺ آهي.

2005ع ۾ CSS Working Groups فيصلو ڪيو ته معيارن جي گهرجن کي وڌيڪ سختيءَ سان لاڳو ڪيو وڃي. ان جو مطلب اهو ٿيو ته اڳ ئي شايع ٿيل معيار جهڙوڪ CSS 2.1، CSS 3 Selectors، ۽ CSS 3 Text کي Candidate Recommendation مان واپس Working Draft جي سطح تي آندو ويو.

اختيار ڪرڻ ۾ ڏکيائي

[سنواريو]

CSS 1 specification 1996ع ۾ مڪمل ٿي. Microsoft جو Internet Explorer 3[25] انهيءَ ئي سال جاري ٿيو، جنهن ۾ CSS لاءِ محدود سهڪار موجود هو. IE 4 ۽ Netscape 4.x وڌيڪ سهڪار شامل ڪيو، پر اهو عام طور نامڪمل ۽ ڪيترن ئي بگز سان ڀريل هو، جنهن CSS کي عملي طور تي اپنائڻ ڏکيو بڻايو. ڪنهن به ويب برائوزر کي specification جي لڳ ڀڳ مڪمل implementation حاصل ڪرڻ ۾ ٽن سالن کان وڌيڪ لڳي ويا. Internet Explorer 5.0 for the Macintosh، جيڪو مارچ 2000ع ۾ جاري ٿيو، پهريون برائوزر هو جنهن ۾ CSS 1 لاءِ مڪمل (99 سيڪڙو کان به وڌيڪ) سهڪار موجود هو،[35] ۽ اهڙي طرح هن اوپيرا کي به پوئتي ڇڏيو، جيڪا ان کان پندرهين مهيني اڳ CSS سهڪار متعارف ڪرائڻ کان وٺي اڳواڻ هئي. ان کان پوءِ ٻيا برائوزر به جلدي شامل ٿيا، ۽ انهن مان ڪيترن CSS 2 جا به ڪجهه حصا لاڳو ڪيا.

تنهن هوندي، جڏهن پوءِ جا "version 5" ويب برائوزر به CSS جو ڪافي مڪمل implementation پيش ڪرڻ لڳا، تڏهن به اهي ڪجهه پهلوئن ۾ غلط هئا. اهي بيقاعدگين، بگز، ۽ ٻين quirks سان ڀرپور هئا. Microsoft Internet Explorer 5.x for Windows، جيڪو IE for Macintosh کان بلڪل مختلف هو، CSS box model کي CSS معيارن جي مقابلي ۾ غلط نموني لاڳو ڪيو هو. اهڙين بيقاعدگين ۽ فيچر سهڪار ۾ فرقن جي ڪري ڊزائنرن لاءِ مختلف برائوزرن ۽ پليٽفارمن تي هڪجهڙو ڏيک حاصل ڪرڻ ڏکيو ٿي ويو، جيستائين هو workarounds، جن کي CSS hacks ۽ filters چيو ويو، استعمال نه ڪن. IE Windows جو box model bug ايترو سنجيده هو جو جڏهن Internet Explorer 6 جاري ٿيو، Microsoft CSS جي تشريح لاءِ هڪ backward-compatible mode ("quirks mode") پڻ متعارف ڪرايو، جنهن سان گڏ هڪ متبادل، درست "standards mode" به ڏنو ويو. ٻين غير-Microsoft برائوزرن به اهڙيون mode-switch صلاحيتون مهيا ڪيون. نتيجي طور، HTML فائلن جي مصنفن لاءِ ضروري ٿي پيو ته هو يقيني بڻائن ته سندن فائلن ۾ هڪ خاص نمايان "معيارن مطابق CSS جو ارادو ڪيل" نشان موجود هجي، جنهن سان ظاهر ٿئي ته مصنفن CSS کي معيارن مطابق صحيح طرح سمجهائڻ جو ارادو رکيو آهي، نه ته هاڻي گهڻو پراڻي ٿي ويل IE5/Windows واري انداز مطابق. هن نشان کان سواءِ، اهي ويب برائوزر جيڪي "quirks mode" switching جي صلاحيت رکن ٿا، ويب صفحن تي شين جي ماپ ائين طئي ڪندا جيئن IE 5 on Windows ڪندو هو، بجاءِ CSS معيارن جي پيروي ڪرڻ جي.

CSS جي اڻبرابر اپنائي ۽ اصل specification ۾ موجود errata سبب W3C، CSS 2 معيارن کي نظرثاني ڪري CSS 2.1 تيار ڪيو، جيڪو HTML برائوزرن ۾ موجود CSS سهڪار جي ڪم ڪندڙ تصوير جي وڌيڪ ويجهو هو. CSS 2 جون ڪجهه خاصيتون، جيڪي ڪنهن به برائوزر ڪاميابيءَ سان لاڳو نه ڪيون هيون، خارج ڪيون ويون، ۽ ڪجهه حالتن ۾، معياري روين کي بدلائي انهن کي اڳ ۾ موجود عام implementations سان هم آهنگ ڪيو ويو. CSS 2.1 25 فيبروري 2004ع تي Candidate Recommendation بڻيو، پر 13 جون 2005ع تي ان کي ٻيهر Working Draft جي حيثيت ڏني وئي،[36] ۽ پوءِ 19 جولاءِ 2007ع تي ٻيهر Candidate Recommendation جي حيثيت بحال ٿي.[37]

انهن مسئلن کان علاوه، .css extension هڪ اهڙي سافٽويئر پراڊڪٽ ۾ به استعمال ٿيندي هئي جيڪا PowerPoint فائلن کي Compact Slide Show فائلن ۾ تبديل ڪندي هئي،[38] تنهن ڪري ڪجهه ويب سرور سڀئي .css[39] فائلون MIME type application/x-pointplus[40] طور موڪليندا هئا، نه ڪي text/css طور.

وڪڻندڙ اڳياڙيون (Vendor prefixes)

[سنواريو]

انفرادي برائوزر ٺاهيندڙ ڪڏهن ڪڏهن معياري بڻجڻ ۽ عام ٿيڻ کان اڳ نوان parameter متعارف ڪرائيندا هئا. مستقبل جي implementation سان ٽڪراءُ کان بچڻ لاءِ، وڪڻندڙ انهن parameterن جي اڳيان پنهنجا منفرد نالا لڳائيندا هئا، جهڙوڪ Mozilla Firefox لاءِ -moz-، Apple Safari جي برائوزنگ انجڻ جي نالي تي -webkit-، Opera Browser لاءِ -o-، ۽ Microsoft Internet Explorer توڙي Microsoft Edge جي شروعاتي EdgeHTML نسخن لاءِ -ms-.

ڪڏهن ڪڏهن vendor prefix وارا parameter، جيئن -moz-radial-gradient ۽ -webkit-linear-gradient، پنهنجي بي-پريفڪس هم منصبن جي مقابلي ۾ ٿوري مختلف syntax رکندا هئا.[41]

معياري بڻجڻ کان پوءِ prefix وارا properties متروڪ ٿي ويندا آهن. اهڙا پروگرام موجود آهن جيڪي پراڻن برائوزرن لاءِ پاڻمرادو prefixes شامل ڪندا آهن ۽ prefixed parameterن جا معياري نسخا پڻ ظاهر ڪندا آهن. ڇاڪاڻ ته prefixes صرف محدود برائوزرن تائين محدود هوندا آهن، prefix هٽائڻ سان ٻيا برائوزر به انهيءَ functionality کي ڏسي سگهندا آهن. هڪ استثنا ڪجهه پراڻا -webkit- prefixed properties آهن، جيڪي ويب تي ايترا عام ۽ مستقل ٿي ويا آهن جو ٻين برائوزر خاندانن به compatibility خاطر انهن جي سهڪار جو فيصلو ڪيو.[42]

CSS Snapshot 2021

CSS جون مختلف سطحون ۽ profiles آهن. CSS جي هر سطح اڳئين سطح تي ٻڌل هوندي آهي، عام طور نيون خاصيتون شامل ڪندي آهي، ۽ عام طرح[43] CSS 1، CSS 2، CSS 3، ۽ CSS 4 طور سڃاتي ويندي آهي. Profiles عام طور هڪ يا وڌيڪ CSS سطحن جو ڪو حصو هونديون آهن، جيڪي ڪنهن خاص ڊوائيس يا يوزر انٽرفيس لاءِ ٺاهيون وينديون آهن. هن وقت موبائل ڊوائيسن، پرنٽرن، ۽ ٽيليويزن سيٽن لاءِ profiles موجود آهن. Profiles کي media types سان نه ملائڻ گهرجي، جيڪي CSS 2 ۾ شامل ڪيا ويا.

پهرين CSS specification جيڪا سرڪاري W3C Recommendation بڻي، اها CSS level 1 هئي، جيڪا 17 ڊسمبر 1996ع تي شايع ٿي. هاڪون ويئم لي ۽ برٽ بوس کي ان جا اصل ترقي ڪندڙ قرار ڏنو وڃي ٿو.[44][45] ان جي صلاحيتن ۾ هي سهڪار شامل هو:

  • فونٽ خاصيتون، جيئن typeface ۽ emphasis
  • متن، پس منظرن ۽ ٻين عنصرن جا رنگ
  • متن جون خاصيتون، جيئن لفظن، اکرن ۽ متن جي سٽن جي وچ ۾ فاصلو
  • متن، تصويرن، جدولن ۽ ٻين عنصرن جي سڌائي
  • گهڻن عنصرن لاءِ margin، border، padding ۽ positioning
  • صفتن جي گروهن جي منفرد سڃاڻپ ۽ عام درجي بندي

W3C هاڻي CSS 1 Recommendation کي برقرار نٿي رکي.[46]

CSS level 2 specification، W3C طرفان تيار ڪئي وئي ۽ مئي 1998ع ۾ recommendation طور شايع ڪئي وئي. CSS 1 کان وڌيڪ جامع هجڻ جي ناتي، CSS 2 ۾ ڪيتريون ئي نيون صلاحيتون شامل هيون، جهڙوڪ عنصرن جي absolute، relative ۽ fixed positioning ۽ z-index، media types جو تصور، aural style sheets لاءِ سهڪار (جن کي بعد ۾ CSS 3 speech modules سان تبديل ڪيو ويو)[47]، ٻطرفي متن، ۽ نيون فونٽ خاصيتون جيئن shadows.

W3C هاڻي CSS 2 recommendation کي به برقرار نٿي رکي.[48]

CSS سطح 2 جي نظرثاني 1، جنهن کي گهڻو ڪري "CSS 2.1" چيو ويندو آهي، CSS 2 ۾ موجود غلطيون درست ڪري ٿي، گهٽ سهڪار مليل يا مڪمل طور هڪجهڙي نموني ڪم نه ڪندڙ خاصيتون هٽائي ٿي، ۽ اڳ ۾ ئي برائوزرن ۾ لاڳو ٿيل واڌارن کي specification ۾ شامل ڪري ٿي. ٽيڪنيڪل specification کي معياري بڻائڻ لاءِ W3C Process سان مطابقت رکڻ خاطر، CSS 2.1 ڪيترن سالن تائين Working Draft ۽ Candidate Recommendation جي حيثيتن وچ ۾ ايندي ويندي رهي. CSS 2.1 پهريون ڀيرو 25 فيبروري 2004ع تي Candidate Recommendation بڻي، پر وڌيڪ جائزي لاءِ 13 جون 2005ع تي ان کي ٻيهر Working Draft بڻايو ويو. 19 جولاءِ 2007ع تي اها ٻيهر Candidate Recommendation بڻجي، ۽ پوءِ 2009ع ۾ ٻه ڀيرا ان ۾ تازه ڪاري ڪئي وئي. تنهن هوندي به، تبديليون ۽ وضاحتون شامل ٿيڻ سبب، 7 ڊسمبر 2010ع تي اها ٻيهر Last Call Working Draft ڏانهن موٽي وئي.

CSS 2.1، 12 اپريل 2011ع تي Proposed Recommendation بڻجي وئي.[49] W3C Advisory Committee جي جائزي کان پوءِ، آخرڪار اها 7 جون 2011ع تي W3C Recommendation طور شايع ڪئي وئي.[50]

CSS 2.1 کي سطح 2 جي پهرين ۽ آخري نظرثاني طور رٿيو ويو هو—پر گهٽ ترجيح واري ڪم طور CSS 2.2 تي 2015ع ۾ ڪم شروع ٿيو.

CSS 2 جي ابتڙ، جيڪا هڪ وڏي اڪيلي specification آهي ۽ مختلف خاصيتن جي وضاحت ڪري ٿي، CSS 3 کي ڪيترن الڳ دستاويزن ۾ ورهايو ويو آهي، جن کي "modules" چيو وڃي ٿو. هر module نيون صلاحيتون شامل ڪري ٿو يا CSS 2 ۾ بيان ڪيل خاصيتن کي وڌائي ٿو، جڏهن ته پٺتي موافقت (backward compatibility) برقرار رکي ٿو. CSS سطح 3 تي ڪم اصل CSS 2 recommendation جي اشاعت جي لڳ ڀڳ ئي شروع ٿيو. CSS 3 جا سڀ کان شروعاتي مسودا جون 1999ع ۾ شايع ٿيا.[51]

ماڊيولر بڻائڻ جي ڪري، مختلف moduleن جون استحڪام واريون حالتون ۽ سرڪاري حيثيتون به مختلف آهن.[52]

ڪجهه moduleن کي Candidate Recommendation (CR) جي حيثيت حاصل آهي ۽ انهن کي مناسب حد تائين مستحڪم سمجهيو وڃي ٿو. CR مرحلي تي implementation ڪندڙن کي صلاح ڏني ويندي آهي ته vendor prefixes ختم ڪري ڇڏين.[53]

مکيه module-specifications جو خلاصو[54]
Module Specification title Status Date
css3-background CSS Backgrounds and Borders Module Level 3  Candidate Rec.Error in Template:Dts: 'Feb' is not a valid month
css-box-3 CSS Box Model Module Level 3 RecommendationError in Template:Dts: 'Apr' is not a valid month
css-cascade-3 CSS Cascading and Inheritance Level 3  RecommendationError in Template:Dts: 'Feb' is not a valid month
css-color-3 CSS Color Module Level 3 RecommendationError in Template:Dts: 'Jan' is not a valid month
css3-content CSS Generated Content Module Level 3  Working DraftError in Template:Dts: 'Aug' is not a valid month
css-fonts-3 CSS Fonts Module Level 3 RecommendationError in Template:Dts: 'Sep' is not a valid month
css3-gcpm CSS Generated Content for Paged Media Module Working DraftMay 2014
css3-layout CSS Template Layout Module NoteError in Template:Dts: 'Mar' is not a valid month
css3-mediaqueries  Media Queries RecommendationError in Template:Dts: 'Jun' is not a valid month
mediaqueries-4  Media Queries Level 4 Candidate Rec.Error in Template:Dts: 'Dec' is not a valid month
css3-multicol  Multi-column Layout Module Level 1 Candidate Rec.Error in Template:Dts: 'Oct' is not a valid month
css3-page CSS Paged Media Module Level 3 Working Draft, and part migrated to css3-breakError in Template:Dts: 'Oct' is not a valid month
css3-break CSS Fragmentation Module Level 3 Candidate Rec.Error in Template:Dts: 'Dec' is not a valid month
selectors-3 Selectors Level 3 RecommendationError in Template:Dts: 'Nov' is not a valid month
selectors-4 Selectors Level 4 Working DraftError in Template:Dts: 'Nov' is not a valid month
css3-ui CSS Basic User Interface Module Level 3 (CSS3 UI) RecommendationError in Template:Dts: 'Jun' is not a valid month
Jen Simmons، 2019ع ۾ CSS جي حالت تي ڳالهائيندي، جڏهن ڪيترن CSS 4 moduleن کي اڳتي وڌايو پئي ويو

CSS4 نالي ڪا اڪيلي specification موجود ناهي،[55][56] ڇاڪاڻ ته CSS کي ڪيترن الڳ moduleن ۾ ورهايو ويو آهي، جيڪي پاڻمرادو پنهنجن سطحن مطابق ترقي ڪن ٿا.

اهي module جيڪي CSS Level 2 جي شين تي ٺهيل هئا، Level 3 کان شروع ٿيا. انهن مان ڪجهه اڳ ئي Level 4 تائين پهچي چڪا آهن يا Level 5 جي ويجهو آهن. ٻيا module جيڪي مڪمل طور نئين functionality بيان ڪن ٿا، جهڙوڪ Flexbox،[57] انهن کي Level 1 قرار ڏنو ويو آهي ۽ انهن مان ڪجهه Level 2 جي ويجهو پهچي رهيا آهن.

CSS Working Group ڪڏهن ڪڏهن "Snapshots" شايع ڪندي آهي، جيڪي مڪمل moduleن ۽ ٻين drafts جي ڪجهه حصن جو مجموعو هوندا آهن، ۽ انهن کي ايترو مستحڪم سمجهيو ويندو آهي جو برائوزر ڊولپر انهن کي لاڳو ڪري سگهن. هن وقت تائين اهڙا پنج "best current practices" دستاويز Notes طور 2007ع،[58] 2010ع،[59] 2015ع،[60] 2017ع،[61] ۽ 2018ع ۾ شايع ڪيا ويا آهن.[62]

ڇاڪاڻ ته اهي specification snapshot بنيادي طور ڊولپرن لاءِ تيار ڪيا ويندا آهن، تنهن ڪري اهڙي ئي هڪ ورزن وار حواله دستاويز جي گهرج وڌي رهي آهي، جيڪو مصنفن لاءِ هجي ۽ جيڪو هڪجهڙي نموني ڪم ڪندڙ implementations جي حالت پيش ڪري، جيئن هاڻي Can I Use...[63] ۽ MDN Web Docs.[64] جهڙيون سائيٽون بيان ڪن ٿيون. اهڙي وسيلي تي بحث ڪرڻ ۽ ان جي تعريف طئي ڪرڻ لاءِ 2020ع جي شروعات ۾ هڪ W3C Community Group قائم ڪئي وئي.[65] ورزننگ جي اصل قسم تي پڻ بحث جاري آهي، جنهن جو مطلب اهو آهي ته جڏهن اهو دستاويز تيار ٿيندو، تڏهن به شايد ان کي "CSS4" نه سڏيو وڃي.

برائوزر سهڪار

[سنواريو]

هر ويب برائوزر ويب صفحن کي ڏيکارڻ لاءِ هڪ لي آئوٽ انجڻ استعمال ڪري ٿو، ۽ CSS جي ڪارڪردگي لاءِ سهڪار انهن سڀني ۾ هڪجهڙو ناهي. ڇاڪاڻ ته برائوزر CSS کي مڪمل درستگي سان parse نٿا ڪن، تنهن ڪري مخصوص برائوزرن کي workaround ذريعي هدف بڻائڻ لاءِ گهڻيون coding ٽيڪنيڪون تيار ڪيون ويون آهن (جن کي عام طور CSS hacks يا CSS filters چيو ويندو آهي). CSS ۾ نئين ڪارڪردگيءَ جي اختيار کي وڏن برائوزرن ۾ سهڪار جي کوٽ سبب سست ڪري سگهجي ٿو. مثال طور، Internet Explorer ڪيترين CSS 3 خاصيتن لاءِ سهڪار شامل ڪرڻ ۾ آهستي رهيو، جنهن انهن خاصيتن جي اختيار کي سست ڪيو ۽ ڊولپرن ۾ برائوزر جي شهرت کي نقصان پهچايو. ان کان علاوه، ڪجهه نسخن ۾ غير-vendor-prefixed filter خاصيت لاءِ هڪ proprietary syntax پڻ استعمال ڪئي وئي هئي.[66] پنهنجن استعمال ڪندڙن لاءِ هڪجهڙو تجربو يقيني بڻائڻ لاءِ، ويب ڊولپر اڪثر پنهنجين سائيٽن کي ڪيترن آپريٽنگ سسٽمن، برائوزرن، ۽ برائوزر نسخن تي آزمائيندا آهن، جنهن سان ترقي جو وقت ۽ پيچيدگي وڌي ويندي آهي. BrowserStack جهڙا اوزار هنن ماحولن کي برقرار رکڻ جي پيچيدگي گهٽائڻ لاءِ تيار ڪيا ويا آهن.

انهن جاچ اوزارن کان علاوه، ڪيتريون ئي سائيٽون مخصوص CSS خاصيتن لاءِ برائوزر سهڪار جون فهرستون به برقرار رکن ٿيون، جن ۾ CanIUse ۽ MDN Web Docs شامل آهن. ان کان سواءِ، CSS 3 ۾ feature queries جي وضاحت ڪئي وئي آهي، جيڪي @supports هدايت مهيا ڪن ٿيون، جنهن سان ڊولپر پنهنجي CSS جي اندر سڌي طرح انهن برائوزرن کي هدف بڻائي سگهن ٿا جيڪي ڪنهن خاص ڪارڪردگي لاءِ سهڪار رکن ٿا.[67] پراڻن برائوزرن ۾ جيڪو CSS سهڪار هيٺ نه هوندو آهي، ان کي ڪڏهن ڪڏهن JavaScript polyfills ذريعي به درست يا شامل ڪيو ويندو آهي؛ اهي JavaScript ڪوڊ جا ٽڪرا هوندا آهن جيڪي برائوزرن کي هڪجهڙي نموني ڪم ڪرڻ لاءِ ٺاهيا ويندا آهن. اهي workaround ۽ fallback ڪارڪردگي جي سهڪار جي ضرورت ترقياتي منصوبن ۾ وڌيڪ پيچيدگي شامل ڪري سگهن ٿا، ۽ انهيءَ ڪري ڪمپنيون گهڻو ڪري برائوزر نسخن جي هڪ فهرست مقرر ڪنديون آهن ته ڪهڙا نسخا هو سهڪار ڏينديون ۽ ڪهڙا نه.

جيئن ويب سائيٽون اهڙا نوان ڪوڊ معيار اختيار ڪنديون وڃن ٿيون جيڪي پراڻن برائوزرن سان مطابقت نٿا رکن، تيئن اهي پراڻا برائوزر ويب تي موجود ڪيترن ئي وسيلن تائين رسائي کان محروم ٿي سگهن ٿا (ڪڏهن ڪڏهن ڄاڻي واڻي به).[68] تنهن هوندي به، انٽرنيٽ تي گهڻيون مشهور سائيٽون رڳو ڪمزور CSS سهڪار سبب پراڻن برائوزرن ۾ بصري طور گهٽ معيار واريون ناهن ٿينديون، پر گهڻين حالتن ۾ بلڪل ڪم ئي ناهن ڪنديون، خاص طور JavaScript ۽ ٻين ويب ٽيڪنالاجين جي ارتقا سبب.

حدون

[سنواريو]

CSS جي موجوده صلاحيتن بابت ڪجھه ڄاتل حدون هيٺ ڏجن ٿيون:

پوزيشن کان آزاد نئون اسڪوپ واضح نموني سان مقرر نٿو ڪري سگهجي

[سنواريو]

z-index جهڙين خاصيتن لاءِ اسڪوپنگ جا قاعدا ويجهي والدين عنصر کي ڳوليندا آهن جنهن وٽ position: absolute يا position: relative خاصيت هجي. هي عجيب قسم جي ڳانڍاپي سبب غير گهربل اثر پيدا ٿيندا آهن. مثال طور، جڏهن ڪنهن عنصر جي پوزيشن کي ترتيب ڏيڻ لازمي ٿي وڃي ته نئون اسڪوپ ٺاهڻ کان بچڻ ناممڪن ٿي ويندو آهي، جنهن ڪري والدين عنصر جي گهربل اسڪوپ کي استعمال ڪرڻ ممڪن نه رهندو آهي.

پسيڊو-ڪلاس جي متحرڪ رويي تي ڪنٽرول نٿو ڪري سگهجي

[سنواريو]

CSS پسيڊو-ڪلاس مهيا ڪري ٿو جيڪي متبادل اسٽائلن جي مشروط لاڳو ٿيڻ ذريعي استعمال ڪندڙ جي ڪجهه حد تائين موٽ (feedback) جي اجازت ڏين ٿا. CSS جو هڪ پسيڊو-ڪلاس ":hover" متحرڪ آهي (JavaScript جي "onmouseover" جي برابر) ۽ ان جي غلط استعمال جو امڪان به آهي (مثال طور ڪرسر جي ويجهو اچڻ تي ظاهر ٿيندڙ popups ٺاهڻ).[69] پر CSS ۾ اهڙي صلاحيت موجود ناهي جو ڪو ڪلائنٽ ان کي غيرفعال ڪري سگهي (ڪو "disable" جهڙو خاصيت ناهي) يا ان جي اثرن کي محدود ڪري سگهي (هر خاصيت لاءِ "nochange" جهڙا قدر موجود ناهن).

قاعدن کي نالو ڏيڻ ممڪن ناهي

[سنواريو]

CSS ۾ ڪنهن قاعدي کي نالو ڏيڻ جو ڪو طريقو ناهي، جنهن سان مثال طور ڪلائنٽ-پاسي اسڪرپٽ انهي قاعدي ڏانهن اشارو ڪري سگهي، ڀلي ان جو selector تبديل ٿي وڃي.

هڪ قاعدي جا اسٽائل ٻئي قاعدي ۾ شامل نٿا ڪري سگهجن

[سنواريو]

CSS ۾ گهڻا دفعا مطلوبه اثر حاصل ڪرڻ لاءِ ساڳيا اسٽائل ڪيترن قاعدن ۾ ورجائڻا پوندا آهن، جنهن ڪري سنڀال (maintenance) وڌي ويندي آهي ۽ وڌيڪ جامع جاچ جي ضرورت پوندي آهي. هن مسئلي کي حل ڪرڻ لاءِ ڪجهه نيون CSS خاصيتون تجويز ڪيون ويون هيون، پر پوءِ انهن کي ڇڏي ڏنو ويو.[70][71] ان جي بدران، ليکڪ وڌيڪ ترقي يافته stylesheet ٻوليون استعمال ڪري سگهن ٿا جيڪي CSS ۾ compile ٿين ٿيون، جهڙوڪ Sass، Less، يا Stylus.

مارڪ اپ تبديل ڪرڻ کانسواءِ مخصوص متن کي هدف بڻائي نٿو سگهجي

[سنواريو]

::first-letter پسيڊو-عنصر کان سواءِ، ڪنهن به مخصوص متن جي حصي کي هدف بڻائڻ ممڪن ناهي جيستائين placeholder عنصر استعمال نه ڪيا وڃن.

فائدا

[سنواريو]

مواد کي پيشڪش کان الڳ ڪرڻ

[سنواريو]
اصل مضمون جي لاءِ ڏسو Separation of content and presentation

CSS مختلف پيشڪشي فارميٽن ۾ مواد جي اشاعت کي آسان بڻائي ٿي، ڇاڪاڻ⁠تہ اها مختلف نامياري پيرا ميٽرن جي بنياد تي اسٽائلن کي ترتيب ڏئي ٿي. انهن پيرا ميٽرن ۾ استعمال ڪندڙ جون واضح ترجيحات (جهڙوڪ ٿيم يا فونٽ سائيز)، مختلف ويب برائوزرن سان مطابقت، مواد ڏسڻ لاءِ استعمال ٿيندڙ اوزار جو قسم (مثال طور ڊيسڪ ٽاپ، ٽيبليٽ يا موبائل ڊيوائس)، اسڪرين ريزوليوشن، استعمال ڪندڙ جو جاگرافيائي هنڌ ۽ ٻيا ڪيترائي عنصر شامل آهن. CSS responsive design کي پڻ ممڪن بڻائي ٿي، جنهن سان مواد مختلف اسڪرين سائيزن ۽ رخن مطابق پاڻمرادو ترتيب وٺي ٿو، جنهن سان رسائي (accessibility) ۽ استعمال ڪندڙ جو تجربو مختلف ماحولن ۾ بهتر ٿئي ٿو.

سڄي سائيٽ ۾ هڪجهڙائي

[سنواريو]
اصل مضمون جي لاءِ ڏسو Style sheet (web development)

جڏهن CSS کي صحيح نموني استعمال ڪيو وڃي، خاص طور inheritance ۽ "cascading" جي اصولن مطابق، تڏهن هڪ عالمي style sheet استعمال ڪري سڄي سائيٽ تي عنصرن کي هڪجهڙي انداز ۾ ترتيب ڏئي سگهجي ٿو. جيڪڏهن ڪنهن موقعي تي عنصرن جي اسٽائل کي تبديل ڪرڻ يا ترتيب ڏيڻ جي ضرورت پوي، ته اهي تبديليون عالمي style sheet ۾ قاعدن کي تبديل ڪري آساني سان ڪيون وڃن ٿيون. CSS کان اڳ اهڙي قسم جي سار سنڀال وڌيڪ ڏکي، مهانگي ۽ وقت وٺندڙ هوندي هئي.

بينڊوڊٿ

[سنواريو]

هڪ style sheet، اندروني هجي يا خارجي، HTML عنصرن جي هڪ حد لاءِ اسٽائل صرف هڪ ڀيرو بيان ڪري ٿي جيڪي class، قسم يا ٻين عنصرن سان لاڳاپي جي بنياد تي چونڊيا وڃن ٿا. هي طريقو هر عنصر لاءِ inline اسٽائل ورجائڻ کان گهڻو وڌيڪ ڪارآمد آهي. خارجي style sheet عام طور browser cache ۾ محفوظ ٿي ويندي آهي، تنهنڪري ان کي ڪيترن ئي صفحن تي ٻيهر لوڊ ڪرڻ کانسواءِ استعمال ڪري سگهجي ٿو، جنهن سان نيٽ ورڪ تي ڊيٽا جي منتقلي به گهٽجي ٿي.

صفحي جي ٻيهر ترتيب

[سنواريو]
اصل مضمون جي لاءِ ڏسو Progressive enhancement

صرف هڪ لائين جي تبديلي سان ساڳئي صفحي لاءِ مختلف style sheet استعمال ڪري سگهجي ٿي. هي خاصيت رسائي جي لحاظ کان به فائديمند آهي، ۽ انهي سان گڏ مختلف اوزارن لاءِ صفحي يا سائيٽ کي ترتيب ڏيڻ جي صلاحيت پڻ مهيا ڪري ٿي. ان کان علاوه، اهي اوزار جيڪي اسٽائلنگ کي سمجهي نٿا سگهن (جهڙوڪ پراڻا برائوزر) اڃا به مواد ڏيکاري سگهن ٿا.

رسائي

[سنواريو]
اصل مضمون جي لاءِ ڏسو Tableless web design#Accessibility

CSS کان سواءِ، ويب ڊيزائنر عام طور پنهنجي صفحن جي ترتيب لاءِ HTML ٽيبل جهڙيون ٽيڪنيڪون استعمال ڪندا هئا، جيڪي نظر جي ڪمزوري رکندڙ استعمال ڪندڙن لاءِ رسائي ۾ رڪاوٽ پيدا ڪنديون هيون (ڏسو Tableless web design § Accessibility).

معياري بڻائڻ

[سنواريو]

فريم ورڪ

[سنواريو]
اصل مضمون جي لاءِ ڏسو CSS framework

CSS framework اڳواٽ تيار ڪيل لائبريريون آهن جيڪي Cascading Style Sheets ٻولي استعمال ڪندي ويب صفحن جي وڌيڪ آسان ۽ معياري نموني سان اسٽائلنگ ڪرڻ لاءِ ٺهيل هونديون آهن. CSS فريم ورڪن ۾ Blueprint، Bootstrap، Foundation ۽ Materialize شامل آهن. پروگرامنگ ۽ اسڪرپٽنگ ٻولين جي لائبريرين وانگر، CSS فريم ورڪ پڻ عام طور خارجي .css فائلن طور HTML جي <head> حصي ۾ شامل ڪيا ويندا آهن. اهي ويب صفحن جي ڊيزائن ۽ ترتيب لاءِ ڪيترائي تيار اختيار فراهم ڪن ٿا. جيتوڻيڪ اهڙا ڪيترائي فريم ورڪ شايع ٿيا آهن، ڪجهه ليکڪ انهن کي گهڻو ڪري تيزيءَ سان prototyping ڪرڻ يا سکڻ لاءِ استعمال ڪن ٿا، ۽ پوءِ هر سائيٽ لاءِ مناسب CSS پاڻ ٺاهڻ کي ترجيح ڏين ٿا ته جيئن غير استعمال ٿيل خاصيتن جي ڪري ڊيزائن، سنڀال ۽ ڊائون لوڊ جي اضافي بوجھ کان بچي سگهجي.[72]

ڊيزائن جا طريقا

[سنواريو]

جڏهن ڪنهن منصوبي ۾ استعمال ٿيندڙ CSS وسيلن جو قد وڌي وڃي ٿو، ته ترقياتي ٽيم اڪثر انهن کي منظم رکڻ لاءِ ڪنهن گڏيل ڊيزائن طريقي تي متفق ٿيندي آهي. ان جو مقصد ترقي کي آسان بڻائڻ، گڏيل ڪم کي بهتر ڪرڻ، ۽ برائوزر ۾ style sheet جي ڪارڪردگي کي بهتر رکڻ هوندو آهي. مشهور طريقن ۾ OOCSS (object-oriented CSS)، ACSS (atomic CSS)، CSS (organic Cascade Style Sheet)، SMACSS (scalable and modular architecture for CSS)، ۽ BEM (block, element, modifier) شامل آهن.[73]

پڻ ڏسو

[سنواريو]

حوالا

[سنواريو]
  1. "Minutes Telecon 2024-12-11". CSS WG Blog. W3C. 2024-12-12. 2025-01-16 تي حاصل ڪيل.
  2. "CSS developer guide". MDN Web Docs. 2015-09-24 تي حاصل ڪيل.
  3. Flanagan, David (2011). JavaScript: The Definitive Guide. O'Reilly.
  4. "What is CSS?". World Wide Web Consortium.
  5. "Web-based Mobile Apps of the Future Using HTML 5, CSS and JavaScript". 2010.
  6. "W3C CSS validation service".
  7. "W3C CSS2.1 specification for pseudo-elements and pseudo-classes". World Wide Web Consortium. 7 June 2011. محفوظ ڪيل مان اصل نسخي کان 30 April 2012 تي محفوظ ڪيل. 30 April 2012 تي حاصل ڪيل.
  8. "Selectors". Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. W3C. محفوظ ڪيل مان اصل نسخي کان 2006-04-23 تي محفوظ ڪيل.
  9. "Selectors Level 3". W3C. محفوظ ڪيل مان اصل نسخي کان 2014-06-03 تي محفوظ ڪيل. 2014-05-30 تي حاصل ڪيل.
  10. "CSS Syntax Module Level 3". W3C. محفوظ ڪيل مان اصل نسخي کان 1 October 2023 تي محفوظ ڪيل. 1 October 2023 تي حاصل ڪيل.
  11. "W3C CSS2.1 specification for rule sets, declaration blocks, and selectors". World Wide Web Consortium. 7 June 2011. محفوظ ڪيل مان اصل نسخي کان 28 March 2008 تي محفوظ ڪيل. 2009-06-20 تي حاصل ڪيل.
  12. "Full property table". W3C. محفوظ ڪيل مان اصل نسخي کان 2014-05-30 تي محفوظ ڪيل. 2014-05-30 تي حاصل ڪيل.
  13. "Index of CSS properties". W3C. 2020-08-09 تي حاصل ڪيل.
  14. "CSS Color". MDN Web Docs. 2024-04-05. محفوظ ڪيل مان اصل نسخي کان 2024-03-27 تي محفوظ ڪيل. 2024-04-05 تي حاصل ڪيل.
  15. "6.1 Length units". Cascading Style Sheets, level 1. 17 December 1996. محفوظ ڪيل مان اصل نسخي کان 14 June 2019 تي محفوظ ڪيل. 20 June 2019 تي حاصل ڪيل.
  16. "5. Distance Units: the <length> type". CSS Values and Units Module Level 3. 6 June 2019. محفوظ ڪيل مان اصل نسخي کان 7 June 2019 تي محفوظ ڪيل. 20 June 2019 تي حاصل ڪيل.
  17. W3C HTML Working Group. "HTML 5. A vocabulary and associated APIs for HTML and XHTML". World Wide Web Consortium. محفوظ ڪيل مان اصل نسخي کان 15 July 2014 تي محفوظ ڪيل. 28 June 2014 تي حاصل ڪيل.
  18. 1 2 Meyer, Eric A. (2006). Cascading Style Sheets: The Definitive Guide (3rd ed.). O'Reilly Media, Inc.. ISBN 0-596-52733-0. https://shop.oreilly.com/product/9781565926226.do. Retrieved 2014-02-16.
  19. "Assigning property values, Cascading, and Inheritance". محفوظ ڪيل مان اصل نسخي کان 2014-06-11 تي محفوظ ڪيل. 2014-06-10 تي حاصل ڪيل.
  20. "Can a CSS class inherit one or more other classes?". StackOverflow. محفوظ ڪيل مان اصل نسخي کان 2017-10-14 تي محفوظ ڪيل. 2017-09-10 تي حاصل ڪيل.
  21. "Shorthand properties". Tutorial. Mozilla Developers. 2017-12-07. اصل نسخو مان 2018-01-30 تي محفوظ ڪيل. 2018-01-30 تي حاصل ڪيل.
  22. 1 2 3 Bos, Bert; ۽ ٻيا (7 December 2010). "9.3 Positioning schemes". Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. W3C. محفوظ ڪيل مان اصل نسخي کان 18 February 2011 تي محفوظ ڪيل. 16 February 2011 تي حاصل ڪيل.
  23. Holzschlag, Molly E (2005). Spring into HTML and CSS. Pearson Education, Inc. ISBN 0-13-185586-7.
  24. 1 2 Lie, Hakon W (10 October 1994). "Cascading HTML style sheets – a proposal" (Proposal). CERN. محفوظ ڪيل مان اصل نسخي کان 4 June 2014 تي محفوظ ڪيل. 25 May 2014 تي حاصل ڪيل.
  25. 1 2 3 4 5 6 Lie, Håkon Wium; Bos, Bert (1999). Cascading Style Sheets, designing for the Web. Addison Wesley. ISBN 0-201-59625-3. https://archive.org/details/cascadingstyles000lieh. Retrieved 23 June 2010.
  26. "Cascading Style Sheets, level 1". World Wide Web Consortium. محفوظ ڪيل مان اصل نسخي کان 2014-04-09 تي محفوظ ڪيل. 2014-03-07 تي حاصل ڪيل.
  27. 1 2 3 Bos, Bert (14 April 1995). "Simple style sheets for SGML & HTML on the web". World Wide Web Consortium. محفوظ ڪيل مان اصل نسخي کان 23 September 2009 تي محفوظ ڪيل. 20 June 2010 تي حاصل ڪيل.
  28. 1 2 3 "Cascading Style Sheets". University of Oslo. اصل نسخو مان 2006-09-06 تي محفوظ ڪيل. 3 September 2014 تي حاصل ڪيل.
  29. 1 2 Petrie, Charles; Cailliau, Robert (November 1997). "Interview Robert Cailliau on the WWW Proposal: "How It Really Happened."". Institute of Electrical and Electronics Engineers. اصل نسخو مان 6 January 2011 تي محفوظ ڪيل. 18 August 2010 تي حاصل ڪيل.
  30. Bos, Bert (31 March 1995). "Stream-based Style sheet Proposal". محفوظ ڪيل مان اصل نسخي کان 12 October 2014 تي محفوظ ڪيل. 3 September 2014 تي حاصل ڪيل.
  31. Nielsen, Henrik Frystyk (7 June 2002). "Libwww Hackers". World Wide Web Consortium. محفوظ ڪيل مان اصل نسخي کان 2 December 2009 تي محفوظ ڪيل. 6 June 2010 تي حاصل ڪيل.
  32. "Yves Lafon". World Wide Web Consortium. محفوظ ڪيل مان اصل نسخي کان 24 June 2010 تي محفوظ ڪيل. 17 June 2010 تي حاصل ڪيل.
  33. "The W3C Team: Technology and Society". World Wide Web Consortium. 18 July 2008. محفوظ ڪيل مان اصل نسخي کان 28 May 2010 تي محفوظ ڪيل. 22 January 2011 تي حاصل ڪيل.
  34. Lou Montulli; Brendan Eich; Scott Furman; Donna Converse; Troy Chevalier (22 August 1996). "JavaScript-Based Style Sheets". W3C. محفوظ ڪيل مان اصل نسخي کان 27 May 2010 تي محفوظ ڪيل. 23 June 2010 تي حاصل ڪيل.
  35. "CSS software". W3C. محفوظ ڪيل مان اصل نسخي کان 2010-11-25 تي محفوظ ڪيل. 2011-01-15 تي حاصل ڪيل.
  36. Anne van Kesteren. "CSS 2.1 – Anne's Weblog". محفوظ ڪيل مان اصل نسخي کان 2005-12-10 تي محفوظ ڪيل. 2011-02-16 تي حاصل ڪيل.
  37. "Archive of W3C News in 2007". World Wide Web Consortium. 21 December 2007. محفوظ ڪيل مان اصل نسخي کان 2011-06-28 تي محفوظ ڪيل. 2011-02-16 تي حاصل ڪيل.
  38. Nitot, Tristan (18 March 2002). "Incorrect MIME Type for CSS Files". Mozilla Developer Center. Mozilla. اصل نسخو مان 2011-05-20 تي محفوظ ڪيل. 20 June 2010 تي حاصل ڪيل.
  39. McBride, Don (27 November 2009). "File Types". محفوظ ڪيل مان اصل نسخي کان 29 October 2010 تي محفوظ ڪيل. 20 June 2010 تي حاصل ڪيل.
  40. "css file extension details". File extension database. 12 March 2010. اصل نسخو مان 18 July 2011 تي محفوظ ڪيل. 20 June 2010 تي حاصل ڪيل.
  41. Kyrnin, Jennifer (2019-11-12). "What Are CSS Vendor or Browser Prefixes?". Lifewire (انگريزي ۾). محفوظ ڪيل مان اصل نسخي کان Nov 30, 2020 تي محفوظ ڪيل.
  42. "Compatibility Standard". WHATWG. 24 January 2024. محفوظ ڪيل مان اصل نسخي کان Feb 4, 2024 تي محفوظ ڪيل.
  43. "CSS Snapshot 2023 – 2.4. CSS Levels". W3C. 7 December 2023. محفوظ ڪيل مان اصل نسخي کان Feb 8, 2024 تي محفوظ ڪيل.
  44. Bos, Bert; Wium Lie, Håkon (1997). Cascading style sheets: designing for the Web (1st print. ed.). Harlow, England; Reading, MA.: Addison Wesley Longman. ISBN 0-201-41998-X. https://archive.org/details/cascadingstylesh00lieh.
  45. W3C: Cascading Style Sheets, level 1 آرڪائيو ڪيا ويا 2011-02-09 حوالو موجود آهي وي بيڪ مشين. CSS 1 specification
  46. W3C: Cascading Style Sheets level 1 specification آرڪائيو ڪيا ويا 2011-02-11 حوالو موجود آهي وي بيڪ مشين. CSS level 1 specification
  47. "Aural style sheets". W3C. محفوظ ڪيل مان اصل نسخي کان 2014-10-26 تي محفوظ ڪيل. 2014-10-26 تي حاصل ڪيل.
  48. W3C: Cascading Style Sheets, level 2 آرڪائيو ڪيا ويا 2011-01-16 حوالو موجود آهي وي بيڪ مشين. CSS 2 specification (1998 recommendation)
  49. W3C:Cascading Style Sheets, level 2 revision 1 آرڪائيو ڪيا ويا 2011-11-09 حوالو موجود آهي وي بيڪ مشين. CSS 2.1 specification (W3C Proposed Recommendation)
  50. W3C: Cascading Style Sheets Standard Boasts Unprecedented Interoperability آرڪائيو ڪيا ويا 2011-06-10 حوالو موجود آهي وي بيڪ مشين.
  51. Bos, Bert (18 February 2011). "Descriptions of all CSS specifications". World Wide Web Consortium. محفوظ ڪيل مان اصل نسخي کان 31 March 2011 تي محفوظ ڪيل. 3 March 2011 تي حاصل ڪيل.
  52. Bos, Bert (26 February 2011). "CSS current work". World Wide Web Consortium. محفوظ ڪيل مان اصل نسخي کان 3 March 2011 تي محفوظ ڪيل. 3 March 2011 تي حاصل ڪيل.
  53. Etemad, Elika J. (12 December 2010). "Cascading Style Sheets (CSS) Snapshot 2010". World Wide Web Consortium. محفوظ ڪيل مان اصل نسخي کان 16 March 2011 تي محفوظ ڪيل. 3 March 2011 تي حاصل ڪيل.
  54. "All CSS specifications". W3C. 2014-05-22. محفوظ ڪيل مان اصل نسخي کان 2014-05-30 تي محفوظ ڪيل. 2014-05-30 تي حاصل ڪيل.
  55. Atkins, Tab Jr. "A Word About CSS4". محفوظ ڪيل مان اصل نسخي کان 31 October 2012 تي محفوظ ڪيل. 18 October 2012 تي حاصل ڪيل.
  56. Andrew, Rachel. "Why there is no CSS4 – explaining CSS Levels". محفوظ ڪيل مان اصل نسخي کان 8 July 2025 تي محفوظ ڪيل. 28 September 2025 تي حاصل ڪيل.
  57. "CSS Flexible Box Layout Module Level 1". W3C. 19 November 2018. محفوظ ڪيل مان اصل نسخي کان 19 October 2012 تي محفوظ ڪيل. 18 October 2012 تي حاصل ڪيل.
  58. "Cascading Style Sheets (CSS) Snapshot 2007". 12 May 2011. محفوظ ڪيل مان اصل نسخي کان 8 August 2016 تي محفوظ ڪيل. 18 July 2016 تي حاصل ڪيل.
  59. "Cascading Style Sheets (CSS) Snapshot 2010". 12 May 2011. محفوظ ڪيل مان اصل نسخي کان 16 March 2011 تي محفوظ ڪيل. 3 March 2011 تي حاصل ڪيل.
  60. "CSS Snapshot 2015". W3C. 13 October 2015. محفوظ ڪيل مان اصل نسخي کان 27 January 2017 تي محفوظ ڪيل. 13 February 2017 تي حاصل ڪيل.
  61. "CSS Snapshot 2017". W3C. 31 January 2017. محفوظ ڪيل مان اصل نسخي کان 13 February 2017 تي محفوظ ڪيل. 13 February 2017 تي حاصل ڪيل.
  62. "CSS Snapshot 2018". W3C. 22 January 2019. محفوظ ڪيل مان اصل نسخي کان 1 February 2019 تي محفوظ ڪيل. 2 January 2019 تي حاصل ڪيل.
  63. "CSS". Can I Use… Support tables for HTML5, CSS3, etc. محفوظ ڪيل مان اصل نسخي کان 2018-02-19 تي محفوظ ڪيل. 2019-01-26 تي حاصل ڪيل.
  64. "CSS". MDN Web Docs. 21 July 2023. محفوظ ڪيل مان اصل نسخي کان Nov 26, 2023 تي محفوظ ڪيل.
  65. "Call for Participation in CSS4 Community Group". W3C. 24 February 2020. محفوظ ڪيل مان اصل نسخي کان Feb 10, 2023 تي محفوظ ڪيل. 2020-02-27 تي حاصل ڪيل.
  66. Lazaris, Louis (2010-04-28). "CSS3 Solutions for Internet Explorer". Smashing Magazine (آمريڪي انگريزي ۾). محفوظ ڪيل مان اصل نسخي کان 2016-10-12 تي محفوظ ڪيل. 2016-10-12 تي حاصل ڪيل.
  67. Simmons, Jen (August 17, 2016). "Using Feature Queries in CSS". Mozilla Hacks. محفوظ ڪيل مان اصل نسخي کان 2016-10-11 تي محفوظ ڪيل. 2016-10-12 تي حاصل ڪيل.
  68. Hutchinson, Lee (2019). "Looking at the Web with Internet Explorer 6, one last time". Ars Technica. محفوظ ڪيل مان اصل نسخي کان 2016-10-12 تي محفوظ ڪيل. 2016-10-12 تي حاصل ڪيل.
  69. "Pure CSS Popups". meyerweb.com. اصل نسخو مان 2009-12-09 تي محفوظ ڪيل. 2009-11-19 تي حاصل ڪيل.
  70. Tab Atkins Jr. "CSS apply rule". GitHub. اصل نسخو مان 2016-02-22 تي محفوظ ڪيل. 2016-02-27 تي حاصل ڪيل.
  71. "Why I Abandoned @apply — Tab Completion".
  72. Cederholm, Dan; Ethan Marcotte (2009). Handcrafted CSS: More Bulletproof Web Design. New Riders. p. 114. ISBN 978-0-321-64338-4. https://books.google.com/books?id=UgrUeIwsS60C&pg=PA114. Retrieved 19 June 2010.
  73. Antti, Hiljá. "OOCSS, ACSS, BEM, SMACSS: what are they? What should I use?". clubmate.fi. Hiljá. اصل نسخو مان 2 June 2015 تي محفوظ ڪيل. 2 June 2015 تي حاصل ڪيل.

وڌيڪ پڙهڻ لاءِ

[سنواريو]

ٻاهريان ڳنڍڻا

[سنواريو]

سانچو:Web browsers سانچو:Stylesheet languages سانچو:W3C Standards