⊗jsPmStCl 382 of 505 menu

Стылізацыя з дапамогай CSS класаў на JavaScript

У папярэднім ўроке мы з вамі навучыліся мяняць CSS стылі элементаў праз змяненне атрыбута style. Частэй за ўсё гэта не вельмі добрая ідэя. Справа ў тым, што, калі раскідаць CSS стылі па JavaScript кодзе, у далейшым будзе праблематычна змяніць дызайн сайта, так як прыйдзецца капацца ў JavaScript кодзе ў пошуках зашытых туды стыляў.

Больш зручна для далейшай падтрымкі будзе дабаўляць альбо здымаць з элемента CSS класы, тым самым стылізуючы іх патрэбным чынам.

Давайце паглядзім на прыкладзе. Хай у нас ёсць некалькі абзацаў:

<p>text1</p> <p>text2</p> <p>text3</p>

Давайце зробім так, каб па кліку на любы абзац, гэты абзац фарбаваўся ў які-небудзь колер, напрыклад, у зялёны. Для гэтага ў CSS файле зробім спецыяльны клас для афарбоўкі абзацаў:

.colored { color: green; }

Перавага выкарыстання класа ў тым, што цяпер лёгка можна будзе памяняць жаданы колер - для гэтага трэба будзе проста ўнесці змяненне ў CSS файл, не капаючыся ў JavaScript кодзе. Асабліва зручна гэта будзе ў тым выпадку, калі JavaScript код пішаце вы, а ў далейшым стылізаваць яго будзе хтосьці іншы (магчыма менш кваліфікаваны чалавек, які ўмее працаваць толькі з CSS).

Такім чынам, цяпер, пасля ўвядзення класа, па кліку на любы абзац можна змяніць яго колер, проста дадаўшы яму наш клас:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', function() { this.classList.add('colored'); // дадаем абзацу клас }); }

Тлумачыце, чаму я абраў для назвы класа слова colored, а не слова green, яўна якое ўказвае на жаданы намі колер.

Дадзены абзац. Дадзены кнопкі 'перакрэсліць', 'зрабіць тлустым', 'зрабіць чырвоным'. Хай па націску на кожную кнопку зададзенае дзеянне адбываецца з абзацам (становіцца чырвоным, напрыклад).

Беларуская
AfrikaansAzərbaycanБългарскиবাংলাČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць