Wstawianie danych do atrybutu style z obiektu w React
Style CSS do elementów można również dodawać
za pomocą atrybutu style.
W tej i kilku kolejnych lekcjach
przyjrzymy się metodom stylowania inline.
Teraz nie będziemy podłączać pliku
styles.css, a przekażemy odpowiednie
wartości do atrybutu style w postaci obiektu
ze stylami dla każdego tagu, które
będziemy pisać bezpośrednio w pliku komponentu.
Weźmy więc nasz komponent bez stylów CSS, który robiliśmy w poprzedniej lekcji:
function App() {
return (
<div>
<p>text</p>
<p>text</p>
<p>text</p>
</div>
);
}
Stwórzmy w pliku App.js przed
poleceniem return obiekt
ze stylami CSS dla diva w zmiennej
class1. Pamiętaj, że nazwy
właściwości tutaj pisze się w
camelCase
notacji, a wartości właściwości należy
ująć w cudzysłów:
const class1 = {
width: '200px',
border: '2px solid brown',
padding: '10px',
textAlign: 'center'
};
Teraz dodajmy obiekt class2 ze
stylami dla pierwszego akapitu:
const class2 = {
color: 'orangered',
fontWeight: 'bold'
}
Obiekt class3 ze
stylami dla drugiego akapitu:
const class3 = {
fontStyle: 'italic',
color: 'brown',
}
I wreszcie class4 dla
ostatniego:
const class4 = {
backgroundColor: 'orange',
fontWeight: 'bold',
color: 'white',
}
Teraz, aby zastosować w komponencie
klasy CSS, użyjemy atrybutu
style. Dla pierwszego akapitu
mieliśmy zmienną class2,
przekażmy ją jako wartość:
<p style={class2}>text</p>
W podobny sposób dodajmy style z obiektów dla pozostałych tagów.
W rezultacie kod komponentu będzie wyglądać następująco:
function App() {
const class1 = {
width: '200px',
border: '2px solid brown',
padding: '10px',
textAlign: 'center',
};
const class2 = {
color: 'orangered',
fontWeight: 'bold',
};
const class3 = {
fontStyle: 'italic',
color: 'brown',
};
const class4 = {
backgroundColor: 'orange',
fontWeight: 'bold',
color: 'white',
};
return (
<div style={class1}>
<p style={class2}>text</p>
<p style={class3}>text</p>
<p style={class4}>text</p>
</div>
);
}
Weź komponent React, który
robiłeś w zadaniu do poprzedniej lekcji,
stwórz obiekty ze stylami CSS do
swoich tagów, umieść je w
odpowiednich atrybutach style.