일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- es6
- 리액트
- ㅡ
- parent padding
- 서초구보건소 #무료CPR교육
- CustomHook
- 부모패딩
- ?? #null병합연산자
- tailwindCSS
- createPortal
- BFC
- accordian
- 부모요소의 패딩 무시
- useQueryClient
- DOM
- BlockFormattingContext
- react
- alias설정
- 제어컴포넌트
- transition
- 함수형프로그래밍
- QueryClient
- vite
- Carousel
- 조건부스타일
- 화살표2개
- debouncing
- ignore padding
- 문제해결
- twoarrow
Archives
- Today
- Total
프론트엔드 첫걸음
조건부 스타일 설정 본문
- isValid는 setState로 설정한 state 변수이다.
state 에 따라서 style을 다르게 적용시키려고 할 때
인라인 방식으로 스타일을 설정하거나 class로 설정할 수 있다. - isValid = true 일 때 줄 스타일 invalid 설정
/*form-control과 invalid 클래스가 동시에 있을 때
.form-control.invalid 내부의 input 스타일
form-control과 invalid 사이에 띄어쓰기가 없음*/
.form-control.invalid input {
border-color: red;
background: #ffd7d7;
}
.form-control.invalid label {
color: red;
}
1. 동적인 인라인 스타일 설정
<label style={{ color: !isValid ? 'red' : 'black' }}>Course Goal</label>
2. 동적인 CSS 클래스 설정
<div className={`form-control ${!isValid ? 'invalid' : '' }}`>
<label>Course Goal</label>
<input type="text" onChange={goalInputChangeHandler}/>
</div>
form-control에 클래스 inValid를 더하거나 빼면서 스타일을 변화시키고 싶을 때 템플릿 리터럴을 사용한다.
템플릿 리터럴은 백틱을 사용하여 플레이스 홀더 ${ } 안에서 표현식을 사용할 수 있으므로 ${ } 안에 조건식을 넣어주어 동적으로 CSS 클래스를 설정한다.
const Modal = () => {
const [zoomed, setZoomed] = useState(true);
return (
<div
className={`zoomed-wrapper ${zoomed && "zoomed-wrapper-show"}`}
onClick={() => setZoomed(false)}
>
<img src={UtilsImg} className="map-img" />
</div>)
}
3. module.css 파일로 설정
파일명을 기존파일명.module.css로 바꾸고 상단에 import styles form './CourseInput.module.css'
로 import
<div className={`${styles['form-control']} ${!isValid && styles.invalid}`}>
<label>Course Goal</label>
<input type="text" onChange={goalInputChangeHandler}/>
</div>
위와 같이 사용한다. (객체에 'form-control' 란 key는 점표기법으로 접근할 수 없어서 대괄호 표기법으로 접근함.)
'개발 공부 > React' 카테고리의 다른 글
modal을 portal (0) | 2022.07.24 |
---|---|
Styled Component 사용하기 ( props 사용해서 동적으로 스타일링 ) (0) | 2022.07.22 |
input된 데이터 양방향 바인딩 또는 UseRef (0) | 2022.07.20 |
조건부 내용 출력 - 삼항연산자 대신 논리연산자 사용해보기 (0) | 2022.07.20 |
리액트 라우터 사용하기 (0) | 2022.07.19 |