Боотстрап, са Твитера

Боотстрап је скуп алата са Твитера дизајниран да покрене развој веб апликација и сајтова.
Укључује основни ЦСС и ХТМЛ за типографију, обрасце, дугмад, табеле, мреже, навигацију и још много тога.

Упозорење за штребера : Боотстрап је направљен са Лесс -ом и дизајниран је да ради изван капије са модерним претраживачима на уму.

Хотлинк тхе ЦСС

За најбржи и најлакши почетак, само копирајте овај исечак на своју веб страницу.

Користите га са мање

Обожавате ли користити мање? Нема проблема, само клонирајте репо и додајте ове редове:

Форк на ГитХуб-у

Преузмите, раздвојите, повуците, поставите проблеме и још много тога уз званични Боотстрап репо на Гитхуб-у.

Боотстрап на ГитХуб-у »

Историја

У ранијим данима Твитера, инжењери су користили скоро сваку библиотеку са којом су били упознати да би испунили захтеве фронт-енда. Боотстрап је почео као одговор на изазове који су се представили и развој се брзо убрзао током Твиттер-овог првог Хацквеек-а.

Уз помоћ и повратне информације многих инжењера на Твиттеру, Боотстрап је значајно порастао да обухвати не само основне стилове, већ и елегантније и издржљивије обрасце дизајна предњег дела.

Прочитајте више на дев.твиттер.цом ›

Подршка за претраживач

Боотстрап је тестиран и подржан у главним модерним претраживачима као што су Цхроме, Сафари, Интернет Екплорер и Фирефок.

Тестирано и подржано у Цхроме-у, Сафарију, Интернет Екплорер-у и Фирефок-у
  • Латест Сафари
  • Најновији Гоогле Цхроме
  • Фирефок 4+
  • Интернет Екплорер 7+

Шта је укључено

Боотстрап долази у комплету са преведеним ЦСС, некомпајлираним и примерима шаблона.

  • Све оригиналне .лесс датотеке
  • Потпуно компајлиран и минимизован ЦСС
  • Комплетна документација водича за стил
  • Пример шаблона странице (ускоро више)

Подразумевана мрежа

Подразумевани систем мреже обезбеђен као део Боотстрап-а је мрежа са 16 колона ширине 940 пиксела. То је укус популарног система мреже 960, али без додатних маргина/подстава на левој и десној страни.

Пример ознаке мреже

Као што је овде приказано, основни распоред се може креирати са две „колоне“, од којих свака обухвата низ од 16 основних колона које смо дефинисали као део нашег система мреже. Погледајте примере у наставку за више варијација.

  1. <див цласс="ров"> цласс = "ред" >
  2. <див цласс = "спан6 цолумнс" >
  3. ...
  4. </див>
  5. <див цласс = "спан10 цолумнс" >
  6. ...
  7. </див>
  8. </див>
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
3
1
4
4
4
4
4
6
6
8
8
5
11
16

Оффсетинг колоне

4
8 офсет 4
4 офсет 4
4 офсет 4
5 офсет 3
5 офсет 3
10 офсет 6

Фиксни распоред

Основни распоред контејнера ширине 940 пиксела и центриран за скоро сваку локацију или страницу.

  1. <боди>
  2. <див цласс = "цонтаинер" >
  3. ...
  4. </див>
  5. </боди>

Флуид лаиоут

Флексибилна флуидна или течна структура странице са минималном и максималном ширином и левом бочном траком. Одлично за апликације.

  1. <боди>
  2. <див цласс = "цонтаинер-флуид" >
  3. <див цласс = "сидебар" >
  4. ...
  5. </див>
  6. <див цласс = "цонтент" >
  7. ...
  8. </див>
  9. </див>
  10. </боди>

Наслови и копија

Стандардна типографска хијерархија за структурирање ваших веб страница.

х1. Наслов 1

х2. Наслов 2

х3. Наслов 3

х4. Наслов 4

х5. Наслов 5
х6. Наслов 6

Пример параграфа

Нуллам куис рисус егет урна моллис орнаре вел еу лео. Цум социис натокуе пенатибус ет магнис дис партуриент монтес, насцетур ридицулус мус. Нуллам ид долор ид нибх ултрициес вехицула ут ид елит.

Пример наслова Има поднаслов…

Мисц. елемената

Коришћење нагласка, адреса и скраћеница

<strong> <em> <address> <abbr>

Када користити

Ознаке за нагласак ( <strong>и <em>) треба да се користе да укажу на додатну важност или нагласак речи или фразе у односу на њену околну копију. Користите <strong>за важност и <em>за наглашавање стреса .

Нагласак у пасусу

Фусце дапибус , теллус ац цурсус цоммодо , тортор маурис цондиментум нибх , ут ферментум масса јусто сит амет рисус. Маеценас фауцибус моллис интердум. Нулла витае елит либеро, а пхаретра аугуе.

Напомена: И даље је у реду да користите <b>и <i>ознаке у ХТМЛ5, али оне више не долазе са инхерентним стиловима. <b>има за циљ да истакне речи или фразе без преношења додатне важности, док <i>је углавном за глас, техничке термине итд.

Аддрессес

Елемент <address>се користи за контакт информације за свог најближег претка или за целокупан рад. Ево како то изгледа:

Твиттер, Инц.
795 Фолсом Аве, Суите 600
Сан Францисцо, ЦА 94107
П: (123) 456-7890

Напомена: Сваки ред у ан <address>мора да се завршава преломом реда ( <br />) или да буде умотан у ознаку на нивоу блока (нпр. <p>) да би правилно структурирао садржај.

Скраћенице

За скраћенице и акрониме, користите <abbr>ознаку ( <acronym>је застарела у ХТМЛ5 ). Ставите скраћени образац у ознаку и поставите наслов за комплетно име.

Блоцккуотес

<blockquote> <p> <small>

Како цитирати

Да бисте укључили блок цитат, умотајте га и <blockquote>ознаке . Користите елемент да наведете свој извор и добићете ем цртицу испред њега.<p><small><small>&mdash;

Лорем ипсум долор сит амет, цонсецтетур адиписцинг елит. Интегер посуере ерат а анте вененатис дапибус посуере велит аликует.

др Јулиус Хибберт

Листе

Унордеред<ul>

  • Лорем ипсум долор сит амет
  • Цонсецтетур адиписцинг елит
  • Интегер молестие лорем ат масса
  • Фацилисис ин претиум нисл аликует
  • Нулла волутпат аликуам велит
    • Пхаселлус иацулис некуе
    • Пурус содалес ултрициес
    • Вестибулум лаореет порттитор сем
    • Ац тристикуе либеро волутпат ат
  • Фауцибус порта лацус фрингилла вел
  • Аенеан сит амет ерат нунц
  • Егет порттитор лорем

Унстилед<ul.unstyled>

  • Лорем ипсум долор сит амет
  • Цонсецтетур адиписцинг елит
  • Интегер молестие лорем ат масса
  • Фацилисис ин претиум нисл аликует
  • Нулла волутпат аликуам велит
    • Пхаселлус иацулис некуе
    • Пурус содалес ултрициес
    • Вестибулум лаореет порттитор сем
    • Ац тристикуе либеро волутпат ат
  • Фауцибус порта лацус фрингилла вел
  • Аенеан сит амет ерат нунц
  • Егет порттитор лорем

Наручено<ol>

  1. Лорем ипсум долор сит амет
  2. Цонсецтетур адиписцинг елит
  3. Интегер молестие лорем ат масса
  4. Фацилисис ин претиум нисл аликует
  5. Нулла волутпат аликуам велит
  6. Фауцибус порта лацус фрингилла вел
  7. Аенеан сит амет ерат нунц
  8. Егет порттитор лорем

Описdl

Листе описа
Листа описа је савршена за дефинисање појмова.
Еуисмод
Вестибулум ид лигула порта фелис ​​еуисмод семпер егет лациниа одио сем нец елит.
Донец ид елит нон ми порта гравида ат егет метус.
Малесуада порта
Етиам порта сем малесуада магна моллис еуисмод.

Грађевински столови

<table> <thead> <tbody> <tr> <th> <td> <colspan> <caption>

Столови су одлични - за много ствари. Међутим, за сјајне табеле је потребно мало маркупирања да би биле корисне, скалабилне и читљиве (на нивоу кода). Ево неколико савета који ће вам помоћи.

Увек умотајте заглавља колона у <thead>тако да је хијерархија <thead>> <tr>> <th>.

