Каскадните стилски табели (CSS, од англ. Cascading Style Sheets) е јазик за стилски табели што се користи за опишување на презентацискта семантика (изгледот и форматирњето) на документ напишан во јазик за означување. Нејзини најчести апликации се стилот на мрежните места напишани во HTML и XHTML, но јазикот исто така може да се примени на секој тип на XML документ, вклучувајќи обичен XML, SVG and XUL.
CSS е предвиден првенствено за да се овозможи поделба на содржината на документот (напишан во HTML или сличен markup language) за презентација на документот вклучувајќи елементи како рапоредот на страната, боите, и фонтот. Оваа поделба може да ја подобри содржината ,да овозможи флексибилност и контрола во одредбите на презентирање одлики, да им овозможи на повеќе страни да го споделат форматирањето , и да ја намалат комплексноста и повторувањето во структурната содржина. CSS исто така дозволува истата означена страна да биде презентирана во различни стилови за различни рендерирани методи како на екран, во печатена форма, со глас (кога се чита од гласовно-засновани прелистувачи или екрански читачи) или уреди на основа на Брајова азбука. Може да се користи и за да им дозволи на мрежните места да се прикажуваат различно во зависност од големината на екранот или уредот на кој ќе биде прегледуван. Додека авторот на документот обично го води тој документ во CSS стил, корисниците може да употребуваат друг стил,како на пример оној на нивниот компјутер за да го замени оној кој е укажан од авторот.
Синтакса CSS има едноставна синтакса и употребува англиски клучни зборови за наведување на имињата на различни својства.
CSS се состои од список на правила. Секое правило или множество од правила се состои од едно или повеќе селектори,и исказен блог. Исказниот блог содржи листа од искази во загради. Секој исказ се состои од особина, две точки (:), и вредност. Ако има повеќе искази во еден блог, мора да се стави точка-заперка (;) за да се оддели секој исказ.. Во CSS, селекторите се употребуваат за да декларираат на коЕ означување стилот се однесува. Селекторите можат да се однесуваат на сите елементи на укажан тип ,на елементи укажани од атрибутите или на елементи во зависнот од тоа каде се поставени или вгнездени во рамките на други во вид на дрво.
Псевдо-класите се употребуваат во CSS селекторите за да дозволат форматирање засновано на информација која е надвор од дрвото на документот .Често употребуван пример на псевдо-класа е :hover, кој ја идентификува содржината само кога корисникот 'укажува на' видливиот елемент, обично со поставување на курсот на глувчето врз него. Тоа е во прилог на селекторот како во a:hover или #elementid:hover.Псевдо-класата класифицира елементи на документот, како :link или :visited, каде псевдо-елементот прави избирање кое може да се состои од делумни елементи како :first-line или :first-letter.
Селектори може да се комбинираат на многу начини, особено во CSS 2.1,за да се постигне поголема конкретност и флексибилност.see Комплетна дефениција на селекторите на W3C мрежната страница .
Еве еден пример со употреба на овие правила: selector [, selector2, ...] [:pseudo-class] { property: value; [property2: value2; ...] } /* comment */
Употреба Пред CSS,речиси сите презентациски атрибути на HTML документите биле содржани во рамките на HTML ; сите фонтови, бои, позадински стилови,, порамнувањата на елементите, граници и големини мораа да бидат експлицитно опишани, честопати повторувани во рамките на HTML. CSS им дозволува на авторите да преместат голем дел од тие информации во друга податотека, друг style sheet, што резултира со значително поедноставен HTML.
Насловите (h1 елементи), поднасловите (h2), под-поднасловите (h3), итн.,се дефинирани структурирано користејќи HTML. Во печатена форма и на екран, изборот на фонт, големина, боја и акцент за тие елементи е презентациски.
Пред CSS, авторите на документите кои сакаа да додадат типографски одлики, да речеме на сите h2 наслови мораа да го повторуваат HTML презентациското означување за секое појавување на тој тип на наслов. Ова ги правеше документите покомплицирани, поголеми, и потешки за одржување. CSS овозможува одделување на презентацијата од структурата. CSS може да дефинира бои, фонтови, порамнување на текстот, големина, граници, растојание, распоред и многу други типографски одлики, независно за екран и печатени форми. CSS, исто така дефинира не-визуелни стилови како што се брзината и акцент со кој текст се чита од страна на оралните читателите. W3C ја има запоставено употебата на HTML означувањето.
Надворешните CSS податотеки, како што е опишано подолу, може да биде поврзан со HTML документ со користење на следнава синтакса:
<link href="path/to/file.css" rel="stylesheet">
Извори CSS информациите можат да се обезбедат од различни извори. CSS стилот на информацијата може да биде во посебен документ или може да биде вгнезден во HTML документ. Повеќето стилови може да се увозат. Различни стилови може да се применуваат во зависност од тоа каков излезен уред се користи ; на пример, верзијата на екранот може да биде различна од испечатената верзија, така да авторотите можат да ја прилагодат презентацијата соодветно за секој медиум.
Приоритетни шеми за CSS изворите(од највисокиот до најнискиот приоритет): Стилот за авторот (обезбеден од дизанерот на мрежната страница), во форма на: Внатрешни стилови, внатре во HTML документот, стил на информацијата за секој елемент, одредена со употреба на style атрибутот Вградени стилови, блокови на CSS информации внатре во самиот HTML Надворешни стилови, посебна CSS датоттека наводирана од документот Стилот за корисникот: Локална CSS податотека која корисникот ја одредува со можност за пребарувач, која делува како потиснувач кој се применува на сите документи Стилот за кориснички агент Стандардните стилови се применуваат од страна на корисничкиот агент односно стандардните поставувања на прелистувачот за презентација на секој елемент
Стилот со најголем приоритет го контролира прикажувањето на содржината на екран. Декларациите кои не се поставени во изворот на највисокиот приоритет се пренесуваат на извор со понизок приоритет, како што се корисничките агенти. Овој процес се нарекува каскадирање.
Една од целите на CSS е да им дозволи на корисниците поголема контрола на презентацијата. На некој на кого му е тешко да прочита црвен закосен наслов може да си примени друг стил. Во зависност од прелистувачот и мрежната страница, корисникот може да избира различни стилови овозможени од дизајнерите, или може да ги отстрани сите додадени стилови и да го гледа мрежното местотa со стандарните стилови на прелистувачот, или може да го отфрли црвениот закосен наслов без да ги промени другите атрибути.
Историја
Стиловите постоеле во една или друга форма уште во почетоците на SGML во 1980 година. Каскадирањето на стиловите било развиено како средство за создавање на доследен пристап за обезбедување на стил на информациите за веб документите.
Со развивањето на HTML, дојде и опфаќањето на поширок спектар на стилски способности за да се исполни барањето на веб дизајнерите. Оваа еволуција му овозможи на дизајнерот повеќе контрола над изгледот на страната по цена на покомплексен HTML. Варијациите во имплементацијата на прелистувачите како ViolaWWW и WorldWideWeb, го направија тежок изгледот на мрежната страница и корисниците имаа се помалку контрола на тоа како веб содржината беше прикажана. Robert Cailliau сакаше да ја оддели структурата од презентацијата. Идеалниот начин би бил да им се дозволи на корисниците различни опции и пренесување на три различни видови на стилови : еден за печатење, еден за презентација на екран и еден за функција на уредникот.
За подобрување на способностите на веб презентацијата , девет различни јазици за стил беа предложени на World Wide Web Consortium. Од тие девет, два беа избрани како основа на она што стана CSS: Каскадирање на HTML Style Sheets (CHSS) и Stream-based Style Sheet Proposal (SSP). Bert Bos работеше на прелистувач наречен Argo, кој употребуваше свој јазик за стил наречен SSP. Lie and Yves Lafon му се придружија на Dave Raggett за проширување на Arena прелистувачот за поддржување на CSS како апликација за тестирање за W3C. Lie и Bos работеа заедно за развој на CSS стандард ( 'H' беше отстрането од името бидејќи овие стилови се однесуваа и на други јазици за означување не само на HTML).
За разлика од постоечките јазици за стил како DSSSL и FOSI, CSS дозволуваше стилот на документот да биде под влијание на други стилови.
Предлогот на Lie беше претставен на "Mosaic and the Web" конференцијата (подоцна наречена WWW2) во Chicago, Illinois во 1994, и повторно со Bert Bos во 1995 година . Околу ова време W3C веќе постоеше, и се интересираше за развојот на CSS. Организираа работилница за таа цел на чело со Steven Pemberton. Ова резултираше во W3C со додавање работа на CSS за испорака на HTML за уредување на прегледот(ERB). Lie и Bos беа основниот технички персонал на овој проект , со дополнителни членови вклуќувајќи го и Thomas Reardon од Microsoft. Во август 1996 Netscape Communication Corporation презентираше алтернативен style sheet јазик наречен JavaScript Style Sheets (JSSS). Оваа одредба никогаш не беше завршена и е застарена. При крајот на 1996, CSS беше подготвен да стане службен и CSS ниво 1 беше објавен во декември.
Развојот на HTML, CSS, и DOM заземаа место во една група, одборот за уредување на прегледот (ERB). Во почетокот на 1997, ERB беше поделен на 3 групи: HTML работна група на чело со Dan Connolly од W3C; DOM работна група на чело со Lauren Wood од SoftQuad; и CSS работна група на чело соChris Lilley од W3C.
CSS работната група почна да се справува со проблемите кои не беа опфатени со CSS ниво 1, што резултираше со создавање на CSS ниво 2 во November 4, 1997. CSS ниво 2 беше објавен како препорака на W3C на 12 мај 1998. CSS ниво 3 кое започна 1998, и сè уште е во развој од 2009.
Во 2005, CSS работните групи одлучија да спроведат барања за построги стандарди.Ова значеше дека веќе објавените стандарди како CSS 2.1, CSS 3 Селектори и CSS 3 беа повлечени од препораките за кадидати за работно ниво.
Тешкотии со усвојување CSS 1 пецификацијата беше завршена во1996.Internet Explorer 3 почна со работа истата година ,со лимитирана поддршка за CSS.Но поминаа повеќе од три години пред секој прелистувач да постигне речиси целосна имплементација на одредбата.Internet Explorer 5.0 за Macintosh, беше првиот прелистувач кој имаше целосна CSS 1 поддршка , и успеа да го намине Opera, прелистувачот кој беше водач за CSS поддршка. Другите прелистувачи набрзо им се приклучија и многу од нив имплементираа делови од CSS 2.
Иако Internet Explorer 3 и4, и Netscape 4.x имаа поддршка за CSS, не беше целосна и имаше сериозни грешки (bugs). Ова беше сериозна пречка за усвојувањето на CSS.
Кога прелистувачите 'верзија 5' почнаа да нудат целосна имплементација на CSS,тие сè уште беа неточни во одредени области и беа со недостатоци и грешки(bug). Зголемувањето на бројот на недостатоци поврзани со CSS предизвикаа тешкотија кај дизајнерите да постигнат ист изглед на мрежната страница кај секој прелистувач и на секоја платформа.
Проблемите со прелистувачите за усвојување на CSS, заедно со списокот на типографски грешки во изворната одредба, го натераа W3Cда го ревидира CSS 2 стандардот во CSS 2 јануари Некои CSS 2 својства кои ниеден прелистувач не ги имплементира успешно беа отфрлени и во некои случаи дефинираните постапки беа изменети за да го донесат стандардот во согласност со постоечките имплементации. CSS 2.1 стана препорака за кандидат на 25 февруари 2004, но CSS 2.1 беше вратен на работната група на 13 јуни 2005 and only returned to Candidate Recommendation status on July 19, 2007.