Tietojen lisääminen style-attribuuttiin objektista Reactissa
CSS-tyylejä elementeille voidaan lisätä
myös style-attribuutin avulla.
Tässä ja muutamassa seuraavassa oppitunnissa
tarkastelemme inline-tyylittely -menetelmiä.
Nyt emme liitä
styles.css-tiedostoa, vaan välitämme vastaavat
arvot style-attribuuttiin objektina
tyyleillä jokaiselle tagille, jotka me
kirjoitamme suoraan komponenttitiedostoon.
Otetaan siis komponenttimme ilman CSS-tyylejä, jota teimme edellisellä oppitunnilla:
function App() {
return (
<div>
<p>text</p>
<p>text</p>
<p>text</p>
</div>
);
}
Luodaan tiedostossa App.js ennen
return-komentoa objekti
CSS-tyyleillä diville muuttujaan
class1. Muista, että ominaisuuksien
nimet kirjoitetaan tässä
camelCase
-notaatiolla, ja ominaisuuksien arvot tulee
laittaa lainausmerkkeihin:
const class1 = {
width: '200px',
border: '2px solid brown',
padding: '10px',
textAlign: 'center'
};
Lisätään nyt objekti class2
tyyleillä ensimmäiselle kappaleelle:
const class2 = {
color: 'orangered',
fontWeight: 'bold'
}
Objekti class3
tyyleillä toiselle kappaleelle:
const class3 = {
fontStyle: 'italic',
color: 'brown',
}
Ja lopuksi class4
viimeiselle:
const class4 = {
backgroundColor: 'orange',
fontWeight: 'bold',
color: 'white',
}
Nyt soveltaaksemme komponentissa
CSS-tyylejä, käytämme
style-attribuuttia. Ensimmäiselle kappaleelle
meillä oli muuttuja class2,
lähetetään se arvona:
<p style={class2}>text</p>
Samalla tavalla lisätään tyylit objekteista muille tageille.
Tuloksena komponentin koodi näyttää seuraavalta:
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>
);
}
Ota React-komponentti, jonka
teit edellisen oppitunnin tehtävässä,
luo objektit CSS-tyyleillä
tageillesi, aseta ne
vastaaviin style-attribuutteihin.