Слично заглављима колона, сав садржај тела ваше табеле треба да буде умотан у а <tbody>тако да је ваша хијерархија <tbody>> <tr>> <td>.

Пример: подразумевани стилови табеле

Све табеле ће бити аутоматски стилизоване само са основним ивицама да би се обезбедила читљивост и одржала структура. Нема потребе за додавањем додатних класа или атрибута.

# Име Презиме Језик
1 Неки Једно енглески језик
2 Јое Сикпацк енглески језик
3 Сту Дент Код
  1. <табле цласс="цоммон-табле"> цласс = "цоммон-табле" >
  2. ...
  3. </табле>

Пример: пругаста зебра

Будите мало маштовити са својим столовима додавањем зебрастих пруга—само додајте .zebra-stripedкласу.

# Име Презиме Језик
1 Неки Једно енглески језик
2 Јое Сикпацк енглески језик
3 Сту Дент Код

Напомена: Зебра-трака је прогресивно побољшање које није доступно за старије прегледаче као што је ИЕ8 и старији.

  1. <табле цласс="цоммон-табле зебра-стрипед"> цласс = "заједничка зебраста пругаста" >
  2. ...
  3. </табле>

Пример: пругаста зебра са ТаблеСортер.јс

Узимајући претходни пример, побољшавамо корисност наших табела пружањем функционалности сортирања преко јКуери -ја и додатка Таблесортер . Кликните на заглавље било које колоне да бисте променили сортирање.

# Име Презиме Језик
1 Твоје Једно енглески језик
2 Јое Сикпацк енглески језик
3 Сту Дент Код
  1. <сцрипт срц="јс/јкуери/јкуери.таблесортер.мин.јс"></сцрипт> срц = "јс/јкуери/јкуери.таблесортер.мин.јс" ></сцрипт>
  2. <сцрипт >
  3. $ ( функција () {
  4. $ ( "табле#сортТаблеЕкампле" ). таблесортер ({ сортЛист : [[ 1 , 0 ]] });
  5. });
  6. </сцрипт>
  7. <табле цласс = "цоммон-табле зебра-стрипед" >
  8. ...
  9. </табле>

Подразумевани стилови

Свим обрасцима су дати подразумевани стилови да би се представили на читљив и скалабилан начин. Стилови су обезбеђени за унос текста, изборне листе, текстуалне области, радио дугмад и поља за потврду и дугмад.

Пример легенде форме
Нека вредност овде
Мали исечак текста помоћи
Пример легенде форме
@
Пример легенде форме
Напомена: Ознаке окружују све опције за много веће површине кликова и употребљивију форму.
до Сва времена су приказана као пацифичко стандардно време (ГМТ -08:00).
Блок текста помоћи који описује поље изнад ако је потребно.
 

Наслагане форме

Додајте .form-stackedу ХТМЛ свог обрасца и имаћете ознаке на врху њихових поља уместо са леве стране. Ово одлично функционише ако су ваши обрасци кратки или имате две колоне уноса за теже формуларе.

Пример легенде форме
Пример легенде форме
Мали исечак текста помоћи
Напомена: Ознаке окружују све опције за много веће површине кликова и употребљивију форму.
 

Дугмад

Као конвенција, дугмад се користе за радње, док се везе користе за објекте. На пример, „Преузми“ може бити дугме, а „недавна активност“ може бити веза.

Сви тастери су подразумевано светло сиви, али .primaryје доступна плава класа. Осим тога, лако је користити сопствене стилове.

Пример дугмади

Стилови дугмади се могу применити на било шта са .btnпримењеним. Обично ћете желети да их примените само на елементе <a>, <button>, и селецт . <input>Ево како то изгледа:

 

Алтернативне величине

Желите већа или мања дугмад? Имајте то!

Дисаблед стате

За дугмад која нису активна или их је апликација онемогућила из једног или другог разлога, користите стање онемогућено. То је .disabledза везе и :disabledза <button>елементе.

Линкови

Дугмад

 

Основна упозорења

Поруке у једном реду за истицање неуспеха, могућег неуспеха или успеха акције. Посебно корисно за форме.

×

Ох снап! Промените ово и то и покушајте поново.

×

Холи гауцамоле! Најбоље да се провери, не изгледаш баш добро.

×

Добро урађено! Успешно сте прочитали ову поруку упозорења.

×

Главу горе! Ово је упозорење које захтева вашу пажњу, али још увек није велики приоритет.

Блокирајте поруке

За поруке које захтевају мало објашњења, имамо упозорења о стилу пасуса. Они су савршени за појављивање дужих порука о грешци, упозорење корисника на радњу на чекању или само представљање информација ради већег нагласка на страници.

×

Ох снап! Имате грешку!Промените ово и то и покушајте поново. Дуис моллис, ест нон цоммодо луцтус, ниси ерат порттитор лигула, егет лациниа одио сем нец елит. Црас маттис цонсецтетур пурус сит амет ферментум.

Предузмите ову акцију Или уради ово

×

Холи гауцамоле! Ово је упозорење!Најбоље да се провери, не изгледаш баш добро. Нулла витае елит либеро, а пхаретра аугуе. Праесент цоммодо цурсус магна, вел сцелерискуе нисл цонсецтетур ет.

Предузмите ову акцију Или уради ово

×

Добро урађено!Успешно сте прочитали ову поруку упозорења. Цум социис натокуе пенатибус ет магнис дис партуриент монтес, насцетур ридицулус мус. Маеценас фауцибус моллис интердум.

Предузмите ову акцију Или уради ово

×

Главу горе!Ово је упозорење које захтева вашу пажњу, али још увек није велики приоритет.

Предузмите ову акцију Или уради ово

Модалс

Модали — дијалози или оквири за преглед — су одлични за контекстуалне радње у ситуацијама када је важно да се позадински контекст одржава.

Описи алатки

Твипсиес су веома корисни за помоћ збуњеном кориснику и усмеравање их у правом смеру.

Лорем ипсум долар сит амет илло еррор ипсум веритатис аут исте перспициатис исте волуптас натус илло куаси одит аут натус цонсекуунтур цонсекуунтур, аут натус илло волуптатем одит перспициатис лаудантиум рем долоремкуе тотам волуптас. Волуптасдицта Еакуе Беате Апеам Ут еким Волуптатем Екплицабо Екплицабо, Волуптас Куиа Одит Фугит Аццусантиум Тотам Тотам Арцхитецто Екплицабо Сит Куаси Фугит Фугит, Тотам Долоремкуе Унде Сунт Сед Дицта Куае Аццусантиум Фугит Волуптас Немо Волуптас Волуптатем Рем Куае АУТ ВОЛИТАТИС КУАСИ КУАЕ АУТ ВОЛИТАТИС КУАСИ Цуае.

испод!
јел тако!
лево!
горе!

Поповерс

Користите искачуће елементе да бисте страници пружили подтекстуалне информације без утицаја на изглед.

Поповер Титле

Етиам порта сем малесуада магна моллис еуисмод. Маеценас фауцибус моллис интердум. Морби лео рисус, порта ац цонсецтетур ац, вестибулум ат ерос.

Боотстрап је направљен са Пребоот -ом, пакетом мешавина и променљивих отвореног кода који ће се користити у комбинацији са Лесс -ом , ЦСС предпроцесором за бржи и лакши развој веба.

Проверите како смо користили Пребоот у Боотстрап-у и како можете да га искористите ако одлучите да покренете Лесс на свом следећем пројекту.

Како се користи

Користите ову опцију да бисте у потпуности искористили Боотстрапове Лесс променљиве, миксине и угнежђење у ЦСС-у преко јавасцрипт-а у вашем претраживачу.

  1. <линк рел="стилесхеет/лесс" хреф="лесс/боотстрап.лесс" медиа="алл" /> рел = "стилесхеет/лесс" хреф = "лесс/боотстрап.лесс" медиа = "алл" />
  2. <сцрипт срц = "јс/лесс-1.0.41.мин.јс" ></сцрипт>

Не осећате решење за .јс? Испробајте апликацију Лесс Мац или користите Ноде.јс за компајлирање када примените свој код.

Шта је укључено

Ево неких од најважнијих делова онога што је укључено у Твиттер Боотстрап као део Боотстрап-а. Пређите на веб локацију Боотстрап или страницу пројекта Гитхуб да бисте преузели и сазнали више.

Променљиве боје

Променљиве у Лесс су савршене за одржавање и ажурирање ваше ЦСС главобоље без проблема. Када желите да промените вредност боје или често коришћену вредност, ажурирајте је на једном месту и спремни сте.

  1. // Линкови
  2. @линкЦолор : #8б59ц2;
  3. @линкЦолорХовер : потамнити ( @линкЦолор , 10 );
  4. // Греис
  5. @блацк : #000;
  6. @граиДарк : осветлити ( @блацк , 25 %);
  7. @сива : осветљава ( @црна , 50 %);
  8. @граиЛигхт : осветлити ( @блацк , 70 %);
  9. @граиЛигхтер : осветлити ( @блацк , 90 %);
  10. @вхите : #ффф ;
  11. // Аццент Цолорс
  12. @блуе : # 08б5фб ;
  13. @греен : # 46а546 ;
  14. @ред : # 9д261д ;
  15. @иеллов : #ффц40д;
  16. @оранге : #ф89406;
  17. @пинк : # ц3325ф ;
  18. @љубичаста : #7а43б6;
  19. // Баселине
  20. @баселине : 20пк ;

Коментаришући

Лесс такође пружа још један стил коментарисања поред ЦСС-ове нормалне /* ... */синтаксе.

  1. // Ово је коментар
  2. /* Ово је такође коментар */

Микинс до вазоо

Миксини су у основи укључени или делимични за ЦСС, што вам омогућава да комбинујете блок кода у један. Одлични су за својства са префиксом добављача као што су box-shadow, градијенти унакрсних претраживача, скупови фонтова и још много тога. Испод је пример миксина који су укључени у Боотстрап.

Групе фонтова

  1. #фонт {
  2. . стенограм ( @веигхт : нормал , @сизе : 14пк , @ линеХеигхт : 20пк ) {
  3. фонт - сизе : @сизе ;
  4. фонт - веигхт : @веигхт ;
  5. висина линије : @ линеХеигхт ;
  6. }
  7. . санс - сериф ( @веигхт : нормал , @сизе : 14пк , @ линеХеигхт : 20пк ) {
  8. породица фонтова : " Хелветица Неуе" , Хелветица , Ариал , санс - сериф ;
  9. фонт - сизе : @сизе ;
  10. фонт - веигхт : @веигхт ;
  11. висина линије : @ линеХеигхт ;
  12. }
  13. . сериф ( @веигхт : нормал , @сизе : 14пк , @ линеХеигхт : 20пк ) {
  14. фонт - фамили : "Георгиа" , Тимес Нев Роман , Тимес , санс - сериф ;
  15. фонт - сизе : @сизе ;
  16. фонт - веигхт : @веигхт ;
  17. висина линије : @ линеХеигхт ;
  18. }
  19. . моноспаце ( @веигхт : нормал , @сизе : 12пк , @ линеХеигхт : 20пк ) {
  20. фонт - фамилија : "Монацо" , Цоуриер Нев , моноспаце ;
  21. фонт - сизе : @сизе ;
  22. фонт - веигхт : @веигхт ;
  23. висина линије : @ линеХеигхт ;
  24. }
  25. }

