⊗jsrtPmSyStC 103 of 112 menu

Stylování pomocí Styled Components v Reactu

V předchozích lekcích jsme si ukázali techniky stylování pomocí globálního CSS a inline stylování. V této lekci budeme pracovat s přístupem efektivnějším pro velké aplikace - použitím knihovny styled-components.

Vezměme si tedy náš komponent bez CSS stylů, který jsme používali v minulých lekcích:

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

Nejprve nainstalujeme knihovnu Styled Components:

npm install --save styled-components

Poté importujeme potřebný balíček do komponentu App:

import styled from 'styled-components';

Nyní můžeme obalovat tagy do stylů a používat je jako React komponenty, ale už s připojenými styly přímo v JS. Tento přístup se také nazývá CSS v JS.

Pojďme nastylovat první odstavec. K tomu před funkcí App po řádcích importu vytvoříme komponent Text1. V objektu styled z knihovny potřebujeme odstavec, proto píšeme styled.p. Poté v šablonovém řetězci vypíšeme potřebné CSS styly - jako v běžném CSS:

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

Jak vidíte, zde používáme čisté CSS ve formě šablonových řetězců, což je velmi pohodlné. Podobným způsobem můžeme používat media query, pseudoprvky, selektory a další funkcionalitu CSS.

Nyní uvnitř funkce komponentu App nahradíme tag p naším vytvořeným komponentem Text1 s CSS styly:

<Text1>text</Text1>

Podobným způsobem nastylujeme druhý a třetí odstavec. K tomu vytvoříme komponenty Text2 a Text3:

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

A nakonec nastylujeme náš div. K tomu vytvoříme komponent a pojmenujeme jej Container:

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

Nahradíme všechny naše tagy vytvořenými komponenty:

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> ); }

Díky tomuto přístupu lze vytvářet znovupoužitelné komponenty se styly.

Pokud otevřete vygenerované rozložení v panelu vývojáře v prohlížeči, uvidíte, že každý komponent má vygenerované své unikátní třídy. Takže se už nemusíme starat o konflikty mezi třídami jednotlivých komponentů.

Podobným způsobem lze stylovat komponenty, s použitím, například, knihovny Emotion.

Vezměte React komponent, který jste dělali v úloze k minulé lekci, a nastylujte jej s použitím knihovny Styled Components.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout