CSS - CSS

Каскадтық стильдер кестесі (CSS)
CSS3 логотипі және wordmark.svg
Файл атауын кеңейту
.css
Интернет-медиа түрі
мәтін / CSS
Бірыңғай типті идентификатор (UTI)public.css
ӘзірлеушіДүниежүзілік желі консорциумы (W3C)
Бастапқы шығарылым17 желтоқсан, 1996 ж; 23 жыл бұрын (1996-12-17)
Соңғы шығарылым
CSS 2.1: 2-деңгей. Қайта қарау 1
(2016 жылғы 12 сәуір); 4 жыл бұрын (2016-04-12))
Пішім түріСтиль парағының тілі
КонтейнерСтиль ережелері HTML элементтері (тегтер)
ҚұрамындаHTML құжаттары
Ашық формат ?Иә
Веб-сайтwww.w3.org/ TR/ CSS2/

Каскадтық стиль парақтары (CSS) Бұл стиль тілі сипаттау үшін қолданылады презентация а жазылған құжаттың белгілеу тілі сияқты HTML.[1] CSS - технологияның негізі Дүниежүзілік өрмек, HTML мен қатар JavaScript.[2]

CSS презентация мен мазмұнды, соның ішінде бөлуді қамтамасыз етуге арналған орналасу, түстер, және қаріптер.[3] Бұл бөлу мазмұнды жақсарта алады қол жетімділік, презентация сипаттамаларына қатысты икемділік пен бақылауды қамтамасыз етіңіз, бірнеше мүмкіндік беріңіз веб-беттер сәйкес CSS-ті жеке .css файлында көрсете отырып, құрылымдық мазмұндағы күрделілік пен қайталануды төмендететін, .css файлын қосуға мүмкіндік беретін форматтауды бөлісу кэштелген файлды бөлісетін парақтар арасындағы парақтың жүктелу жылдамдығын жақсарту және оны форматтау.

Пішімдеу мен мазмұнды бөлу, сонымен қатар экранда, баспа түрінде, дауыспен (сөйлеуге негізделген браузер немесе экрандық оқу құралы ) және т.б. Брайл шрифті негізінде тактильді құрылғылар. CSS-те баламалы пішімдеу ережелері бар, егер а мобильді құрылғы.[4]

Аты каскадты белгілі бір элементке бірнеше ереже сәйкес келсе, стиль ережесінің қайсысы қолданылатынын анықтау үшін көрсетілген басымдық схемасынан шығады. Бұл каскадтық басымдылық схемасы болжалды.

CSS сипаттамалары Дүниежүзілік желі консорциумы (W3C). Интернет медиа түрі (MIME түрі ) мәтін / CSS CSS-те пайдалану үшін тіркелген RFC 2318 (Наурыз 1998). W3C ақысыз жұмыс істейді CSS тексеру қызметі CSS құжаттары үшін.[5]

HTML-ден басқа, басқа түзету тілдері, соның ішінде CSS-ті қолдайды XHTML, қарапайым XML, SVG, және XUL.

Синтаксис

CSS қарапайым синтаксис және әр түрлі стиль қасиеттерінің атауларын көрсету үшін бірқатар ағылшын кілт сөздерін қолданады.

Стильдер кестесі тізімнен тұрады ережелер. Әр ереже немесе ережелер жиыны бір немесе бірнеше құрамнан тұрады таңдауыштаржәне а декларация блогы.

Таңдаушы

CSS-те, таңдауыштар белгілеудің қай бөлігіне стиль қолданылатынын белгілеудің өзінде тегтер мен атрибуттарды сәйкестендіру арқылы жариялаңыз.

Таңдаушылар келесіге жүгіне алады:

  • барлық элементтер белгілі бір типтегі, мысалы. екінші деңгей тақырыптары h2
  • көрсетілген элементтер атрибут, соның ішінде:
    • идентификатор: құжат ішінде бірегей идентификатор
    • сынып: құжаттағы бірнеше элементтерге түсініктеме бере алатын идентификатор
  • элементтердің басқаларға қатысты орналасуына байланысты құжат ағашы.

Сыныптар мен идентификаторлар регистрге байланысты, әріптерден басталады және оларға әріптік-цифрлық таңбалар, сызықшалар және астыңғы сызықтар енгізілуі мүмкін. Сынып кез-келген элементтердің кез-келген санына қолданылуы мүмкін. Идентификаторды тек бір элементке қолдануға болады.

Жалған сыныптар құжаттар ағашында жоқ ақпарат негізінде форматтауға рұқсат беру үшін CSS селекторларында қолданылады. Кеңінен қолданылатын жалған сыныптың бір мысалы болып табылады :апарыңыз, ол мазмұнды пайдаланушы көрінетін элементті «көрсеткенде» ғана анықтайды, әдетте оның үстінде тышқан жүгіргіні ұстап тұрады. Ол селекторға келесідей қосылады а:апарыңыз немесе #элементид:апарыңыз. Псевдо-класс құжат элементтерін жіктейді, мысалы :сілтеме немесе :барды, ал а жалған элемент сияқты ішінара элементтерден тұруы мүмкін таңдау жасайды ::бірінші қатар немесе ::бірінші әріп.[6]

Үлкен нақтылық пен икемділікке жету үшін селекторларды көптеген тәсілдермен біріктіруге болады.[7] Элементтерді орналасқан жері, типі, идентификаторы, класы немесе олардың кез келген тіркесімі бойынша көрсету үшін бірнеше таңдағыштарды тізімге қосуға болады. Іріктегіштердің реті маңызды. Мысалға, див .myClass {түс: қызыл;} div элементтерінің ішіндегі myClass класының барлық элементтеріне қолданылады, ал .myClass див {түс: қызыл;} myClass класының элементтерінде болатын барлық div элементтеріне қолданылады.

Келесі кестеде селекторлық синтаксистің қолданылуы мен оны енгізген CSS нұсқасын көрсететін қысқаша мәліметтер келтірілген.[8]

ҮлгіМатчтарАлғаш анықталған
CSS деңгейінде
EE типті элемент1
E:сілтемеE элементі - бұл сілтеме әлі сілтеме жасалмаған (: сілтеме) немесе кірілмеген (: кірген)1
E:белсендіпайдаланушының белгілі бір әрекеттері кезіндегі E элементі1
E::бірінші қатарE элементінің бірінші форматталған жолы1
E::бірінші әріпE элементінің бірінші форматталған әрпі1
.cclass = «c» бар барлық элементтер1
#myidid = «myid» элементі1
E.ескертусыныбы «ескерту» болатын E элементі (құжат тілі сыныптың қалай анықталатынын анықтайды)1
E#myid«myid» -ке тең идентификаторы бар E элементі1
.c#myid= «c» сыныбы және идентификаторы «myid» -ке тең элемент1
E FE элементінің F элементінің ұрпағы1
*кез келген элемент2
E[ақымақ]«foo» атрибуты бар E элементі2
E[ақымақ=«бар»]«foo» атрибутының мәні «бар» мәніне толық тең болатын E элементі2
E[ақымақ~=«бар»]«foo» атрибутының мәні бос кеңістікпен бөлінген мәндердің тізімі болатын E элементі, олардың біреуі «бар» -ға толықтай тең2
E[ақымақ|=«en»]«foo» атрибуты «en» -ден басталатын (сол жақтан) дефиспен бөлінген мәндер тізімі бар E элементі2
E:бірінші балаE элементі, оның ата-анасының бірінші баласы2
E:тіл(фр)«fr» тіліндегі E типті элемент (құжат тілі тілдің қалай анықталатынын анықтайды)2
E::бұрынE элементінің мазмұнынан бұрын жасалған мазмұн2
E::кейінE элементінің мазмұнынан кейін жасалған мазмұн2
E > FE элементінің F элементінің қосындысы2
E + Fбірден F элементінің алдына F элементі келеді2
E[ақымақ^=«бар»]«foo» атрибутының мәні «бар» жолынан басталатын E элементі3
E[ақымақ$=«бар»]«foo» атрибутының мәні «bar» жолымен дәл аяқталатын E элементі3
E[ақымақ*=«бар»]«foo» атрибутының мәні «жолақ» ішкі жолынан тұратын E элементі3
E:тамырE элементі, құжаттың түбірі3
E:екінші бала(n)E элементі, оның ата-анасының n-ші баласы3
E:n-соңғы бала(n)соңғысынан бастап есептейтін E элементі, оның ата-анасының n-ші баласы3
E:n-тип(n)E элементі, оның n-ші ағасы3
E:n-соңғы түрі(n)E элементі, оның типіндегі n-ші ағасы, соңғысынан бастап есептеледі3
E:соңғы балаE элементі, оның ата-анасының соңғы баласы3
E:бірінші типE элементі, оның бірінші түрдегі ағасы3
E:соңғы түріE элементі, оның түрінің соңғы ағасы3
E:жалғыз балаE элементі, оның ата-анасының жалғыз баласы3
E:тек типтегіE элементі, тек оның түріндегі бауырлас3
E:босбалалары жоқ E элементі (мәтіндік түйіндерді қоса)3
E:мақсатсілтеме жасайтын URI мақсатты элементі3
E:қосылдықосылған E пайдаланушы интерфейсінің элементі3
E:мүгедектерқолданушы интерфейсінің E элементі өшірілген3
E:тексерілдіпайдаланушы интерфейсінің элементі тексерілген (мысалы, радио батырма немесе құсбелгі)3
E:емес(с)қарапайым селекторға сәйкес келмейтін E элементі3
E ~ Fалдында E элементі болатын F элементі3