Градијента

  1. #градиент {
  2. . хоризонтално ( @стартЦолор : #555, @ендЦолор: #333) {
  3. бацкгроунд - цолор : @ендЦолор ;
  4. позадина - понављање : понављање - к ;
  5. бацкгроунд - имаге : - кхтмл - градијент ( линеарно , лево горе , десно горе , од ( @стартЦолор ), до ( @ендЦолор )); // Конкуерор
  6. бацкгроунд - имаге : - моз - линеар - градиент ( лево , @стартЦолор , @ендЦолор ); // ФФ 3.6+
  7. бацкгроунд - имаге : - мс - линеар - градиент ( лево , @стартЦолор , @ендЦолор ); // ИЕ10
  8. бацкгроунд - имаге : - вебкит - градијент ( линеарно , лево горе , десно горе , боја - стоп ( 0 %, @стартЦолор ), боја - стоп ( 100 %, @ендЦолор )); // Сафари 4+, Цхроме 2+
  9. бацкгроунд - имаге : - вебкит - линеар - градиент ( лево , @стартЦолор , @ендЦолор ); // Сафари 5.1+, Цхроме 10+
  10. бацкгроунд - имаге : - о - линеар - градиент ( лево , @стартЦолор , @ендЦолор ); // Опера 11.10
  11. - мс - филтер : %( "прогид:ДКСИмагеТрансформ.Мицрософт.градиент(стартЦолорстр='%д', ендЦолорстр='%д', ГрадиентТипе=1)" , @стартЦолор , @ендЦолор ); // ИЕ8+
  12. филтер : е (%( "прогид:ДКСИмагеТрансформ.Мицрософт.градиент(стартЦолорстр='%д', ендЦолорстр='%д', ГрадиентТипе=1)" , @стартЦолор , @ендЦолор )); // ИЕ6 и ИЕ7
  13. бацкгроунд - имаге : линеарни - градијент ( лево , @стартЦолор , @ендЦолор ); // Ле стандард
  14. }
  15. . вертикално ( @стартЦолор : #555, @ендЦолор: #333) {
  16. бацкгроунд - цолор : @ендЦолор ;
  17. позадина - понављање : понављање - к ;
  18. бацкгроунд - имаге : - кхтмл - градијент ( линеарно , лево горе , лево доле , од ( @стартЦолор ), до ( @ендЦолор )); // Конкуерор
  19. бацкгроунд - имаге : - моз - линеар - градиент ( @стартЦолор , @ендЦолор ); // ФФ 3.6+
  20. бацкгроу��д - имаге : - мс - линеар - градиент ( @стартЦолор , @ендЦолор ); // ИЕ10
  21. бацкгроунд - имаге : - вебкит - градијент ( линеарно , лево горе , лево доле , боја - стоп ( 0 %, @стартЦолор ), боја - стоп ( 100 %, @ендЦолор )); // Сафари 4+, Цхроме 2+
  22. бацкгроунд - имаге : - вебкит - линеар - градиент ( @стартЦолор , @ендЦолор ); // Сафари 5.1+, Цхроме 10+
  23. бацкгроунд - имаге : - о - линеар - градиент ( @стартЦолор , @ендЦолор ); // Опера 11.10
  24. - мс - филтер : %( "прогид:ДКСИмагеТрансформ.Мицрософт.градиент(стартЦолорстр='%д', ендЦолорстр='%д', ГрадиентТипе=0)" , @стартЦолор , @ендЦолор ); // ИЕ8+
  25. филтер : е (%( "прогид:ДКСИмагеТрансформ.Мицрософт.градиент(стартЦолорстр='%д', ендЦолорстр='%д', ГрадиентТипе=0)" , @стартЦолор , @ендЦолор )); // ИЕ6 и ИЕ7
  26. бацкгроунд - имаге : линеарни - градијент ( @стартЦолор , @ендЦолор ); // Стандард
  27. }
  28. . усмерено ( @стартЦолор : #555, @ендЦолор: #333, @дег: 45 степени) {
  29. ...
  30. }
  31. . вертикално - три - боје ( @стартЦолор : #00б3ее, @мидЦолор: #7а43б6, @цолорСтоп: 0.5, @ендЦолор: #ц3325ф) {
  32. ...
  33. }
  34. }

Операције и мрежни систем

Замислите се и извршите математику да бисте генерисали флексибилне и моћне мешавине попут оног испод.

  1. // Гридитуде
  2. @гридЦолумнс : 16 ;
  3. @гридЦолумнВидтх : 40пк ;
  4. @гридГуттерВидтх : 20пк ;
  5. // Систем мреже
  6. . контејнер {
  7. ширина : @ситеВидтх ;
  8. маргина : 0 ауто ;
  9. . цлеарфик ();
  10. }
  11. . колоне ( @цолумнСпан : 1 ) {
  12. дисплаи : инлине ;
  13. флоат : лево ;
  14. ширина : ( @гридЦолумнВидтх * @цолумнСпан ) + ( @гридГуттерВидтх * ( @цолумнСпан - 1 ));
  15. маргин - лефт : @гридГуттерВидтх ;
  16. &: прво - дете {
  17. маргин - лефт : 0 ;
  18. }
  19. }
  20. . помак ( @цолумнОффсет : 1 ) {
  21. маргин - лефт : ( @гридЦолумнВидтх * @цолумнОффсет ) + ( @гридГуттерВидтх * ( @цолумнОффсет - 1 )) ! важно ;
  22. }