Inline-Tyylien Käyttäminen Reactissa
Pyyhkäise näyttääksesi valikon
Yksi yksinkertainen tapa lisätä tyylejä Reactissa on käyttää inline-tyylejä, samalla tavalla kuin HTML-elementeille lisätään tyylejä style-attribuutilla.
Tärkein ero on, että Reactissa style-attribuutin arvo on JavaScript-olio, ei CSS-merkkijono.
Tässä esimerkki inline-tyylien käytöstä suoraan JSX:ssä:
const App = () => (
<>
<h1
style={{
fontWeight: 700,
fontSize: "32px",
color: "rebeccapurple",
}}
>
App title
</h1>
</>
);
Tässä esimerkissä h1-elementti saa tyylinsä style-attribuutin kautta, joka sisältää JavaScript-olion.
Tärkeitä sääntöjä inline-tyyleille
Kun käytät inline-tyylejä Reactissa, pidä mielessä seuraavat säännöt:
- CSS-ominaisuuksien nimet, joissa on kaksi tai useampia sanaa, tulee kirjoittaa camelCase-muodossa
font-weight→fontWeight;background-color→backgroundColor.
- Arvot kirjoitetaan yleensä merkkijonoina:
"32px","red","rebeccapurple"; - Jotkin ominaisuudet voivat hyväksyä numerot suoraan:
fontWeight: 700.
Nämä säännöt johtuvat siitä, että inline-tyylit kirjoitetaan JavaScriptillä, eivät tavallisella CSS:llä.
Inline-tyylit erillisenä oliona
Jotta JSX pysyy selkeämpänä ja helpommin luettavana, inline-tyylit voidaan tallentaa erilliseen JavaScript-olioon ja välittää sitten style-attribuutille.
const appStyles = {
fontWeight: 700,
fontSize: "32px",
color: "rebeccapurple",
};
const App = () => (
<>
<h1 style={appStyles}>App title</h1>
</>
);
Milloin käyttää sisäisiä tyylejä
Sisäiset tyylit sopivat parhaiten:
- Pienille komponenteille;
- Dynaamisille tyyleille;
- Nopeisiin visuaalisiin muutoksiin.
Ne eivät ole ihanteellisia suurille asetteluille tai monimutkaisille tyyleille, minkä vuoksi ulkoista CSS:ää suositaan usein.
1. Mikä on keskeinen ero tyylien lisäämisessä HTML:ssä ja sisäisten tyylien käytössä Reactissa?
2. Mitä merkintätapaa tulisi käyttää, kun määritellään ominaisuuksien nimiä, joissa on kaksi tai useampia sanoja sisäisissä tyyleissä?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme