Tyylittely StyleSheet API:lla ja Flexboxilla
Kirjoittakaa mobiilityylejä StyleSheet.creatella ja Flexboxilla ilman CSS-luokan nimiä.
Tyylittely StyleSheet API:lla ja Flexboxilla on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.
Ei CSS:ää React Nativessa
React Native käyttää JavaScript-tyylittely-APIa — ei CSS-tiedostoja, luokkien nimiä eikä kaskadia. Tyylit ovat JavaScript-objekteja, jotka otetaan käyttöön style-propilla.
StyleSheet.create()
Tehkää tyyliobjekteista StyleSheet.create()-kutsun avulla suorituskyvyn parantamiseksi (tyylit validoidaan ja optimoidaan kerran) ja IDE:n automaattisen täydennyksen käyttöön ottamiseksi.
import { StyleSheet, View, Text } from 'react-native';
function Card() {
return (
<View style={styles.card}>
<Text style={styles.title}>Hello</Text>
</View>
);
}
const styles = StyleSheet.create({
card: { padding: 16, backgroundColor: '#fff', borderRadius: 8, shadowColor: '#000', shadowOpacity: 0.1, elevation: 2 },
title: { fontSize: 18, fontWeight: 'bold', color: '#111' },
});Inline-tyylit
Ottakaa tyylit käyttöön suoraan style-propilla. Taulukkosyntaksi yhdistää useita tyyliobjekteja — myöhemmät tyylit ohittavat aiemmat.
<View style={{ padding: 16, backgroundColor: '#f5f5f5' }} />
// Array merging:
<Text style={[styles.base, isActive && styles.active, { marginTop: 8 }]} />Flexbox React Nativessa
React Native käyttää Flexboxia asetteluun oletusarvoisesti, mutta sen oletusarvot poikkeavat verkosta: flexDirection on oletusarvoisesti 'column' (ei 'row'), ja flex: 1 täyttää käytettävissä olevan tilan.
const styles = StyleSheet.create({
container: {
flex: 1, // fill available space
flexDirection: 'column', // default in RN (web default is 'row')
justifyContent: 'center', // main axis alignment
alignItems: 'center', // cross axis alignment
},
});Riviasettelu
Käyttäkää flexDirection: 'row' -määritystä lasten asettamiseen vaakasuunnassa. Se vastaa CSS-määrityksiä display: flex; flex-direction: row.
const styles = StyleSheet.create({
row: {
flexDirection: 'row',
alignItems: 'center',
gap: 12, // gap is supported in RN 0.71+
},
});
<View style={styles.row}>
<Image source={avatar} />
<Text>{username}</Text>
</View>flex vs width/height
Käyttäkää flex: N -määritystä suhteelliseen mitoitukseen. flex: 1 täyttää kaiken jäljellä olevan tilan, kun taas flex: 2 saa kaksi kertaa niin paljon tilaa kuin sisarukset, joilla on flex: 1.
// Sidebar takes 1/3, content takes 2/3:
<View style={{ flexDirection: 'row', flex: 1 }}>
<View style={{ flex: 1, backgroundColor: '#eee' }}>Sidebar</View>
<View style={{ flex: 2 }}>Content</View>
</View>Absoluuttinen asemointi
Käyttäkää päällekkäin asetettaville elementeille position: 'absolute' yhdessä määritysten top, right, bottom ja left kanssa — tämä vastaa CSS:n absoluuttista asemointia suhteellisen yläelementin sisällä.
const badge = StyleSheet.create({
badge: {
position: 'absolute',
top: -4,
right: -4,
width: 16,
height: 16,
borderRadius: 8,
backgroundColor: 'red',
},
});Alustakohtaiset tyylit
Käyttäkää Platform.OS- tai Platform.select()-määritystä erilaisten tyylien käyttämiseen iOS:ssä ja Androidissa.
import { Platform } from 'react-native';
const styles = StyleSheet.create({
shadow: {
...Platform.select({
ios: { shadowColor: '#000', shadowOpacity: 0.2, shadowRadius: 4 },
android: { elevation: 4 },
}),
},
});Värit
React Native hyväksyy CSS-värimerkkijonot (heksadesimaali-, rgb- ja nimetyt värit) sekä järjestelmän värien käyttämiseen tarkoitetun PlatformColor-APIn.
import { PlatformColor } from 'react-native';
// System color — adapts to dark mode automatically:
const labelColor = PlatformColor('label', '#000'); // iOS 'label' semantic colorDynaamiset tyylit props-arvoilla
Laskekaa tyylit propseista komponentin sisällä. Välittäkää funktio StyleSheetille tai laskekaa tyyliobjekti inline-tyylinä.
function Badge({ color, size = 16 }: { color: string; size?: number }) {
return (
<View
style={[
styles.badge,
{ backgroundColor: color, width: size, height: size, borderRadius: size / 2 },
]}
/>
);
}
const styles = StyleSheet.create({ badge: { position: 'absolute' } });Pikatarkistus
Mikä on React Nativen oletusarvoinen flexDirection-arvo, joka poikkeaa verkon oletusarvosta?
Kertaus
Käyttäkää StyleSheet.create()-kutsua optimoitujen tyylien luomiseen ja ottakaa tyylit käyttöön style-propilla. React Nativen Flexboxin oletusarvo on flexDirection: 'column', ja flex: 1 täyttää jäljellä olevan tilan. Käyttäkää Platform.select()-kutsua käyttöjärjestelmäkohtaisten varjotyylien määrittämiseen.
Opi React tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 88
- Oppitunnit
- 324
Usein kysytyt kysymykset
Onko oppitunti ”Tyylittely StyleSheet API:lla ja Flexboxilla” ilmainen?
Kyllä – oppitunnin ”Tyylittely StyleSheet API:lla ja Flexboxilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Tyylittely StyleSheet API:lla ja Flexboxilla”?
Kirjoittakaa mobiilityylejä StyleSheet.creatella ja Flexboxilla ilman CSS-luokan nimiä. Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Tyylittely StyleSheet API:lla ja Flexboxilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?
Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- React Nativen ydinkomponentit ja webin DOM
- Tyylittely StyleSheet API:lla ja Flexboxilla
- Navigointi Expo Routerilla
- Laitteen API:en käyttö: kamera, sijainti ja push-ilmoitukset