Декларация блогы

Декларация блогы тізімнен тұрады декларациялар жақшада. Әрбір декларацияның өзі а мүлік, қос нүкте (:) және а мәні. Егер блокта бірнеше декларация болса, қос нүкте (;) әрбір декларацияны бөлу үшін енгізілуі керек. Ан қосымша соңғы (немесе жалғыз) декларациядан кейінгі жартылай қос нүкте қолданылуы мүмкін.[9]

Қасиеттер CSS стандартында көрсетілген. Әрбір қасиетте мүмкін болатын мәндер жиынтығы бар. Кейбір қасиеттер кез келген типтегі элементтерге әсер етуі мүмкін, ал басқалары элементтердің белгілі бір топтарына ғана қатысты.[10][11]

Мәндер «орталық» немесе «мұрагерлік» сияқты кілт сөздер немесе сандық мәндер болуы мүмкін 200px (200 пиксел), 50вт (Қарау терезесінің енінің 50 пайызы) немесе 80% (Негізгі элемент енінің 80 пайызы). Түстер мәндерін кілт сөздермен көрсетуге болады (мысалы. «қызыл«), он алтылық мәндер (мысалы. # FF0000, сондай-ақ ретінде қысқартылған # F00), 0-ден 255-ке дейінгі масштабтағы RGB мәндері (мысалы. rgb (255, 0, 0)), Түстерді де, альфа мөлдірлігін де көрсететін RGBA мәндері (мысалы, rgba (255, 0, 0, 0.8)) немесе HSL немесе HSLA мәндері (мысалы, hsl (000, 100%, 50%), хсла (000, 100%, 50%, 80%)).[12]

Ұзындық бірліктері

Сызықтық өлшемдерді білдіретін нөлдік емес сандық мәндерге ұзындық бірлігі кіруі керек, ол алфавиттік код немесе аббревиатура сияқты, 200px немесе 50вт; немесе пайыздық белгі, сияқты 80%. Кейбір бірліктер - см (сантиметр ); жылы (дюйм ); мм (миллиметр ); дана (пика ); және pt (нүкте ) - болып табылады абсолюттібұл көрсетілген өлшем парақтың құрылымына тәуелді емес екенін білдіреді; басқалар - эм (эм ); бұрынғы (бұрынғы ) және px (пиксел ) - болып табылады салыстырмалыБұл ата-аналық элементтің қаріп өлшемі сияқты факторлар көрсетілген өлшемге әсер етуі мүмкін дегенді білдіреді. Бұл сегіз бірлік CSS 1-нің ерекшелігі болды[13] және барлық кейінгі түзетулерде сақталды. Ұсынылған CSS мәндері мен өлшем бірлігі модулі 3-деңгей, егер W3C ұсынысы ретінде қабылданса, жеті ұзындық бірліктерін ұсынады: ш; Q; рем; vh; vmax; vmin; және vw.[14]

Пайдаланыңыз

CSS-ке дейін HTML құжаттарының барлық дерлік презентация атрибуттары HTML белгілеуінде болған. Барлық қаріптердің түстерін, фондық стильдерді, элементтердің туралануын, жиектері мен өлшемдерін HTML ішінде жиі қайталап сипаттауға тура келді. CSS авторларға ақпараттың көп бөлігін стильдер кестесіне ауыстыруға мүмкіндік береді, нәтижесінде HTML қарапайым болады.

Мысалы, тақырыптар (h1 элементтер), тақырыпшалар (h2), ішкі тақырыпшалар (h3) және т.б., HTML көмегімен құрылымдық түрде анықталады. Баспада және экранда таңдау қаріп, өлшемі, түс және екпін бұл элементтер үшін презентациялық.

CSS-ге дейін, бұны тағайындағысы келген құжат авторлары типографиялық сипаттамалары, айталық, бәріне h2 тақырыптар осы тақырып түрінің әр қайталануы үшін HTML презентациялық түзетулерін қайталауға мәжбүр болды. Бұл құжаттарды күрделендіре түсті, үлкенірек болды және қателіктерге жол беріп, оларды сақтау қиынға соқты. CSS презентацияны құрылымнан бөлуге мүмкіндік береді. CSS түсін, қаріпін, мәтінді туралауды, өлшемін, жиектерін, интервалын, орналасуын және басқа типографиялық сипаттамаларды анықтай алады және оны экрандағы және басылған көріністер үшін дербес жасай алады. CSS сонымен қатар визуалды емес стильдерді анықтайды, мысалы, оқу жылдамдығы және дыбыстық мәтін оқырмандарына екпін беру. The W3C қазір бар ескірген барлық презентациялық HTML түзетулерін қолдану.[15]

Мысалы, HTML-ге дейінгі CSS астында қызыл мәтінмен анықталған тақырып элементі келесі түрде жазылады:

<h1><қаріп түс=«қызыл»>1 тарау.</қаріп></h1>

CSS-ті қолдана отырып, HTML-презентация атрибуттарының орнына стиль қасиеттерін қолдана отырып, сол элементті кодтауға болады:

<h1 стиль=«color: red;»>1 тарау.</h1>

Мұның артықшылығы бірден айқын болмауы мүмкін, бірақ CSS-тің күші стиль қасиеттерін ішкі стиль элементіне немесе одан да жақсы сыртқы CSS файлына орналастырғанда айқын болады. Мысалы, құжатта стиль элементі бар делік:

<стиль>    h1 {        түс: қызыл;    }</стиль>

Барлық h1 құжаттағы элементтер автоматты түрде қызыл болады және ешқандай ашық кодты талап етпейді. Егер автор кейінірек жасағысы келсе h1 орнына көк элементтер, мұны стиль элементін өзгерту арқылы жасауға болады:

<стиль>    h1 {        түс: көк;    }</стиль>

әр құжат үшін түсініп, түсін өзгерту арқылы емес h1 элемент.

Сондай-ақ, мәнерлерді төменде сипатталғандай сыртқы CSS файлына орналастыруға және синтаксисті жүктеуге болады:

<сілтеме href=«path / to / file.css» рел=«кесте» түрі=«мәтін / css»>

Бұл әрі қарай HTML құжатындағы стильді ажыратып, бірнеше сыртқы құжаттарды қайта CSS файлын жалпы сыртқы CSS файлын редакциялау арқылы қалпына келтіруге мүмкіндік береді.

Дереккөздер

CSS ақпаратын әр түрлі ақпарат көздерінен алуға болады. Бұл көздер веб-шолғыш, пайдаланушы және автор болуы мүмкін. Автордан алынған ақпаратты ішкі, ақпарат түріне, маңыздылығына, селектордың ерекшелігіне, ереже тәртібіне, мұрагерлікке және меншікті анықтауға бөлуге болады. CSS стиліндегі ақпарат бөлек құжатта болуы мүмкін немесе оны HTML құжатына енгізуге болады. Бірнеше стиль парақтарын импорттауға болады. Пайдаланылатын шығыс құрылғысына байланысты әр түрлі стильдерді қолдануға болады; мысалы, экрандық нұсқасы басылған нұсқадан айтарлықтай өзгеше болуы мүмкін, сондықтан авторлар презентацияны әр ортаға лайықты түрде бейімдей алады.

Маңыздылығы жоғары стильдер кестесі мазмұнды бейнелейді. Жоғары басымдылық көзіне қойылмаған декларациялар пайдаланушы агенті стилі сияқты төменгі басымдылық көзіне беріледі. Процесс деп аталады каскадты.

CSS мақсаттарының бірі - пайдаланушыларға презентацияға үлкен бақылау жасау. Қызыл курсивтік тақырыптарды оқуға қиын деп санайтын адам басқа стильдер кестесін қолдана алады. Браузерге және веб-сайтқа байланысты пайдаланушы дизайнерлер ұсынған әр түрлі стильдер кестесін таңдай алады немесе барлық қосылған стильдерді алып тастай алады және шолғыштың әдепкі стилін қолдана отырып сайтты көре алады немесе тек қызыл курсивтік тақырып стилін өзгертпестен өзгерте алады атрибуттар.

CSS басымдығы схемасы (жоғарыдан төменге)
БасымдықCSS көзі түріСипаттама
1Маңыздылығы«!маңызды«аннотация алдыңғы басымдық түрлерін қайта жазады
2КезектеHTML «style» атрибуты арқылы HTML элементіне қолданылатын стиль
3Медиа түріСипаттаманың анықтамасы барлық медиа түрлеріне қолданылады, егер бұқаралық ақпарат құралдарына арналған CSS анықталмаса
4Пайдаланушы анықталдыКөптеген браузерлерде қол жетімділік мүмкіндігі бар: пайдаланушы CSS анықтаған
5Селектордың ерекшелігіБелгілі бір контексттік селектор (#тақырып б) жалпы анықтаманың үстінен жазады
6Ереже тәртібіСоңғы ереже декларациясының басымдығы жоғары
7Ата-аналық мұраЕгер қасиет көрсетілмесе, ол тектік элементтен мұраға алынады
8HTML құжатындағы CSS қасиетінің анықтамасыCSS ережесі немесе CSS кірістірілген стилі әдепкі шолғыш мәнін қайта жазады
9Шолғыш әдепкі бойыншаЕң төменгі басымдылық: шолушының әдепкі мәні W3C бастапқы мәнінің сипаттамасымен анықталады

Ерекшелік

Ерекшелік әр түрлі ережелердің салыстырмалы салмағына жатады.[16] Бірнеше ережелер қолданылуы мүмкін болған кезде элементке қандай стильдер қолданылатынын анықтайды. Ерекшелікке сүйене отырып, қарапайым селектордың (мысалы, H1) ерекшелігі - 1, класс селекторларының - 1,0, ал ID - селекторларының - 1,0,0. Ерекшелік мәндері ондық санау жүйесіндегідей болмайтындықтан, үтірлер «цифрларды» бөлу үшін қолданылады[17] (11 элементтен және 11 сыныптан тұратын CSS ережесінің ерекшелігі 121 емес, 11,11 болатын).

Осылайша, келесі ережелер селекционерлердің көрсетілген ерекшелігіне әкеледі:

ТаңдаушыларЕрекшелік
h1 {түс: ақ;}0, 0, 0, 1
б эм {түс: жасыл;}0, 0, 0, 2
.жүзім {түс: қызыл;}0, 0, 1, 0
б.жарқын {түс: көк;}0, 0, 1, 1
б.жарқын эм.қараңғы {түс: сары;}0, 0, 2, 2
#id218 {түс: қоңыр;}0, 1, 0, 0
стиль=" "1, 0, 0, 0

Мысалдар

Осы HTML фрагментін қарастырайық:

<!DOCTYPE html><HTML>    <бас>        <мета чарсет=«utf-8»>        <стиль>            #xyz { түс: көк; }        </стиль>    </бас>    <дене>        <б идентификатор=«xyz» стиль=«color: green;»>Ерекшелігін көрсету</б>    </дене></HTML>

Жоғарыда келтірілген мысалда декларация стиль атрибуты <style> элементтің ерекшелігі жоғары, сондықтан абзац жасыл болып көрінеді.

Мұра

Мұрагерлік - CSS-тің басты ерекшелігі; ол жұмыс жасау үшін ата-баба байланысына сүйенеді. Мұрагерлік - бұл қасиеттерді тек көрсетілген элементке ғана емес, оның ұрпақтарына да қолдану механизмі.[16] Мұрагерлік иерархиясы болып табылатын құжат ағашына сүйенеді XHTML ұяға негізделген беттегі элементтер. Ұрпақ элементтері CSS қасиеттерінің мәндерін оларды қоршап тұрған кез-келген ата-баба элементтерінен алуы мүмкін.Жалпы, ұрпақ элементтері мәтінге қатысты қасиеттерді мұрагер етеді, бірақ олардың қорапқа қатысты қасиеттері мұраланбайды. Түстер, қаріптер, әріптер аралығы, жолдың биіктігі, тізім стилі, мәтін туралануы, мәтін шегінісі, мәтін түрлендіру, көріну мүмкіндігі, бос орын және бос орын. Мұрагерлікке жатпайтын қасиеттерге фон, жиек, дисплей, өзгермелі және анық, биіктік пен ен, маржа, мин- және максималды биіктік және -кең, контур, толып кету, төсеу, позиция, мәтіндік безендіру, тік-туралау және z жатады. -индикс.

Мұрагерлікті CSS-ті қысқартуға мүмкіндік беріп, стильдер кестесінде белгілі бір қасиеттерді қайта-қайта жарияламау үшін пайдалануға болады.

CSS-те мұрагерлік бірдей емес сыныпқа негізделген бағдарламалау тілдеріндегі мұрагерлік, мұнда В класын «А класы сияқты, бірақ модификациямен» анықтауға болады.[18] CSS көмегімен an стилін жасауға болады элемент «А сыныбымен, бірақ модификациясымен». Алайда CSS-ті анықтау мүмкін емес сынып B сияқты, содан кейін бірнеше элементтерді стильдеу үшін модификацияларды қайталамай қолдануға болады.

Мысал

Келесі стиль кестесі берілген:

h1 {   түс: қызғылт;}

Ішінде екпінді элементі (em) бар h1 элементі бар делік:

<h1>   Бұл <эм>бейнелеу</эм> мұрагерлік</h1>

Егер em элементіне түс тағайындалмаса, онда «иллюстрациялау» сөзі негізгі элементтің түсін h1 алады. H1 стилінің парағы қызғылт түсті, сондықтан эм элементі де қызғылт түсті.

Бос кеңістік

Қасиеттер мен селекторлар арасындағы бос орын еленбейді. Бұл код үзіндісі:

дене{толып кету:жасырын;фон:#000000;фондық кескін:url(суреттер / bg.gif);фондық-қайталау:қайталанбайды;фон-позиция:сол жоғарғы;}

функционалды түрде бұған тең:

дене {   толып кету: жасырын;   фон-түс: #000000;   фондық кескін: url(суреттер / bg.gif);   фондық-қайталау: қайталанбайды;   фон-позиция: сол жоғарғы;}

CSS-ті оқуға ыңғайлы етіп форматтаудың бір әдісі - әр қасиеттің шегінісі және оған өз жолын беру. CSS-ті оқуға ыңғайлы етіп пішімдеуден басқа, кодты жылдам жазу үшін стенографиялық қасиеттерді қолдануға болады, ол көрсетілген кезде тезірек өңделеді:[19]

дене {   толып кету: жасырын;   фон: #000 url(суреттер / bg.gif) қайталанбайды сол жоғарғы;}

Орналасу

CSS 2.1 позициялаудың үш схемасын анықтайды:

Қалыпты ағын
Кезекте заттар мәтіндегі әріптер сияқты, бос орын қалмайынша бірінен соң бірі бос орынға орналастырылады, содан кейін төменде жаңа жол басталады. Блок абзацтар сияқты және таңбаланған тізімдегі элементтер сияқты элементтер тігінен жинақталады. Қалыпты ағынға блоктың немесе кірістірілген элементтердің салыстырмалы орналасуы және іске қосылатын қораптар кіреді.
Жүзу
Қалқымалы зат қалыпты ағыннан шығарылады және қол жетімді жерде мүмкіндігінше солға немесе оңға жылжытылады. Содан кейін басқа мазмұн өзгермелі элементпен қатар ағады.
Абсолютті позициялау
Абсолютті орналастырылған заттың басқа заттардың қалыпты ағымына орны болмайды және оған әсер етпейді. Ол контейнердегі тағайындалған орынды басқа заттардан тәуелсіз алады.[20]

Позиция қасиеті

-Ның төрт мүмкін мәні бар позиция мүлік. Егер элемент басқа жолмен орналасса статикалық, содан кейін келесі қасиеттер жоғарғы, төменгі, сол, және дұрыс ығысулар мен позицияларды көрсету үшін қолданылады.

Статикалық
Әдепкі мән элементті қалыпты ағын
Салыстырмалы
Элемент қалыпты ағын, содан кейін сол позициядан ығысқан немесе ығысқан. Келесі ағын элементтері жылжытылмаған тәрізді орналастырылады.
Абсолютті
Анықтайды абсолютті позициялау. Элемент статикалық емес арғы атасына қатысты орналастырылған.
Тұрақты
Элемент мүлдем орналастырылған құжаттың қалған бөлігі айналдырылған кезде де, экранда тұрақты күйде[20]

Қалқып, ашық

The жүзу меншік үш мәннің біреуіне ие болуы мүмкін. Әрине орналасқан немесе тұрақты элементтер өзгертілмейді. Басқа элементтер қалқымалы элементтердің айналасында, егер бұған тыйым салмаса, айналады анық мүлік.

сол
Элемент өзгермелі пайда болатын сызықтың сол жағында; басқа заттар оның оң жағында айналуы мүмкін.
дұрыс
Элемент өзгермелі пайда болатын сызықтың оң жағында; басқа заттар оның сол жағында айналуы мүмкін.
анық
Элементті солға жылжытылған элементтердің астында ('таза') пайда болуға мәжбүрлейді (анық:сол), дұрыс (анық:дұрыс) немесе екі жағы (анық:екеуі де).[20][21]

Тарих

Håkon Wium Lie, Opera Software компаниясының бас техникалық қызметкері және CSS веб-стандарттарының авторы

CSS-ті алғаш рет ұсынған Håkon Wium Lie 1994 жылғы 10 қазанда.[22] Ол кезде Ли жұмыс істейтін Тим Бернерс-Ли кезінде CERN.[23] Бір уақытта веб-сайтқа арналған бірнеше басқа стильдер тілдері ұсынылды, жалпыға ортақ тарату тізімдері мен ішіндегі талқылау Дүниежүзілік желі консорциумы бірінші W3C CSS ұсынысы (CSS1)[24] 1996 жылы шыққан. Атап айтқанда, ұсыныс Берт Бос ықпалды болды; ол CSS1-нің тең авторы болды және CSS-тің тең авторы болды.[25]

Стиль кестелері стандартты жалпыланған белгілеу тілінің басынан бастап сол немесе басқа формада болған (SGML ) 1980 жылдары CSS вебке арналған стильдер кестесін ұсыну үшін жасалды.[26] Веб-стильдер кестесінің тіліне қойылатын талаптардың бірі - стильдер кестесінің интернеттегі әр түрлі көздерден алынуы. Сондықтан қолданыстағы стильдер кестесінің тілдері ұнайды DSSSL және FOSI сәйкес келмеді. Екінші жағынан, CSS құжат стиліне «каскадтық» стильдер арқылы бірнеше стильдер кестесінің әсер етуіне мүмкіндік береді.[26]

HTML өсіп келе жатқанда, ол сұраныстарды қанағаттандыру үшін әр түрлі стилистикалық мүмкіндіктерді қамтитын болды веб-әзірлеушілер. Бұл эволюция дизайнерге сайттың пайда болуын көбірек басқаруға мүмкіндік берді. Түрлендірулер веб-шолғыш сияқты жүзеге асыру ViolaWWW және Дүниежүзілік өрмек,[27] сайттың тұрақты көрінісін қиындатты және пайдаланушылар веб-мазмұнның қалай көрсетілуін аз бақылауға алды. Тим Бернерс-Ли жасаған браузерде / редакторда бағдарламада қатаң кодталған стильдер бар еді. Стиль кестелерін интернеттегі құжаттармен байланыстыру мүмкін болмады.[23] Роберт Кайллио, сонымен қатар CERN-тен құрылымды презентациядан бөліп алғысы келді, сонда әр түрлі стильдер баспаға, экранға негізделген презентацияларға және редакторларға арналған әр түрлі презентацияларды сипаттай алады.[27]

Веб-презентация мүмкіндіктерін жақсарту веб-қауымдастықтың көпшілігінің қызығушылығына ие болды және www-стиліндегі тарату тізіміне тоғыз түрлі стильдер кестесі ұсынылды.[26] Осы тоғыз ұсыныстың ішінен екеуі CSS-ке айналуға ерекше әсер етті: каскадтық HTML стиль парақтары[22] және Stream Sheet ұсынысы (SSP).[25][28] Екі браузер алғашқы ұсыныстар үшін сынақ алаңы ретінде қызмет етті; Өтірік жұмыс істеді Ив Лафон CSS-ті енгізу Дэйв Раггетт Келіңіздер Арена браузер.[29][30][31] Берт Бос өзінің SSP ұсынысын жүзеге асырды Арго браузер.[25] Бұдан кейін Lie және Bos CSS стандартын жасау үшін бірге жұмыс істеді ('H' атаудан алынып тасталды, өйткені бұл стильдер HTML-ден басқа басқа белгілеу тілдеріне де қолданыла алады).[23]

Lie ұсынысы «Мозаика және Интернет «конференциясы (кейінірек WWW2 деп аталды) Чикагода, Иллинойс қаласында 1994 ж. және қайтадан Берт Боспен 1995 ж.[23] Осы уақытта W3C құрылып, CSS-тің дамуына қызығушылық танытты. Осы мақсатта семинар ұйымдастырылды Стивен Пембертон. Нәтижесінде W3C HTML редакторлық кеңесінің (ERB) нәтижелеріне CSS-те жұмыс қосады. Lie және Bos жобаның осы саласы бойынша негізгі техникалық персонал болды, оның құрамына қосымша мүшелер кірді Томас Рирдон Microsoft корпорациясы да қатысады. 1996 жылы тамызда Netscape коммуникациялық корпорациясы деп аталатын балама стильдер кестесін ұсынды JavaScript стилі (JSSS).[23] Ерекшелік ешқашан аяқталмаған және ескірген.[32] 1996 жылдың аяғында CSS ресми болуға дайын болды, ал CSS 1 деңгейдегі ұсынысы желтоқсан айында жарияланды.

HTML, CSS және DOM барлығы бір топта, HTML Редакторлық Шолу Кеңесінде (ERB) өтті. 1997 жылдың басында ERB үш жұмыс тобына бөлінді: HTML жұмыс тобы, төрағалық етеді Дэн Конноли W3C; DOM жұмыс тобы, төраға Лорен Вуд SoftQuad; және CSS жұмыс тобы, төрағалық етеді Крис Лилли W3C.

CSS жұмыс тобы CSS 1 деңгейімен шешілмеген мәселелерді шеше бастады, нәтижесінде CSS 2 деңгейі 1997 ж. 4 қарашасында құрылды. Ол W3C ұсынысы ретінде 1998 ж. 12 мамырда жарияланды. CSS 3 деңгейі 1998 жылы басталды, 2014 жылға дейін әзірленуде.

2005 жылы CSS жұмыс топтары стандарттарға қойылатын талаптарды қатаң орындауға шешім қабылдады. Бұл дегеніміз, CSS 2.1, CSS 3 селекторлары және CSS 3 мәтіні сияқты жарияланған стандарттар үміткердің ұсынымынан жұмыс жобасы деңгейіне қайтарылды.

Бала асырап алудағы қиындық

CSS 1 спецификациясы 1996 жылы аяқталды. Майкрософт Internet Explorer 3[23] сол жылы шығарылды, CSS-ке шектеулі қолдау көрсетілген. IE 4 және Netscape 4.x қосымша қолдауды қосты, бірақ ол әдетте толық болмады және көп болды қателер бұл CSS-ті қабылдауға кедергі келтірді. Бұл кез-келген веб-браузерде спецификацияның толық орындалуына үш жылдан астам уақыт болды. Internet Explorer 5.0 үшін Macintosh, 2000 жылдың наурызында жіберілген, CSS 1 толық (99 пайыздан жоғары) қолдауға ие болған алғашқы шолғыш болды,[33] асып түсу Опера, он бес ай бұрын CSS қолдауын енгізген кезден бастап көшбасшы болды. Көп ұзамай басқа браузерлер де жазылды және олардың көпшілігі қосымша CSS 2 бөліктерін енгізді.[дәйексөз қажет ]

Алайда, кейінірек «5-нұсқадағы» веб-шолғыштар CSS-ті толықтай енгізуді ұсына бастаған кезде де, олар белгілі бір жерлерде әлі де дұрыс болмады және сәйкессіздіктерге, қателіктерге және басқаларға толы болды қызықтар. Windows үшін Microsoft Internet Explorer 5.x, өте ерекшеленеді Macintosh үшін IE, қате орындалған 'CSS қорап моделі ', CSS стандарттарымен салыстырғанда. Мүмкіндіктерді қолдаудың осындай сәйкессіздіктері мен әртүрлілігі дизайнерлерге браузерлерде тұрақты көрініске қол жеткізуді қиындатты платформалар қолданбай уақытша шешімдер деп аталады CSS хактері мен сүзгілері. IE / Windows қораптарының қателіктері соншалықты маңызды болды, қашан Internet Explorer 6 шығарылды, Microsoft CSS интерпретациясының артқа үйлесімді режимін ұсынды ('Quirks режимі ') балама, түзетілген' стандарттар режимімен 'қатар. Майкрософтқа жатпайтын басқа браузерлер де осындай «режимді» ауыстыру тәртібін ұсынды. Сондықтан бұл авторларға қажет болды HTML арнайы файлдардың болуын қамтамасыз ететін файлдар 'стандарттарға сәйкес CSS' маркері авторлар CSS-ті стандарттарға сәйкес дұрыс түсіндіруді, қазіргі кездегі ескіргенге емес, IE5 / Windows шолушысы. Бұл маркер болмаса, 'quirks режимін' ауыстыру мүмкіндігі бар веб-браузерлер веб-беттердегі объектілерді IE5 / Windows сияқты CSS стандарттарына сәйкес емес, көлемін өзгертеді.[дәйексөз қажет ]

CSS-ті жамандықпен қабылдау проблемалары, түпнұсқалық спецификациядағы қателіктермен бірге, W3C-ді CSS 2 стандартын CSS 2.1-ге қайта қарауға мәжбүр етті, ол HTML шолғыштарындағы қолданыстағы CSS қолдау суреттеріне жақындады. Бірде-бір браузер сәтті енгізілмеген кейбір CSS 2 қасиеттері алынып тасталды, ал кейбір жағдайларда стандарттар бар қолданыстағы қолданыстарға сәйкес келтіру үшін анықталған мінез-құлық өзгертілді. CSS 2.1 2004 жылдың 25 ақпанында үміткердің ұсынысы болды, бірақ CSS 2.1 жұмыс жобасы мәртебесіне 2005 жылдың 13 маусымында қайтарылды,[34] және 2007 жылдың 19 шілдесінде ғана үміткердің ұсынысы мәртебесіне оралды.[35]

Осы проблемаларға қосымша .css кеңейтуді түрлендіру үшін қолданылатын бағдарламалық өнім пайдаланды Power Point Compact Slide Show файлдарына файлдар,[36]сондықтан кейбір веб-серверлер бәріне қызмет етті .css[37] сияқты MIME түрі application / x-pointplus[38] гөрі мәтін / CSS.

Вариациялар

CSS-те әр түрлі деңгейлер мен профильдер бар. CSS деңгейінің әрқайсысы соңына негізделеді, әдетте жаңа функцияларды қосады және әдетте CSS 1, CSS 2, CSS 3 және CSS 4 деп белгіленеді: Профильдер әдетте белгілі бір құрылғыға немесе пайдаланушы интерфейсіне арналған бір немесе бірнеше CSS деңгейлерінің жиынтығы болып табылады. . Қазіргі уақытта мобильді құрылғыларға, принтерге және теледидарға арналған профильдер бар. Профильдерді CSS 2-ге қосылған медиа түрлерімен шатастыруға болмайды.

CSS 1

W3C-тің ресми ұсынысы болған алғашқы CSS спецификациясы - CSS 1 деңгейі, 1996 жылы 17 желтоқсанда жарияланған. Håkon Wium Lie және Берт Бос бастапқы әзірлеушілер ретінде есептеледі.[39][40] Оның мүмкіндіктері арасында қолдау болып табылады

  • Қаріп қаріп және екпін сияқты қасиеттер
  • Мәтіннің, фондардың және басқа элементтердің түсі
  • Мәтін атрибуттары, мысалы, сөздер, әріптер және мәтін жолдары арасындағы қашықтық
  • Туралау мәтін, суреттер, кестелер және басқа элементтер
  • Көптеген элементтердің шеті, жиегі, төсемі және орналасуы
  • Атрибуттар топтарының бірегей идентификациясы және жалпы классификациясы

W3C бұдан былай CSS 1 ұсынымын сақтамайды.[41]

CSS 2

CSS 2 деңгейінің спецификациясы W3C әзірледі және ұсыныс ретінде 1998 жылдың мамырында жарияланды. CSS 1, CSS 2 суперсетіне элементтердің абсолютті, салыстырмалы және тұрақты орналасуы сияқты бірқатар жаңа мүмкіндіктер кіреді. z-индексі, медиа түрлерінің тұжырымдамасы, стильді есту парақтарын қолдау (кейін олар CSS 3 сөйлеу модулімен ауыстырылды)[42] және екі бағытты мәтін және көлеңке сияқты жаңа қаріп қасиеттері.

W3C бұдан былай CSS 2 ұсынымын сақтамайды.[43]

CSS 2.1

CSS 2-деңгей 1-нұсқасы, көбінесе «CSS 2.1» деп аталады, CSS 2-дегі қателерді түзетеді, нашар қолдау көрсетілетін немесе толықтай жұмыс істемейтін мүмкіндіктерді жояды және спецификацияға бұрыннан енгізілген шолғыш кеңейтімдерін қосады. Техникалық сипаттамаларды стандарттау бойынша W3C процесін орындау үшін CSS 2.1 жұмыс жобасының мәртебесі мен үміткердің ұсынымдарының мәртебесі арасында көптеген жылдар бойы алға-артқа жүрді. CSS 2.1 алдымен а болды Үміткердің ұсынысы 2004 жылғы 25 ақпанда, бірақ ол қосымша қарау үшін 2005 жылғы 13 маусымда Жұмыс жобасына қайтарылды. Ол 2007 жылғы 19 шілдеде кандидаттардың ұсыныстарына оралды, содан кейін 2009 жылы екі рет жаңартылды. Алайда өзгертулер мен түсіндірулер енгізілгендіктен, ол қайтадан 2010 жылдың 7 желтоқсанындағы соңғы қоңырау жұмыс жобасына оралды.

CSS 2.1 ұсынылған ұсынысқа 2011 жылдың 12 сәуірінде барды.[44] W3C консультативтік комитеті қарағаннан кейін, 2011 жылдың 7 маусымында W3C ұсынысы ретінде жарияланды.[45]

CSS 2.1 2 деңгейінің алғашқы және соңғы қайта қаралуы ретінде жоспарланған болатын, бірақ CSS 2.2 бойынша төмен басымдылықтағы жұмыс 2015 жылы басталды.

CSS 3

CSS 2-ден айырмашылығы, бұл әртүрлі ерекшеліктерді анықтайтын бірыңғай спецификация, CSS 3 «модульдер» деп аталатын бірнеше жеке құжаттарға бөлінеді. Әр модуль CSS 2-де анықталған мүмкіндіктерді арттырып, артқы үйлесімділікті сақтайды. CSS 3 деңгейі бойынша жұмыс CSS 2 ұсынысының түпнұсқасы жарияланған уақытта басталды. Ең алғашқы CSS 3 жобалары 1999 жылы маусымда жарияланған.[46]

Модульдеудің арқасында әртүрлі модульдер әртүрлі тұрақтылық пен мәртебеге ие.[47]

Кейбір модульдерде бар Үміткердің ұсынысы (CR) мәртебесі және орташа тұрақты болып саналады. At CR сатысында, іске асырушыларға префикстерді тастауға кеңес беріледі.[48]

Негізгі модуль сипаттамаларының қысқаша мазмұны[49]
МодульТехникалық сипаттаманың тақырыбыКүйКүні
css3-фонCSS фондары мен шекаралары модулі 3-деңгей  Үміткер Rec.Қазан 2017
css3-қорапCSS негізгі қорап моделіЖұмыс ЖобаШілде 2018
css-каскад-3CSS каскадтық және мұрагерлік 3 деңгей  Үміткер Rec.Мамыр 2016
css3-түстіCSS түсті модулі 3-деңгейҰсынысМаусым 2018
css3-мазмұнCSS3 құрылған және ауыстырылған мазмұн модулі  Жұмыс ЖобаМаусым 2016
css-қаріптер-3CSS қаріптері модулі 3-деңгейҰсынысҚыркүйек 2018
css3-gcpmПейджделген медиа модулі үшін CSS құрған мазмұнЖұмыс ЖобаМамыр 2014
css3-орналасуыCSS шаблондарын орналастыру модуліЕскертуНаурыз 2015
css3-медиаурилер БАҚ сұрауларыҰсынысМаусым 2012
медиаториялар-4 4 деңгейдегі медиа сұрауларҮміткер Rec.Қыркүйек 2017
css3-мультикол Көп деңгейлі макет модулі 1-деңгейЖұмыс ЖобаМамыр 2018
css3-бетCSS беттелген медиа модулі 3-деңгейЖұмыс ЖобаНаурыз 2013
селекторлар-33 деңгейҰсынысҚараша 2018
селекторлар-4Таңдаушылар 4 деңгейЖұмыс ЖобаАқпан 2018
css3-uiCSS Basic User Interface модулі 3-деңгей (CSS3 UI)ҰсынысМаусым 2018

CSS 4

Джен Симмонс бірнеше CSS ретінде 2019 жылы CSS жағдайын талқылау 4 модуль жетілдірілуде

Бірыңғай, біріктірілген CSS4 спецификациясы жоқ,[50] өйткені спецификация дербес деңгейге ие көптеген бөлек модульдерге бөлінген.

CSS 2 деңгейіндегі заттарға негізделген модульдер 3 деңгейден басталды. Олардың кейбіреулері 4 деңгейге жетті немесе 5 деңгейге жақындады. Басқа модульдер, мысалы, жаңа функционалдылықты анықтайды Flexbox,[51] 1 деңгей деп белгіленді және олардың кейбіреулері 2 деңгейге жақындады.

CSS жұмыс тобы кейде «Snapshots» жариялайды, бұл толық модульдер жиынтығы және басқа жобалардың бөліктері, олар браузерді әзірлеушілер жүзеге асыруға жеткілікті деп саналады. Осы уақытқа дейін осындай бес «заманауи озық тәжірибе» құжаттары Notes ретінде басылып шықты, 2007 ж.[52] 2010,[53] 2015,[54] 2017,[55] және 2018 жыл.[56]

Бұл спецификацияның суреттері, негізінен, әзірлеушілерге арналғандықтан, авторларға бағытталған ұқсас нұсқалық анықтамалық құжатқа сұраныс артып келеді, бұл өзара әрекеттесулердің күйін ұсынады, сол уақытта мен пайдалана аламын ба сияқты сайттармен құжатталған ...[57] және Mozilla Developer Network.[58] Мұндай ресурстарды талқылау және анықтау үшін 2020 жылдың басында W3C қауымдастық тобы құрылды.[59] Нақты түрі нұсқасы пікірталасқа дейін, яғни бір кездері жасалған құжат «CSS4» деп аталмауы мүмкін.

Браузерді қолдау

Әрбір веб-шолғышта a орналасу қозғалтқышы веб-беттерді көрсету үшін, және CSS функционалдығын қолдау олардың арасында сәйкес келмейді. Браузерлер CSS-ті керемет түрде талдай алмайтындықтан, нақты браузерлерге уақытша шешімдерді бағыттау үшін бірнеше кодтау әдістемесі әзірленді (жалпыға белгілі CSS бұзу немесе CSS сүзгілері). CSS-те жаңа функцияны қабылдауға негізгі браузерлерде қолдаудың болмауы кедергі болуы мүмкін. Мысалы, Internet Explorer бағдарламасы көптеген CSS 3 мүмкіндіктерін қолдауды баяу енгізді, бұл сол мүмкіндіктерді қабылдауды бәсеңдетіп, браузердің әзірлеушілер арасындағы беделіне нұқсан келтірді.[60] Өз қолданушылары үшін тұрақты тәжірибені қамтамасыз ету үшін веб-әзірлеушілер өз сайттарын бірнеше операциялық жүйелерде, браузерлерде және браузер нұсқаларында тексеріп, өңдеу уақыты мен күрделілігін арттырады. Сияқты құралдар BrowserStack осы орталарды ұстаудың күрделілігін төмендету үшін салынған.

Осы тестілеу құралдарынан басқа, көптеген сайттар белгілі бір CSS қасиеттері үшін шолғышты қолдау тізімдерін жүргізеді CanIUse және Mozilla Developer Network. Сонымен қатар, CSS 3 функциясының сұраныстарын анықтайды, олар @supports директива, бұл әзірлеушілерге белгілі бір функционалдылықты қолдайтын браузерлерді өздерінің CSS ішіне бағыттауға мүмкіндік береді.[61] Ескі браузерлер қолдамайтын CSS-ті кейде JavaScript-ті қолдану арқылы түзетуге болады полифильдер, бұл JavaScript кодының бөліктері, олар браузерлердің өзін-өзі тұрақты ұстауына арналған. Бұл уақытша шешімдер және резервтік функцияны қолдау қажеттілігі даму жобаларына қиындықтар туғызуы мүмкін, демек, компаниялар жиі қолдайтын және қолдамайтын шолғыш нұсқаларының тізімін анықтайды.

Веб-сайттар ескі браузерлермен үйлеспейтін жаңа код стандарттарын қабылдағандықтан, бұл браузерлер вебтегі көптеген ресурстарға қол жеткізбеуі мүмкін (кейде әдейі).[62] Many of the most popular sites on the internet are not just visually degraded on older browsers due to poor CSS support, but do not work at all, in large part due to the evolution of JavaScript and other web technologies.

Шектеулер

Some noted limitations of the current capabilities of CSS include:

Selectors are unable to ascend
CSS currently offers no way to select a ата-ана немесе арғы ата of an element that satisfies certain criteria.[63] CSS Selectors Level 4, which is still in Working Draft status, proposes such a selector,[64] but only as part of the "complete" selector profile, not the "fast" profile used in dynamic CSS styling.[65] A more advanced selector scheme (such as XPath ) would enable more sophisticated style sheets. The major reasons for the CSS Working Group previously rejecting proposals for parent selectors are related to browser performance and incremental rendering мәселелер.[66]
Cannot explicitly declare new scope independently of position
Scoping rules for properties such as z-index look for the closest parent element with a position:absolute or position:relative attribute. This odd coupling has undesired effects. For example, it is impossible to avoid declaring a new scope when one is forced to adjust an element's position, preventing one from using the desired scope of a parent element.
Pseudo-class dynamic behavior not controllable
CSS implements pseudo-classes that allow a degree of user feedback by conditional application of alternate styles. One CSS pseudo-class, ":апарыңыз", is dynamic (equivalent of JavaScript "onmouseover") and has potential for misuse (e.g., implementing cursor-proximity popups),[67] but CSS has no ability for a client to disable it (no "disable"-like property) or limit its effects (no "nochange"-like values for each property).
Cannot name rules
There is no way to name a CSS rule, which would allow (for example) client-side scripts to refer to the rule even if its selector changes.
Cannot include styles from a rule into another rule
CSS styles often must be duplicated in several rules to achieve a desired effect, causing additional maintenance and requiring more thorough testing. Some new CSS features were proposed to solve this, but were abandoned afterwards.[68][69]
Cannot target specific text without altering markup
Сонымен қатар :first-letter pseudo-element, one cannot target specific ranges of text without needing to utilize place-holder elements.

Former issues

Additionally, several more issues were present in prior versions of the CSS standard, but have been alleviated:

Vertical control limitations
Though horizontal placement of elements was always generally easy to control, vertical placement was frequently unintuitive, convoluted, or outright impossible. Simple tasks, such as centering an element vertically or placing a footer no higher than bottom of the viewport required either complicated and unintuitive style rules, or simple but widely unsupported rules.[63] The Flexible Box Module improved the situation considerably and vertical control is much more straightforward and supported in all of the modern browsers.[70] Older browsers still have those issues, but most of those (mainly Internet Explorer 9 and below) are no longer supported by their vendors.[71]
Absence of expressions
There was no standard ability to specify property values as simple expressions (such as margin-left: 10% 3em + 4px;). This would be useful in a variety of cases, such as calculating the size of columns subject to a constraint on the sum of all columns. Internet Explorer versions 5 to 7 support a proprietary expression() statement,[72] with similar functionality. This proprietary expression() statement is no longer supported from Internet Explorer 8 onwards, except in compatibility modes. This decision was taken for "standards compliance, browser performance, and security reasons".[72] Алайда, а candidate recommendation with a calc() value to address this limitation has been published by the CSS WG[73] and has since been supported in all of the modern browsers.[74]
Lack of column declaration
Although possible in current CSS 3 (using the column-count module),[75] layouts with multiple columns can be complex to implement in CSS 2.1. With CSS 2.1, the process is often done using floating elements, which are often rendered differently by different browsers, different computer screen shapes, and different screen ratios set on standard monitors. All of the modern browsers support this CSS 3 feature in one form or another.[76]

Артықшылықтары

Separation of content from presentation
CSS facilitates publication of content in multiple presentation formats based on nominal parameters. Nominal parameters include explicit user preferences, different web browsers, the type of device being used to view the content (a desktop computer or mobile device), the geographic location of the user and many other variables.
Site-wide consistency
When CSS is used effectively, in terms of inheritance and "cascading", a global style sheet can be used to affect and style elements site-wide. If the situation arises that the styling of the elements should be changed or adjusted, these changes can be made by editing rules in the global style sheet. Before CSS, this sort of maintenance was more difficult, expensive and time-consuming.
Өткізу қабілеті
A stylesheet, internal or external, specifies the style once for a range of HTML elements selected by сынып, type or relationship to others. This is much more efficient than repeating style information inline for each occurrence of the element. An external stylesheet is usually stored in the браузердің кэші, and can therefore be used on multiple pages without being reloaded, further reducing data transfer over a network.
Page reformatting
With a simple change of one line, a different style sheet can be used for the same page. This has advantages for accessibility, as well as providing the ability to tailor a page or site to different target devices. Furthermore, devices not able to understand the styling still display the content.
Қол жетімділік
Without CSS, web designers must typically lay out their pages with techniques such as HTML tables that hinder accessibility for vision-impaired users (see Tableless web design#Accessibility ).

Стандарттау

Фреймворктар

CSS frameworks are pre-prepared кітапханалар that are meant to allow for easier, more стандарттарға сәйкес келеді styling of веб-беттер using the Cascading Style Sheets language. CSS frameworks include Конспект, Жүктеуіш, Каскадтық негіз, Қор and Materialize. Like programming and scripting language libraries, CSS frameworks are usually incorporated as external .css sheets referenced in the HTML <бас>. They provide a number of ready-made options for designing and laying out the web page. Although many of these frameworks have been published, some authors use them mostly for rapid prototyping, or for learning from, and prefer to 'handcraft' CSS that is appropriate to each published site without the design, maintenance and download overhead of having many unused features in the site's styling.[77]

Жобалау әдістемесі

As the size of CSS resources used in a project increases, a development team often needs to decide on a common design methodology to keep them organized. The goals are ease of development, ease of collaboration during development and performance of the deployed stylesheets in the browser. Popular methodologies include OOCSS (object oriented CSS), ACSS (atomic CSS), oCSS (organic Cascade Style Sheet), SMACSS (scalable and modular architecture for CSS), and BEM (block, element, modifier).[78]

Әдебиеттер тізімі

  1. ^ "CSS developer guide". Mozilla Developer Network. Мұрағатталды түпнұсқадан 2015-09-25. Алынған 2015-09-24.
  2. ^ Фланаган, Дэвид. JavaScript - нақты нұсқаулық (6 басылым). б. 1. JavaScript is part of the triad of technologies that all Web developers must learn: HTML to specify the content of web pages, CSS to specify the presentation of web pages, and JavaScript to specify the behaviour of web pages.
  3. ^ "What is CSS?". Дүниежүзілік желі консорциумы. Мұрағатталды from the original on 2010-11-29. Алынған 2010-12-01.
  4. ^ "Web-based Mobile Apps of the Future Using HTML 5, CSS and JavaScript". HTMLGoodies. Мұрағатталды from the original on 2014-10-20. Алынған 2014-10-16.
  5. ^ "W3C CSS validation service". Мұрағатталды түпнұсқасынан 2011-02-14. Алынған 2012-06-30.
  6. ^ "W3C CSS2.1 specification for pseudo-elements and pseudo-classes". Дүниежүзілік желі консорциумы. 2011 жылғы 7 маусым. Мұрағатталды from the original on 30 April 2012. Алынған 30 сәуір 2012.
  7. ^ қараңыз the complete definition of selectors at the W3C Web site Мұрағатталды 2006-04-23 at the Wayback Machine.
  8. ^ "Selectors Level 3". W3.org. Мұрағатталды түпнұсқасынан 2014-06-03. Алынған 2014-05-30.
  9. ^ "W3C CSS2.1 specification for rule sets, declaration blocks, and selectors". Дүниежүзілік желі консорциумы. 2011 жылғы 7 маусым. Мұрағатталды түпнұсқадан 2008 жылғы 28 наурызда. Алынған 2009-06-20.
  10. ^ "Full property table". W3.org. Мұрағатталды түпнұсқасынан 2014-05-30. Алынған 2014-05-30.
  11. ^ "Index of CSS properties". www.w3.org. Алынған 2020-08-09.
  12. ^ "CSS Color". Mozilla Developer Network. 2016-06-28. Мұрағатталды from the original on 2016-09-21. Алынған 2016-08-23.
  13. ^ "6.1 Length units". Каскадтық стильдер кестесі, 1 деңгей. 17 желтоқсан 1996. Мұрағатталды түпнұсқадан 2019 жылғы 14 маусымда. Алынған 20 маусым 2019.
  14. ^ "5. Distance Units: the type". CSS Values and Units Module Level 3. 6 маусым 2019. Мұрағатталды түпнұсқадан 2019 жылғы 7 маусымда. Алынған 20 маусым 2019.
  15. ^ W3C HTML Working Group. "HTML 5. A vocabulary and associated APIs for HTML and XHTML". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқасынан 2014 жылғы 15 шілдеде. Алынған 28 маусым 2014.
  16. ^ а б Meyer, Eric A. (2006). Cascading Style Sheets: The Definitive Guide (3-ші басылым). O'Reilly Media, Inc. ISBN  0-596-52733-0. Мұрағатталды түпнұсқасынан 2014-02-15. Алынған 2014-02-16.
  17. ^ "Assigning property values, Cascading, and Inheritance". Мұрағатталды түпнұсқасынан 2014-06-11. Алынған 2014-06-10.
  18. ^ "Can a CSS class inherit one or more other classes?". StackOverflow. Мұрағатталды түпнұсқасынан 2017-10-14 жж. Алынған 2017-09-10.
  19. ^ "Shorthand properties". Оқулық. Mozilla Developers. 2017-12-07. Архивтелген түпнұсқа 2018-01-30. Алынған 2018-01-30.
  20. ^ а б c Bos, Bert; т.б. (7 December 2010). "9.3 Positioning schemes". Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. W3C. Мұрағатталды түпнұсқадан 2011 жылғы 18 ақпанда. Алынған 16 ақпан 2011.
  21. ^ Holzschlag, Molly E (2005). Spring into HTML and CSS. Pearson Education, Inc. ISBN  0-13-185586-7.
  22. ^ а б Lie, Hakon W (10 Oct 1994). "Cascading HTML style sheets - a proposal" (Ұсыныс) (92). CERN. Мұрағатталды түпнұсқасынан 2014 жылғы 4 маусымда. Алынған 25 мамыр 2014. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  23. ^ а б c г. e f Өтірік, Хекон Виум; Bos, Bert (1999). Cascading Style Sheets, designing for the Web. Аддисон Уэсли. ISBN  0-201-59625-3. Алынған 23 маусым 2010.
  24. ^ "Cascading Style Sheets, level 1". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқасынан 2014-04-09 ж. Алынған 2014-03-07.
  25. ^ а б c Bos, Bert (14 April 1995). "Simple style sheets for SGML & HTML on the web". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқадан 2009 жылғы 23 қыркүйекте. Алынған 20 маусым 2010.
  26. ^ а б c «Каскадтық стиль парақтары». Осло университеті. Архивтелген түпнұсқа 2006-09-06 ж. Алынған 3 қыркүйек 2014.
  27. ^ а б Петри, Чарльз; Кайллио, Роберт (Қараша 1997). "Interview Robert Cailliau on the WWW Proposal: "How It Really Happened."". Электр және электроника инженерлері институты. Архивтелген түпнұсқа 2011 жылғы 6 қаңтарда. Алынған 18 тамыз 2010.
  28. ^ Bos, Bert (31 March 1995). "Stream-based Style sheet Proposal". Мұрағатталды түпнұсқадан 12 қазан 2014 ж. Алынған 3 қыркүйек 2014.
  29. ^ Нильсен, Генрик Фрыстык (7 маусым 2002). "Libwww Hackers". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқадан 2009 жылғы 2 желтоқсанда. Алынған 6 маусым 2010.
  30. ^ "Yves Lafon". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқадан 2010 жылғы 24 маусымда. Алынған 17 маусым 2010.
  31. ^ "The W3C Team: Technology and Society". Дүниежүзілік желі консорциумы. 18 шілде 2008 ж. Мұрағатталды түпнұсқадан 2010 жылғы 28 мамырда. Алынған 22 қаңтар 2011.
  32. ^ Лу Монтулли; Брендан Эйх; Scott Furman; Donna Converse; Troy Chevalier (22 August 1996). "JavaScript-Based Style Sheets". W3C. Мұрағатталды түпнұсқадан 2010 жылғы 27 мамырда. Алынған 23 маусым 2010.
  33. ^ "CSS software". W3.org. Мұрағатталды 2010-11-25 аралығында түпнұсқадан. Алынған 2011-01-15.
  34. ^ Анна ван Кестерен. "CSS 2.1 – Anne's Weblog". Мұрағатталды түпнұсқасынан 2005-12-10 жж. Алынған 2011-02-16.
  35. ^ "Archive of W3C News in 2007". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқасынан 2011-06-28. Алынған 2011-02-16.
  36. ^ Nitot, Tristan (18 March 2002). "Incorrect MIME Type for CSS Files". Mozilla әзірлеушілер орталығы. Mozilla. Архивтелген түпнұсқа 2011-05-20. Алынған 20 маусым 2010.
  37. ^ McBride, Don (27 November 2009). "File Types". Мұрағатталды түпнұсқадан 2010 жылғы 29 қазанда. Алынған 20 маусым 2010.
  38. ^ "css file extension details". File extension database. 12 March 2010. Archived from түпнұсқа 2011 жылғы 18 шілдеде. Алынған 20 маусым 2010.
  39. ^ Bos, / Håkon Wium Lie, Bert (1997). Cascading style sheets: designing for the Web (1st print. ed.). Harlow, England ; Reading, MA.: Addison Wesley Longman. ISBN  0-201-41998-X.
  40. ^ W3C: Каскадтық стильдер кестесі, 1 деңгей Мұрағатталды 2011-02-09 at the Wayback Machine CSS 1 specification
  41. ^ W3C: Cascading Style Sheets level 1 specification Мұрағатталды 2011-02-11 Wayback Machine CSS level 1 specification
  42. ^ "Aural style sheets". W3C. Мұрағатталды түпнұсқасынан 2014-10-26 жж. Алынған 2014-10-26.
  43. ^ W3C: Cascading Style Sheets, level 2 Мұрағатталды 2011-01-16 сағ Wayback Machine CSS 2 specification (1998 recommendation)
  44. ^ W3C:Каскадтық стильдер кестесі, 2-деңгей қайта қарау 1 Мұрағатталды 2011-11-09 Wayback Machine CSS 2.1 specification (W3C Proposed Recommendation)
  45. ^ W3C: Cascading Style Sheets Standard Boasts Unprecedented Interoperability Мұрағатталды 2011-06-10 сағ Wayback Machine
  46. ^ Bos, Bert (18 ақпан 2011). "Descriptions of all CSS specifications". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқасынан 2011 жылдың 31 наурызында. Алынған 3 наурыз 2011.
  47. ^ Bos, Bert (26 ақпан 2011). "CSS current work". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқадан 2011 жылғы 3 наурызда. Алынған 3 наурыз 2011.
  48. ^ Etemad, Elika J. (12 желтоқсан 2010). "Cascading Style Sheets (CSS) Snapshot 2010". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқадан 2011 жылғы 16 наурызда. Алынған 3 наурыз 2011.
  49. ^ "All CSS specifications". W3.org. 2014-05-22. Мұрағатталды түпнұсқасынан 2014-05-30. Алынған 2014-05-30.
  50. ^ Atkins Jr, Tab. "A Word About CSS4". Мұрағатталды түпнұсқадан 2012 жылғы 31 қазанда. Алынған 18 қазан 2012.
  51. ^ "CSS Flexible Box Layout Module Level 1". W3C. 19 қараша 2018. Мұрағатталды 2012 жылғы 19 қазандағы түпнұсқадан. Алынған 18 қазан 2012.
  52. ^ "Cascading Style Sheets (CSS) Snapshot 2007". 12 мамыр 2011 ж. Мұрағатталды from the original on 8 August 2016. Алынған 18 шілде 2016.
  53. ^ "Cascading Style Sheets (CSS) Snapshot 2010". 12 мамыр 2011 ж. Мұрағатталды түпнұсқадан 2011 жылғы 16 наурызда. Алынған 3 наурыз 2011.
  54. ^ "CSS Snapshot 2015". W3C. 13 қазан 2015. Мұрағатталды түпнұсқасынан 2017 жылғы 27 қаңтарда. Алынған 13 ақпан 2017.
  55. ^ "CSS Snapshot 2017". 31 January 2017. Мұрағатталды түпнұсқадан 2017 жылғы 13 ақпанда. Алынған 13 ақпан 2017.
  56. ^ "CSS Snapshot 2018". 15 November 2018. Мұрағатталды түпнұсқадан 2019 жылғы 1 ақпанда. Алынған 2 қаңтар 2019.
  57. ^ "Can I Use… Support tables for HTML5, CSS3 etc". Мұрағатталды түпнұсқадан 2018-02-19. Алынған 2019-01-26.
  58. ^ "MDN Web Docs: CSS".
  59. ^ "CSS4 Community Group". Мұрағатталды түпнұсқасынан 2020-02-27. Алынған 2020-02-27.
  60. ^ "CSS3 Solutions for Internet Explorer – Smashing Magazine". Smashing журналы. 2010-04-28. Мұрағатталды түпнұсқасынан 2016-10-12 жж. Алынған 2016-10-12.
  61. ^ "Using Feature Queries in CSS ★ Mozilla Hacks – the Web developer blog". hacks.mozilla.org. Мұрағатталды түпнұсқасынан 2016-10-11 ж. Алынған 2016-10-12.
  62. ^ "Looking at the Web with Internet Explorer 6, one last time". Ars Technica. Мұрағатталды түпнұсқасынан 2016-10-12 жж. Алынған 2016-10-12.
  63. ^ а б Молли Хольшлаг (Қаңтар 2012). "Seven Things Still Missing from CSS". .net Magazine. Архивтелген түпнұсқа 2017-03-05. Алынған 2017-03-04.
  64. ^ "Selectors Level 4 – Determining the Subject of a Selector". W3.org. Мұрағатталды түпнұсқасынан 2013-08-17. Алынған 2013-08-13.
  65. ^ "Selectors Level 4 – Fast vs Complete Selector Profiles". W3.org. Мұрағатталды түпнұсқасынан 2013-08-17. Алынған 2013-08-13.
  66. ^ Snook, Jonathan (October 2010). "Why we don't have a parent selector". snook.ca. Архивтелген түпнұсқа 2012-01-18. Алынған 2012-01-26.
  67. ^ "Pure CSS Popups". meyerweb.com. Архивтелген түпнұсқа on 2009-12-09. Алынған 2009-11-19.
  68. ^ Tab Atkins Jr. "CSS apply rule". GitHub. Архивтелген түпнұсқа 2016-02-22. Алынған 2016-02-27.
  69. ^ https://www.xanthir.com/b4o00
  70. ^ "CSS Flexible Box Layout Module". Can I use... Support tables for HTML5, CSS3, etc. CanIUse.com. Архивтелген түпнұсқа 2016-02-23.
  71. ^ "Internet Explorer End of Support". Microsoft. Мұрағатталды түпнұсқасынан 2019-06-02. Алынған 2016-02-27.
  72. ^ а б "About Dynamic Properties". Msdn.microsoft.com. Архивтелген түпнұсқа 2017-10-14. Алынған 2009-06-20.
  73. ^ «CSS мәндері мен өлшем бірліктері модулі 3-деңгей».. W3.org. 6 маусым 2019. Мұрағатталды түпнұсқадан 2008 жылғы 23 сәуірде.
  74. ^ "calc() as CSS unit value". Can I use... Support tables for HTML5, CSS3, etc. CanIUse.com. Архивтелген түпнұсқа 2016-03-04.
  75. ^ "CSS Multi-column Layout Module". Дүниежүзілік желі консорциумы. Мұрағатталды түпнұсқасынан 2011-04-29. Алынған 2011-05-01.
  76. ^ «Мен HTML5, CSS3 және т.б қолдау кестелерін қолдана аламын ба». CanIUse.com. Архивтелген түпнұсқа 2010-08-21. Алынған 2016-02-27.
  77. ^ Cederholm, Dan; Ethan Marcotte (2009). Handcrafted CSS: More Bulletproof Web Design. Жаңа шабандоздар. б. 114. ISBN  978-0-321-64338-4. Мұрағатталды from the original on 20 December 2012. Алынған 19 маусым 2010.
  78. ^ Antti, Hiljá. "OOCSS, ACSS, BEM, SMACSS: what are they? What should I use?". clubmate.fi. Hiljá. Архивтелген түпнұсқа 2015 жылғы 2 маусымда. Алынған 2 маусым 2015.

Әрі қарай оқу

Сыртқы сілтемелер