수색…


소개

스타일은 CSS와 비슷한 스타일 지정 속성 이름을 사용하여 JSON 객체 내에 정의됩니다. 이러한 객체는 구성 요소의 스타일 소품에 인라인으로 배치되거나 StyleSheet.create(StyleObject) 함수에 전달 될 수 있으며 클래스와 비슷한 선택기 이름을 사용하여 더 짧은 인라인 액세스를 위해 변수에 저장 될 수 있습니다 CSS에서.

통사론

  • <Component style={styleFromStyleSheet} />
  • <Component style={styleObject} />
  • <Component style={[style1,style2]} />

비고

Most React 네이티브 스타일은 CSS 폼이지만 낙타의 경우입니다. 따라서 text-decorationtextDecoration 됩니다.

CSS와 달리 스타일은 상속되지 않습니다. 자식 구성 요소가 특정 스타일을 상속 받기를 원하면 명시 적으로 자식 구성 요소에 제공해야합니다. 즉, 전체 View 대해 글꼴 모음을 설정할 수 없습니다.
한 가지 예외는 Text 구성 요소입니다. 중첩 된 Text 는 부모 스타일을 상속합니다.

인라인 스타일을 사용하여 스타일 지정

각 React Native 구성 요소는 style 소품을 사용할 수 있습니다. CSS 스타일 스타일 속성을 사용하여 JavaScript 객체에 전달할 수 있습니다.

<Text style={{color:'red'}}>Red text</Text>

구성 요소가 렌더링 될 때마다 객체를 다시 만들어야하므로 비효율적 일 수 있습니다. 스타일 시트를 사용하는 것이 좋습니다.

스타일 시트를 사용하여 스타일 지정하기

import React, { Component } from 'react';
import { View, Text, StyleSheet } from 'react-native';

const styles = StyleSheet.create({
    red: {
        color: 'red'
    },
    big: {
        fontSize: 30
    }
});

class Example extends Component {
    render() {
        return (
            <View>
                <Text style={styles.red}>Red</Text>
                <Text style={styles.big}>Big</Text>
            </View>
        );
    }
}

StyleSheet.create() 는 값이 숫자 인 객체를 반환합니다. React Native는이 숫자 ID를 올바른 스타일 객체로 변환하는 것을 알고 있습니다.

여러 스타일 추가하기

style 소품에 배열을 전달하여 여러 스타일을 적용 할 수 있습니다. 충돌이있는 경우 목록의 마지막 항목이 우선합니다.

import React, { Component } from 'react';
import { View, Text, StyleSheet } from 'react-native';

const styles = StyleSheet.create({
    red: {
        color: 'red'
    },
    greenUnderline: {
        color: 'green',
        textDecoration: 'underline'
    },
    big: {
        fontSize: 30
    }
});

class Example extends Component {
    render() {
        return (
            <View>
                <Text style={[styles.red, styles.big]}>Big red</Text>
                <Text style={[styles.red, styles.greenUnderline]}>Green underline</Text>
                <Text style={[styles.greenUnderline, styles.red]}>Red underline</Text>
                <Text style={[styles.greenUnderline, styles.red, styles.big]}>Big red underline</Text>
                <Text style={[styles.big, {color:'yellow'}]}>Big yellow</Text>
            </View>
        );
    }
}

조건부 스타일링

<View style={[(this.props.isTrue) ? styles.bgcolorBlack : styles.bgColorWhite]}>

isTrue 의 값이 true 경우는 검정 바탕색, 그렇지 않으면 흰색이됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow