웹사이트 검색

Angular 2의 스타일 바인딩 및 NgStyle


Angular 2 템플릿에서 인라인 스타일을 쉽게 바인딩할 수 있습니다. 예를 들어 단일 스타일 값을 바인딩하는 방법은 다음과 같습니다.

<p [style.background-color]="'darkorchid'">
  Quite something!
</p>

단위를 지정할 수도 있습니다. 예를 들어 여기서는 단위를 em으로 설정했지만 px, % 또는 rem 다음도 사용할 수 있습니다.

<p [style.font-size.em]="'3'">
  A paragraph at 3em!
</p>

다음은 구성 요소의 속성에 따라 스타일 값을 조건부로 설정하는 방법입니다.

<p [style.font-size.px]="isImportant ? '30' : '16'">
  Some text that may be important.
</p>

여러 값에 대한 NgStyle

간단한 스타일 바인딩은 단일 값에 적합하지만 여러 스타일을 적용하는 가장 쉬운 방법은 NgStyle을 사용하는 것입니다.

<p [ngStyle]="myStyles">
  You say tomato, I say tomato
</p>

그런 다음 myStyles는 다음과 같이 css 속성 이름을 키로 사용하는 객체를 포함하는 구성 요소의 속성이 됩니다.

myStyles = {
'background-color': 'lime',
'font-size': '20px',
'font-weight': 'bold'
}

또는 다음과 같이 인라인으로 제공될 수 있습니다.

<p [ngStyle]="{'background-color': 'lime',
    'font-size': '20px',
    'font-weight': 'bold'}">
  You say tomato, I say tomato
</p>

또는 객체가 메서드의 반환 값일 수 있습니다.

<p [ngStyle]="setMyStyles()">
  You say tomato, I say tomato
</p>

관련 구성 요소 클래스에서

setMyStyles() {
  let styles = {
    'background-color': this.user.isExpired ? 'red' : 'transparent',
    'font-weight': this.isImportant ? 'bold' : 'normal'
  };
  return styles;
}

또한보십시오

  • 클래스 바인딩 + NgClass