8 simple CSS3 transitions that will wow your users
7 CSS Units You Might Not Know About
Карысныя спасылкі
CSS home
Афіцыйная пляцоўка на W3C: http://www.w3.org/Style/CSS
Зручны індэкс па ўсім афіцыйным дакумэнтам на W3Viewer: http://www.w3viewer.com
Неафіцыйная пляцоўка: http://www.css3.info
Стандарты і спэцыфікацыі
CSS 2.1
Спэцыфікацыя на W3C: http://www.w3.org/TR/CSS2
Даведнікі
Даведнік па базавым аспэктам: http://www.cssbasics.com
Дасканалы даведнік на SitePoint: http://reference.sitepoint.com/css
Даведнік на DocHub: http://dochub.io/#css/
Інтэрактыўная шпаргалка на OverAPI: http://overapi.com/css/
TODO (разабраць):
- Комплексная дакумэнтацыя на MDN: https://developer.mozilla.org/en-US/learn/css
- Hands on tutorial на westciv: http://www.westciv.com/style_master/academy/hands_on_tutorial/index.html
- Complete css guide на westciv: http://www.westciv.com/style_master/academy/css_tutorial/introduction/index.html
- http://www.css3files.com/
Блогі
Разьдзел CSS на scriptjunkie{} (MSDN Magazine): http://msdn.microsoft.com/en-us/magazine/ff601772.aspx
Прылады
Відэа-ўводзіны да Firefox-дадатку Firebug на css-tricks.com: http://css-tricks.com/video-screencasts/15-introduction-to-firebug/
Базавыя канцэпцыі
Што такое CSS
Вэб-дакумэнт складаецца з 3х слаёў:
- Зьмест (Content) — тое, што аўтар хоча данесьці да чытача.
- Прадстаўленьне (Presentation) — як гэта інфармацыя выглядае.
- Паводзіны (Behavior) — узаемадзеяньні карыстальніка з дакумэнтам.
Асноўная ідэя CSS заключаецца ў тым, каб захоўваць тое, як інфармацыя адлюстроўваецца/прадстаўляецца асобна ад самой інфармацыі. Перавагі такога падыходу:
- Сродкі CSS нашмат больш магутныя за сродкі HTML.
- Магчымасьць рабіць re-use рэсурсаў: адзін
css
-файл можа ўжывацца для шмат дакумэнтаў. Зьмены ў стылі ўсяго сайту/аплікацыі трэба рабіць не ўва ўсіх дакумэнтах сайту, а толькі ў адпаведнымcss
-файле. - Зьмяншаецца аб'ём перадаваемай інфармацыі.
- Зьмест, аддзелены ад стылю, можа выкарыстоўвацца ня толькі браўзэрамі.
Вэрсіі CSS
- CSS1 — прыняты ў 1996 г. Бедны, у асноўным кіраваў тыпаграфікай.
- CSS2 — прыняты ў 1998 г. Нашмат больш магутная вэрсія, але складана рэалізуемая на той момант. З-за апошняй акалічнасьці была зроблена спрошчаная, перагледжаная вэрсія:
- CSS2.1 — звычайна, калі гаворыцца пра 2гую вэрсію CSS, маецца на ўвазе менавіта гэтая вэрсія.
- CSS3 — будучая вэрсія, яшчэ ня прынятая канчаткова, існуючая толькі ў выглядзе асобных рэкамэндацыяў па пэўным разьдзелам. Аднак, у бальшыні асноўных браўзэраў шмат якія асаблівасьці стандарту ўжо рэалізаваныя.
Тыпы CSS і спосабы іх падключэньня
Тыпы аўтарскіх CSS у парадку, у якім браўзэр шукае стыль пэўнага элемэнту:
- Inline (убудаваны) стыль. Пры выкарыстаньні
style
-атрыбуту HTML-аб'ектаў:Убудаваныя стылі абмежаваны тым, што:
- немагчыма вызначыць для якіх тыпаў media яны павінны ўжывацца;
- іх немагчыма ўжыць для pseudo-classes і pseudo-elements.
Недахоп такога спосабу ўжываць стылі ў тым, што яны ўбудаваны ў гэтым выпадку ў кантэнт. Але гэта можа быць апраўдана, калі такім стылем трэба пазначыць толькі адзін (некалькі) элемэнт старонкі.
- Internal (унутраны) стыль. Пры выкарыстаньні
style
-элемэнту ўнутрыhead
-элемэнту HTML:Недахопы амаль тыя ж, што і папярэдняга тыпу. Адзінае, у гэтым выпадку можна дабівацца re-use аднаго і таго ж стылю для некалькіх элемэнтаў HTML, а таксама пазначаць media1.
- External (зьнешні) стыль. Падключаецца са зьнешняга
css
-файлу. Падключэньне магчымае 2ма шляхамі:link
-элемэнт ўнутрыhead
-элемэнту HTML:Гэты мэтад можа таксама выкарыстоўвацца для падключэньня альтэрнатыўных стыляў:
- калі ў элемэнце
link
пазначанаrel=
"stylesheet"
і адсутнічае атрыбутtitle
, стыль лічыцца "нерухомым" ці пастаянным і не можа быць заменены іншым. Калі ў браўзэры абіраецца іншы стыль, ён ужываецца паралельна з гэтым нерухомым, а не замест яго. - калі ў элемэнце
link
пазначанаrel=
"stylesheet"
і прысутнічае атрыбутtitle
, стыль лічыцца змоўчным, але можа быць адключаны, калі карыстач абярэ іншы стыль ў браўзэры. - калі ў элемэнце
link
пазначанаrel=
"alternate stylesheet"
2, стыль па-змоўчваньні не выкарыстоўваецца, але можа быць уключаны карыстачом парз браўзэр. - калі ў некалькіх элемэнтаў
link
маецца атрыбутtitle
з адным і тым жа значэньнем, то ўключэньне аднаго зь іх прывядзе да ўключэньня іншых і, адпаведна, да адключэньня стыляў зь іншымі "імёнамі" ці без "імёнаў".
- калі ў элемэнце
@import
at-rule ўнутрыhead
-элемэнту HTML:
І для 3.а, і для 3.b характэрна тое, што URI's у href
-атрыбуце і ў @import
at-rule зьяўляюцца адноснымі да HTML-дакумэнту, які ўтрымлівае гэтую спасылку. Калі @import
выкарыстоўваецца ў CSS-дакумэнце, тады URI зьяўляецца адносным да гэтага CSS-дакумэнту.
Сынтакс і тэрміналёгія
CSS складаецца з набору выразаў (statements). Выразам можа быць альбо at-rule, якое складаецца з ключавога слова (сымбаль @
, за каторым ідзе at-rule імя), за каторым ідзе блёк ({...}
) ці тэкст, які сканчваецца кропкай з коскай:
Акрамя at-rule выразам можа быць rule-set, каторы складаецца з сэлектара і блёку аб'яўленьняў (сьпісу CSS-атрыбутаў зь іх значэньнямі):
Дзе h2
— сэлектар, а ў блёку аб'яўленьняў пазначаюцца атрыбут color
са значэньнем #666
і атрыбут font-weight
са значэньнем bold
.
Камэнтары
Камэнтары ў CSS пачынаюцца з /*
, а сканчваюцца */
і могуць ахопліваць некалькі радкоў:
CSS Escape Notation
Прадстаўленьне escape (спэцыяльных) сымбаляў у CSS адрозьніваецца ад спосабу рабіць гэта ў HTML. У CSS гэта робіцца наступным чынам: выкарыстоўваецца сымбаль зваротнага слэшу (\), пасьля якога ідуць ад 1 да 6 шаснаццацірычных лічбаў, якія прадстаўляюць код сымбалю з табліцы ISO 10646 standard, каторая эквівалентная Unicode. Любы сымбаль, які адрозьніваецца ад шаснаццацірычнай лічбы перарве пасьлядоўнасьць.
Калі сымбаль, які павінен ісьці адразу пасьля escape сымбалю, таксама уяўляе зь сябе шаснаццацірычную лічбу, трэба альбо дапоўніць escape код нулямі да агульнай іх колькасьці ў 6 лічбаў, альбо ўставіць прагал пасьля escape сымбалю. Напрыклад, калі трэба пазначыць "»back"
, можна ўвесьці альбо "\0000bbback"
, альбо "\bb back"
. З апошняга прыкладу зразумела, што першы прагал пасьля escape сымбалю выдаляецца (нават калі ў гэтым сымбалі ўжываюцца ўсе 6 дазволеных лічбаў). Каб насамрэч уставіць прагал, трэба пазначыць яго двойчы.
Каскад і спэцыфічнасьць
Каскад (першая літара ў скарачэньні CSS, ад ангельскага cascade) азначае, што вызначэньні стылю пэўнага дакумэнту могуць каскадам імпартавацца з розных крыніцаў — HTML-дакумэнт карыстаецца вызначэньнямі стылю, напрыклад, з файла department.css
, апошні ў сваю чаргу імпартуе пэўныя вызначэньні стылю, напрыклад, з файла corporate.css
і г.д.
Такім чынам, для аднаго і таго ж элемэнту могуць адпавядаць розныя вызначэньні стылю з розных файлаў, ці нават з аднаго і таго ж файлу. Якім жа чынам вырашаецца які зь іх ужыць? Гэты працэс вырашэньня для кожнага з атрыбутаў складаецца з 4 крокаў:
- Знайсьці ўсе аб'яўленьні, якія вызначаюць значэньне пэўнага атрыбуту для пэўнага элемэнту.
- Адсартаваць гэтыя аб'яўленьні ў адпаведнасьці з іх узроўнем важнасьці і паходжаньня.
- Адсартаваць аб'яўленьні ў межах аднолькавага узроўню важнасьці і паходжаньня па спэцыфічнасьці сэлектараў.
- Апошнім крокам, калі некалькі аб'яўленьняў маюць аднолькавую важнасьць, паходжаньне і спэцыфічнасьць, адсартаваць іх у пасьлядоўнасьці іх сьледаваньня ў файлах.
Першым крокам агент (звычайна браўзэр) шукае ўва ўсіх даступных крыніцах вызначэньні пэўнага атрыбуту.
Крыніцы стыляў
Крыніцамі могуць быць: стылі самога агенту, аўтарскія стылі, стылі карыстальніка.
Стылем агентаў зьяўляюцца дэфолтныя стылі для элемэнтаў, значэньні іх звычайна (але не заўсёды) супадаюць з дэфолтнымі стылямі для элемэтнаў HTML са спэцыфікацыі (гл. разьдзел "Typical default display properties", напрыклад элемэнтаў a
і b
).
Агенты могуць таксама даваць магчымасьць іх карыстальнікам ствараць уласныя дэфолтныя стылі, альбо стылі для пэўных пляцовак.
Ну, і напрыканцы аўтарскія стылі — уласна і ёсьць стылі ў агульным разуменьні, каторыя падключаюцца да HTML-дакумэнту праз элемэнты link
і style
.
Праходзячы па ўсім аб'яўленьням у вышэйазначаных стылях, агенты выбіраюць сярод іх толькі тыя, сэлектары каторых адпавядаюць патрэбнаму элемэнту.
Такім чынам, у канцы першага кроку мы маем усе аб'яўленьні пэўнага атрыбуту, вызначаныя для пэўнага элемэнту.
Важнасьць аб'яўленьняў
Другім крокам вызначаецца ўзровень важнасьці сярод усіх знойдзенных аб'яўленьняў. Акрамя звычайных аб'яўленьняў можна пазначаць больш важныя — праз дадаваньне !important
у самы канец аб'яўленьня:
Парадак пры вызначэньні ўзроўню важнасьці наступны (ад меньш да больш важнага):
- аб'яўленьні ў стылях агенту;
- звычайныя аб'яўленьні ў стылях карыстальніка;
- звычайныя аб'яўленьні ў аўтарскіх стылях;
- важныя аб'яўленьні ў аўтарскіх стылях;
- важныя аб'яўленьні ў стылях карыстальніка.
Адпаведна, сярод усіх магчымых аб'яўленьняў выбіраецца тое, каторае аказалася найбольш важным.
Спэцыфічнасьць сэлектараў
Трэцім крокам сярод найбольш важных (калі іх больш за адно) выбіраецца тое аб'яўленьне, сэлектар каторага больш спэцыфічны.
Ступень спэцыфічнасьці вызначаецца па пасьлядоўнасьці лічбаў a,b,c,d
, дзе a
найбольш спэцыфічнае, b
менш спэцыфічнае за a
, c
менш спэцыфічнае за b
, а d
найменш спэцыфічнае. Такім чынам, калі сярод усіх сэлектараў будзе пэўны са значэньнем у a
большым, за астатнія сэлектары, ён будзе самым спэцыфічным. Калі будзе некалькі сэлектараў з найвялікшым значэньнем у a
, сярод іх будзе выбраны той, у каторага большае значэньне ў b
, і г.д. Гэтыя лічбы адпавядаюць:
- аб'яўленьне ў
style
-атрыбуце адпаведнага HTML-элемэнту; - колькасьць ID-сэлектараў;
- колькасьць class-сэлектараў, attribute-сэлектараў і pseudo-клясаў;
- колькасьць element-сэлектараў і pseudo-элемэнтаў.
Астатнія тыпы сэлектараў маюць нулявую спэцыфічнасьць і проста ігнаруюцца пры падліку. Напрыклад:
Вынік падліку спэцыфічнасьці сэлектараў, прыведзеных вышэй, пры вызначэньні якое ж значэньне атрыбуту color
ужыць да чарговага p
-элемэнту прыведзена ў табліцы ніжэй:
Selector | Inline стыль |
IDs |
Classes, attributes, pseudo-classes |
Elements, pseudo-elements |
---|---|---|---|---|
body#home div#warning p.message | 0 | 2 | 1 | 3 |
* body#home>div#warning p.message | 0 | 2 | 1 | 3 |
#home #warning p.message | 0 | 2 | 1 | 1 |
#warning p.message | 0 | 1 | 1 | 1 |
#warning p | 0 | 1 | 0 | 1 |
p.message | 0 | 0 | 1 | 1 |
p | 0 | 0 | 0 | 1 |
Парадак сьледаваньня
Калі ж і на трэцім кроку не ўдалося звузіць колькасьць пасуючых аб'яўленьняў да аднаго, тады ўлічваецца іх парадак у зыходных файлах. Той, каторы сустракаецца апошнім, перакрывае папярэднія і насамрэч ужываецца.
Спадчыннасьць
Значэньні пэўных атрыбутаў (напр. font-size
ці color
), калі не пазначаныя наўпрост, спадкуюцца элемэнтамі ад іх бацькоўскіх элемэнтаў:
У прыкладзе вышэй тэкст і ў элемэнце p
, і ў em
, і ў a
будзе памерам 20px
.
Калі ж значэньні атрыбутаў аўтаматычна не спадкуюцца (напр. background-color
), іх можна ўспадкаваць уручную, пазначыўшы для пэўнага атрыбуту ў якасьці яго значэньня inherit
, калі гэта дазваляецца спэцыфікацыяй, натуральна.
At-rules
At-rules — гэта інструкцыі ці дырэктывы для парсера CSS.
@charset
Выкарыстоўваецца для пазначэньня кадоўкі3 зьнешняга файлу стыляў (css
-файлу). Па зразумелым прычынам гэтая дырэктыва, калі прысутнічае, павінна быць самым першым выразам у css
-файле.
Агенты карыстаюцца наступным сьпісам пры вызначэньні кадоўкі css
-файлу, у парадку зьмяншэньня прыярытэту:
- Атрыбут
charset
HTTP загалоўкуContent-Type
, каторы дасылаецца вэб-сэрверам. @charset
-дырэктыва.- Атрыбут
charset
link
-элемэнту, каторым HTML-дакумэнт спасылаецца даcss
-файлу. - Кадоўка дакумэнту, каторы спасылаецца да гэтага
css
-файлу.
UTF-8
.
Прыклад
@import
Зьяўляецца мэханізмам імпартаваньня аднаго файлу стыляў у іншы. Выкарыстоўваецца наступным чынам:
У выпадку пазначэньня адносных спасылак/шляхоў "адпраўной кропкай" лічыцца месцазнаходжаньне файлу стыляў, у якім гэтая дырэктыва зьмешчана. Пасьля спасылкі/шляху могуць пазначацца media-тыпы, для якіх гэтая дырэктыва павінна ўжывацца.
@import
-дырэктыва павінна ісьці вышэй за ўсе rule-sets, у адваротным выпадку яна будзе праігнаравана.
@media
@page
@font-face
Дырэктыва дазваляе выкарыстоўваць у сеціўных старонках несыстэмныя шрыфты. Больш падрабязную інфармацыю пра шрыфты ўвогуле, пра іх фарматы, пра стэкі сыстэмных шрыфтоў і магчымасьці ўбудоўваць несыстэмныя глядзіце адпаведны разьдзел у даведніку па распрацоўцы сайтаў.
Улічваючы неаднастайнасьць фарматаў, каторымі карыстаюцца розныя апэрацыйныя сыстэмы, лепш за ўсё карыстацца генэратарам ад Fontsquirrel, каторы ня толькі генэруе правільны і ўсеабдымны код, але і канвэртуе шрыфт з сыходнага фармату ў іншыя распаўсюджаныя, для падтрымкі як мага большай колькасьцю браўзэраў. Разгледзем некаторыя з опцыяў гэтага генэратару:
- Група опцыяў Rendering:
- Apply Hinting: палепшанае адлюстраваньне шрыфту на Windows-плятформах. Ад гэтай опцыі варта адмаўляцца толькі ў тым выпадку, калі вы дакладна ведаеце, што шрыфт ужо аптымізаваны.
- Remove Kerning: для «палягчэньня» шрыфту можна абраць гэтую опцыю, каторая выдаліць kerning-даныя з шрыфту. Даволі сьмела можна абіраць гэтую опцыю для асноўнага тэксту, але з вялікай асьцярогай для загалоўкаў, ці ўвогуле лепш адмовіцца ад опцыі для апошняга.
- WebOnlyTM: кажа браўзэрам не ўсталёўваць шрыфт у сыстэму, каб пазьбегнуць несанкцыяваных копій нявольных шрыфтоў.
- Пры дапамозе групы опцыяў Subsetting можна абмяжоўваць шрыфт на ўтрыманьне даных толькі пэўных знакаў:
- Basic Subsetting: стандартны набор знакаў лацінскіх моваў.
- Custom Subsetting: дазваляе ўручную вызначаць набор знакаў.
- No Subsetting: ніяк не абмяжоўвае шрыфт, ён будзе ўтрымліваць усе знакі, якія ў ім вызначаныя.
- Група опцыяў CSS Formats:
- Fontspring Syntax: найбольш простая і сумяшчальная опцыя.
- Smiley
- Mo’ Bulletproofer
- Група опцыяў CSS options:
- Style Linking: групуе розныя стылі аднаго сямейства, каб пазьней можна было асобна рэгуляваць стыль і таўчшыню шрыфта праз атрыбуты
font-style
іfont-weight
. Ужываньне гэтай опцыі магчыма толькі, калі шрыфт складаецца з чатырох стандартных стыляў: regular, italic, bold і bold italic, інакш яе выкарыстоўваць ня варта. - Base64 Encode: убудаваньне шрыфту пры дапамозе base64-кадаваньня ў CSS-код. У выніку чаго шрыфт не зьявіцца асобным файлам у кэшы браўзэра.
- Style Linking: групуе розныя стылі аднаго сямейства, каб пазьней можна было асобна рэгуляваць стыль і таўчшыню шрыфта праз атрыбуты
Прыклад генэруемага коду:
@namespace
Сэлектары
Сэлектары — гэта шаблёны, каторыя вызначаюць да якіх элемэнтаў HTML будуць ужытыя аб'явы, якія зьмяшчаюцца ў блёку пасьля гэтага сэлектара. Гэтыя аб'яўленьні будуць ужытыя да ўсіх элемэнтаў, каторыя адпавядаюць шаблёну, акрамя выпадку, калі яны перавызначаныя ў іншым, больш спэцыфічным сэлектары.
Сэлектар можа складацца з шэрагу простых сэлектараў, якія падзяляюцца паміж сабой камбінатарамі. Псэўда-элемэнты таксама могуць быць зьмешчаныя адразу пасьля апошняга простага сэлектару ў шэрагу.
http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/
Унівэрсальны сэлектар
Сэлектар паводле элемэнтаў
Сэлектар паводле клясаў
Сэлектар паводле ідэнтыфікатараў
Сэлектар паводле атрыбутаў
Псэўда-клясы
Псэўда-элемэнты
Family.scss is a set of 26 smart Sass mixins which will help you to manage the style of :nth-child’ified elements, in an easy and classy way
Групаваньне сэлектараў
Камбінатары сэлектараў
Атрыбуты
Па тыпах
Box-атрыбуты
Атрыбуты разьмяшчэньня
Атрыбуты сьпісаў
Атрыбуты табліцаў
Атрыбуты колераў і фонаў
Тыпаграфічныя атрыбуты
Атрыбуты згенераванага зьместу
Атрыбуты UI
Paged-media атрыбуты
Vendor-спэцыфічныя атрыбуты
Апісаньне атрыбутаў
Значэньні
Даўжыні
Тып значэньняў шмат якіх CSS-атрыбутаў пазначана як <length>
. Гэта велічыня, якая складаецца з лічбавага значэньня і адзінкі вымярэньня, паміж якімі не дазваляецца нават прагал. Калі у якасьці лічбавага значэньня выкарыстоўваецца 0
, тады адзінку можна апусціць.
Адносныя адзінкі вымярэньня
Тры магчымыя адносныя адзінкі вымярэньня прыведзены ў табліцы ніжэй:
Адзінка | Апісаньне |
---|---|
em | цяперашні памер шрыфту |
ex | вышыня літары х цяперашняга шрыфту |
Адзінкі em
і ex
залежаць ад памеру шрыфту, каторы ўжываецца да элемэнту.
Значэнье 1em
адпавядае памеру цяперашняга шрыфту (успадкаванага ад бацькоўскага элемэнту), якім бы чынам ён ня быў вызначаны. Такім чынам, выраз font-size:
1em;
ня мае ніякай сілы, яго вынік такі ж, калі б мы ўвогуле яго не прыводзілі. А пазначэньне font-size:
1.2em;
зробіць шрыфт адпаведнага элемэнту на 20% большым за памер бацькоўскага шрыфту.
Значэнье 1ex
адпавядае вышыні літары х цяперашняга шрыфту, як паказана на малюнку ніжэй. Цікава, што гэтае значэньне вызначана ў тым ліку і для шрыфтоў, якія не ўтрымліваюць літару х.
![Памер шрыфту і літары <i>х</i> Памер шрыфту і літары <i>х</i>](../images/font-sizes.png)
Варта таксама адзначыць, што даччыныя элемэнты спадкуюць не адносныя значэньні ад бацькоў, а разьлічаныя. У прыкладзе ніжэй значэньнем атрыбуту text-indent
элемэнту h1
будзе 36px
, а не 45px
, калі h1
зьяўляецца даччыным да элемэнту body
.
Абсалютныя адзінкі вымярэньня
У наступнай табліцы прыводзяцца абсалютныя адзінкі вымярэньня:
Адзінка | Апісаньне |
---|---|
mm | мілімэтры |
cm | сантымэтры |
in | цалі (1 цаля роўная 25,4 мм) |
pt | пункты (1 пункт роўны 1/72 цалі ці 0,353 мм) |
pc | цыцэра (1 цыцэра роўная 12 пунктам, 1/6 цалі ці 4,23 мм) |
px | пікселі (1 піксэль роўны 0,75 пунктаў, 1/96 цалі ці 0,26 мм) |
Абсалютныя адзінкі не рэкамэндуецца ўжываць для вызначэньня памеру шрыфтоў.
Хаця піксэль і пазначаны ў спэцыфікацыі як абсалютная адзінка вымярэньня і хаця аб'екты, чые памеры пазначаны ў піксэлях, сапраўды не скаліруюцца ў браўзэры, усё ж яе варта лічыць адноснай адзінкай, таму што звычайна піксэль — гэта мінімальна магчымая для адлюстраваньня кропка манітору і, натуральна, гэта велічыня розная ў розных маніторах. Ужываць піксэлі для манітораў з высокім разрозьненьнем не рэкамэндуецца.
Выявы
Tips & Tricks
Разьмяшчэньне
How to Centre and Layout Pages Without a Wrapper
Візуальна роўнавышынныя калёнкі пры дапамозе градыенту
Resizing
Бокс
Праблема згортваньня бацькоўскага элемэнту пры даччыным float
Калі ўва ўсіх даччыных элемэнтах боксу адзначаны атрыбут float
(left
ці right
), тады ён будзе згортнутым (collapsed), быццам ён пусты, без даччыных элемэнтаў. Напрыклад, маем наступные вызначэньне стылю:
і наступны HTML-код:
што будзе выглядаць:
![Прыклад згортваньня бацькоўскага элемэнту пры даччыным float Прыклад згортваньня бацькоўскага элемэнту пры даччыным float](../images/css_tricks_collapse_by_float.png)
Як бачым, у сьпісу няма чорнага тлу, як гэта вызначана ў стылі. Гэта таму, што ён нулявога памеру (не абгортвае даччыныя элемэнты). Вырашыць гэтую праблему можна наступным чынам. Па-першае, бацькоўскаму элемэнту можна дадаць атрыбут overflow: hidden;
:
Па-другое, можна скарыстацца тэхнікай clearfix. Для гэтага дададзім да нашага сьпісу клясу clearfix
:
і дададзім наступнае вызначэньне стылю для гэтай клясы:
і першы, і другі варыянты прывядуць да наступнага выніку:
![Выпраўленае згортваньне бацькоўскага элемэнту пры даччыным float Выпраўленае згортваньне бацькоўскага элемэнту пры даччыным float](../images/css_tricks_collapse_by_float_fix.png)
Множныя бордэры
Пры неабходнасьці задаць боксу множныя бордэры можна скарыстацца наступнай тэхнікай:
Тады наступны код:
прывядзе да такога выніку:
![Прыклад множных бордэраў Прыклад множных бордэраў](../images/css_tricks_multi_borders.png)
Колеры
Transitioning
Take Advantage of CSS3 to Achieve Subtle Design (paragraph 1)
Градыенты
Quick Tip: Understanding CSS3 Gradients
Цені
Quick Tip: Getting Clever with CSS3 Shadows
Формы
Прыклад рэалізацыі Float Label Pattern
Тэкст
Вэртыкальны тэкст
Пры патрэбе адлюстраваць слова вэртыкальна (не павернутым на 90 градусаў, але менавіта вэртыкальна), можна прыбегнуць да наступнай тэхніцы. Паміж літарамі слова ставім прагалы:
і ўжываем наступны стыль:
памер шрыфту пры гэтым можна зьмяняць любым чынам — адзінка em
у шырыні блёку будзе заўсёды адпавядаць вышыні літары M пры актуальным памеры шрыфта, то бок адна літара гарантавана зьмесьціцца, а загадзя вялікае значэньне ў letter-spacing
не дазволіць 2 літарам адлюстравацца на адным радку:
N e t t u t s
Эфэкты пры дапамозе ценю
http://unitinteractive.com/blog/2010/11/03/text-shadow-and-too-much-time
Mastering CSS3: 7 Cool text-shadow Samples You Can’t Miss
Фігуры
Shapes of CSS – розныя геамэтрычныя фігуры пры дапамозе чыстага CSS
Рознае
Fold Effect
101 CSS Techniques Of All Time - Part1
101 CSS Techniques Of All Time - Part2
CSS Layouts: The Fixed. The Fluid. The Elastic.
6 Keys to Understanding Modern CSS-based Layouts
Multiple Backgrounds and CSS Gradients
rgba: zenelements.com, 24ways.org, css-tricks.com
6 smashingly practical css3 effects
What does '?' do in a Css link?, What does appending "?v=1" to CSS and Javascript URLs in link and script tags do?
How to make a DIV always float on the screen in top right corner?
Basic CSS3 Techniques That You Should Know
Getting to Work with CSS3 Power Tools
CSS Fundamentals: CSS 3 Transitions
9 Most Common IE Bugs and How to Fix Them
CSS: Innovative Techniques and Practical Solutions
The Bright (Near) Future of CSS
5 Awesome Things That You Can Do with CSS3
Better Semantics with CSS Combinators & Selectors
How to spice up your menu with CSS3
Fluid CSS3 Slideshow with Parallax Effect
How to Create a Fast Hover Slideshow with CSS3
Direction-Aware Hover Effect with CSS3 and jQuery
How to create animated tooltips with CSS3
How to Create a CSS3-Only Tab Control Using the :target Selector
Stacked Elements with CSS3 Pseudo-Elements
3D flipping circle with CSS3 and jQuery
Learn HTML5, CSS3, Javascript and more...
Bringing pages alive with CSS Transforms & Animations
How to Create a Shuffled Paper Effect in CSS3
Шаблёны, па-над-CSS канцэпцыі, прылады
Reset CSS
Канцэпцыя грунтуецца на тым падыходзе, што некаторыя з дэфолтных значэньняў CSS-атрыбутаў скідваюцца ў none
/0
/1
значэньні, каб потым усталёўвацца ўручную/яўна пры неабходнасьці. Гэта робіцца з-за таго, што гэтыя значэньні адрозьніваюцца ў розных браўзерах — для большай сумяшчальнасьці рэалізацыі сярод усіх браўзэраў.
Код "скіду" некаторых дэфолтных значэньняў:
Лічыцца, што выкарыстоўваць саму па сабе гэтую канцэпцыю няма вялікага сэнсу. Замест яе трэба карыстацца альбо ўласнымі надбудовамі над ёй, альбо больш шырокімі і магутнымі канцэпцыямі/фрэймворкамі, напр. Boilerplate, Blueprint.
Boilerplate
Less CSS
Прылада, якая спрашчае стварэньне CSS-стыляў.
Пераменныя
З дапамогаю пераменных можна пазначаць шырока ўжываныя значэньні ў адным месцы, што спрашчае далейшыя глябальныя зьмены гэтых значэньняў — значэньне зьмяняецца ў адным месцы, а не паўсюдна, дзе ўжываецца.
Дамешкі
Дамешкі (mixins) дазваляюць атрыбуты аднаго сэлектару/клясы убудоўваць (embed) ў іншы. Прынцып падобны да пераменных, адно што працуе для цэлых блёкаў і ўтрымлівае магчымасьць перадаваць парамэтры.
Укладзеныя правілы
Укладзеныя правілы (nested rules) дазваляюць запісваць герархічныя правілы ў выглядзе герархіі сэлектараў (укладзеных адзін у другі) замест складанай лінейнай запісі.
Функцыі і апэрацыі
Калі некаторыя значэньні ў вашых стылях зьяўляюцца прапарцыйнымі ў адносінах да іншых, можна карыстацца для гэтага матэматчнымі апэрацыямі, а таксама "зьвяртацца" да JavaScript-функцыяў.
Выкарыстаньне
Стыль пішацца ў LESS-фармаце і запісваецца ў файл з пашырэньнем .less
. А затым ёсьць 2 шляхі выкарыстаньня:
- Пры наяўнасьці ўсталяванага Ruby можна скарыстацца адпаведным gem'ам і скампіляваць
less
-файл уcss
-файл.Усталёўваем gem праз кансоль:
Знаходзячыся ў тэчцы з
less
-файлам запускаем у кансолі наступную каманду, каторая запіша вынік сваёй працы ўcss
-файл з такім жа імем:Пасьля гэта можна выкарыстоўваць файл стыляў
<STYLE_NAME>.css
звычайным чынам. - Client-side выкарыстаньне. Калі вы не можаце скарыстацца папярэднім спосабам і перакананы, што карыстальнікі сайту/аплікацыі не адключаюць у браўзэры працу скрыптоў, тады можна ў якасьці крыніцы стыляў падключаць у HTML наўпрост
less
-файл (праз элемэнтlink
, зьвярніце пры гэтым ўвагу на патрэбнае значэньне атрыбутуrel
):Пасьля гэтага ўключыце спасылку на скрыпт (падключэньне
less
-стыляў уhead
павінна абавязкова папярэднічаць падключэньню скрыпта), папярэдне спампаваўшы гэты скрыпт:
Sass
Sass – гэта CSS-пашырэньне, якое дадае магчымасьць вызначаць пераменныя, дамешкі, укладзеныя правілы і іншае. Sass-фармат трансфармуецца ў CSS-фармат пры дапамозе прыладаў каманднага радку альбо пры дапамозе дадаткаў адпаведных вэб-фрэймворкаў.
Sass мае два варыянты сынтаксісу. Найбольш ужываны зь іх вядомы як «SCSS» (ад «Sassy CSS») і зьяўляецца па-над-клясай у адносінах да CSS-сынтаксісу. У прыватнасьці гэта азначае, што любы карэктны CSS зьяўляецца адначасова і карэктным SCSS. Файлы SCSS маюць пашырэньне .scss
.
Другі, састарэлы сынтаксіс вядомы як проста «Sass». Ён зьяўляецца YAML-падобным сынтаксісам і мае пашырэньне .sass
.
Пераменныя
З дапамогаю пераменных можна пазначаць шырока ўжываныя значэньні ў адным месцы, што спрашчае далейшыя глябальныя зьмены гэтых значэньняў — значэньне зьмяняецца ў адным месцы, а не паўсюдна, дзе ўжываецца.
Дамешкі
Дамешкі (mixins) дазваляюць атрыбуты аднаго сэлектару/клясы убудоўваць (embed) ў іншы. Прынцып падобны да пераменных, адно што працуе для цэлых блёкаў і ўтрымлівае магчымасьць перадаваць парамэтры.
Укладзеныя правілы
Укладзеныя правілы (nested rules) дазваляюць запісваць герархічныя правілы ў выглядзе герархіі сэлектараў (укладзеных адзін у другі) замест складанай лінейнай запісі.
Спадчыннасьць
У Sass таксама магчыма прызначыць, каб адзін сэлектар цалкам успадкоўваў стыль іншага.
Функцыі і апэрацыі
TODO
http://compass-style.org/.. compass init rails .
— ініцыялізацыя компаса ў Rails-праекце.
http://rubygems.org/gems/font-stack
Праверка CSS
Сэрвіс, каторыя выдае ня толькі фармальныя памылкі/недакладнасьці: http://csslint.net/
stress testing the CSS: https://github.com/andyedinborough/stress-css
Сьцісканьне CSS
Прылады, каторыя дазваляюць сьціскаць (мінімізаваць) CSS для вытворчага асяродку: