티스토리 뷰
[CSS]#17 will-change, :focus- within(CSS pseudo-class)
blueprint-12 2021. 10. 31. 21:11will-change(불안정한 animation*사용 시 같이 사용): 기본적으로 브라우저에게 뭔가가 바뀔 것이라고 말해주는 것
(브라우저에게 렌더링 힌트를 주고 element에 실행되길 기대하는 변화를 명시함
+부가설명: will-change는 그래픽카드를 이용해서 애니메이션을 가속화한다.)
이 속성을 쓰면 브라우저가 애니메이션을 더 괜찮게 만들어준다. 왜냐면 이게 바뀔 거라는 것을 알고 있기 때문이다.
*불안정한 animation이란? 어떤 요소에 keyframe을 걸어서 애니메이션 효과를 추가했는데 그 모습이 흔들린다거나 불안정적인 형상을 띄는 animation효과를 지칭합니다.
e.g.)
기존의 animation "heartBeat"는 will-change속성이 없을 시, scale값에 따라 1.5배로 transform하는데 흔들리는 등 불안정적인 모습을 보였습니다. 이를 해결하기 위해 will-change의 값을 transform을 줌으로써 브라우저상의 불안정적인 animation효과를 고쳤습니다. will-change는 정상적으로 작동하는 animation에는 따로 기입하지 않아도 됩니다.
:focus- within(CSS pseudo-class)
The :focus-within CSS pseudo-class matches an element if the element or any of its descendants are focused. In other words, it represents an element that is itself matched by the :focus pseudo-class or has a descendant that is matched by :focus. (This includes descendants in shadow trees.)
-> 콘테이너 엘리멘트의 내부적으로 focus된 element가 있는지 알 수 있도록 도와주는 property
이 선택자는 다음과 같은 예제로 사용될 때 유용합니다 예를 들어, 유저가 form태그 안의 input필드에 마우스를 올렸을 때(focus상태)form 콘테이너 전체를 하이라이팅할 수 있습니다.
->form태그와 같이 잘 사용될 거 같네요.
*사용예시*
/* Selects a <div> when one of its descendants is focused */
div:focus-within {
background: cyan;
}
:focus-within은 조건문처럼 봐도 될 거 같습니다. 위의 예시 코드를 해석하면
만일 div내부 요소가 focused된다면, 배경색을 cyan으로 바꿔줘라는 의미가 됩니다.
ref: https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within
*또 다른 예시*
만일 reply의 내부요소에 focus가 된다면, reply___column의 첫번째 요소를 안보이게 해줘! 라는 의미입니다.
(참고로 display: none -> opcity:0, visibility: hidden;으로 하는 것이 더 나아보입니다.)
앞에있는 focus-within이 true이면 뒤의 element에 해당 CSS를 적용해줘 라는 말과 같습니다.
'Frontend > CSS, HTML' 카테고리의 다른 글
[생활코딩][CSS] flex2(holy grail layout 레이아웃 짜기, Properties for flex-cont, items) (0) | 2021.12.09 |
---|---|
[생활코딩][CSS] flex(flex-basis, shrink, grow) (0) | 2021.12.08 |
[CSS]#16 animation(animation-delay, animaiton-timing-function) (0) | 2021.10.29 |
[CSS]#15 vw, vh, %(percent)/animation: forwards (0) | 2021.10.28 |
[CSS]#14 border-radius세분화/flex children기능 (0) | 2021.10.26 |
- Total
- Today
- Yesterday
- text input pattern
- aspect-ratio
- reactAPI
- 타입스크립트 장점
- 틸드와 캐럿
- 원티드 FE 프리온보딩 챌린지
- 타입스크립트 DT
- grid flex
- 프리렌더링확인법
- 항해99프론트후기
- 부트캠프항해
- 항해99프론트
- 프리온보딩 프론트엔드 챌린지 3월
- 형제 요소 선택자
- getServerSideProps
- getStaticPaths
- Prittier
- 원티드 프리온보딩 프론트엔드 챌린지 3일차
- fs모듈 넥스트
- && 셸 명령어
- nvm경로 오류
- ~ ^
- 원티드 3월 프론트엔드 챌린지
- D 플래그
- float 레이아웃
- 원티드 프리온보딩 FE 챌린지
- tilde caret
- 항해99추천비추천
- nvm 설치순서
- is()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |