⊗jsrtPmSyStC 103 of 112 menu

Стилизиране с Styled Components в React

В предишните уроци разгледахме техники за стилизиране с използване на глобални CSS и инлайн стилизиране. В този урок ще работим с по-ефективен за големи приложения подход - използването на библиотеката styled-components.

И така, нека вземем нашия компонент без CSS стилове, който използвахме в предишните уроци:

function App() { return ( <div> <p>text</p> <p>text</p> <p>text</p> </div> ); }

За начало ще инсталираме библиотеката Styled Components:

npm install --save styled-components

След това ще импортираме необходимия пакет в компонента App:

import styled from 'styled-components';

Сега можем да обгръщаме тагове в стилове и да ги прилагаме като React компоненти, но вече със стилове, прикрепени директно в JS. Този подход се нарича още CSS в JS.

Нека стилизираме първия параграф. За това преди функцията App, след редовете за импорт, ще създадем компонент Text1. В обекта styled от библиотеката ни трябва параграф, затова пишем styled.p. След това, в шаблонен низ изброяваме необходимите ни CSS стилове - както в обикновен CSS:

const Text1 = styled.p` color: orangered; font-weight: bold; `;

Както виждате, тук използваме чист CSS под формата на шаблонни низове, което е много удобно. По подобен начин можем да използваме медийни заявки, псевдоелементи, селектори и друга функционалност на CSS.

Сега във функцията на компонента App ще заменим тага p със създадения от нас компонент Text1 с CSS стилове:

<Text1>text</Text1>

По подобен начин ще стилизираме втория и третия параграф. За това ще създадем компоненти Text2 и Text3:

const Text2 = styled.p` font-style: italic; color: brown; `; const Text3 = styled.p` background-color: orange; font-weight: bold; color: white; `;

И накрая, ще стилизираме нашия div. За това ще създадем компонент и ще го наименуваме Container:

const Container = styled.div` width: 200px; border: 2px solid brown; padding: 10px; text-align: center; `;

Ще заменим всички наши тагове със създадените компоненти:

import styled from "styled-components"; const Container = styled.div` width: 200px; border: 2px solid brown; padding: 10px; text-align: center; `; const Text1 = styled.p` color: orangered; font-weight: bold; `; const Text2 = styled.p` font-style: italic; color: brown; `; const Text3 = styled.p` background-color: orange; font-weight: bold; color: white; `; function App() { return ( <Container> <Text1>text</Text1> <Text2>text</Text2> <Text3>text</Text3> </Container> ); }

Благодарение на този подход можем да създаваме многократно използвани компоненти със стилове.

Ако отворите генерираната верстка в панела на разработчика в браузъра, ще видите, че всеки компонент има генерирани свои уникални класове. По този начин не е необходимо повече да се притесняваме за конфликти между класове на отделни компоненти.

По подобен начин могат да се стилизират компоненти, използвайки, например, библиотеката Emotion.

Вземете React компонента, който направихте в задачата към предишния урок, стилизирайте го, използвайки библиотеката Styled Components.

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне