[TIL] 1109 LikeLion🦁 FES 07

이좘ꡬ·2021λ…„ 11μ›” 9일
1

Skip Navigation

λ„€μ΄λ²„λ‚˜ λ‹€μŒμ˜ μ›ΉνŽ˜μ΄μ§€μ—μ„œ tabν‚€λ₯Ό 눌러보면 λΈŒλΌμš°μ €μ˜ μ’Œμƒλ‹¨μ— μ•„λž˜μ™€ 같은 메뉴가 λœ¨λŠ” 것을 λ³Ό 수 μžˆλ‹€.이것을 skip navigation ν˜Ήμ€ skip menu라고 λΆ€λ₯΄λ©°, νŽ˜μ΄μ§€μ— ν‘œμ‹œλœ μˆ˜λ§Žμ€ 컨텐츠에 μ†μ‰½κ²Œ μ ‘κ·Όν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” κΈ°λŠ₯이닀. μ›Ή μ ‘κ·Όμ„±κ³Ό μ‚¬μš©μž νŽΈμ˜μ„± ν–₯상에 λ„μ›€λœλ‹€.

μž‘μ„±λ²•

<body> νƒœκ·Έ λ‹€μŒμ— μž‘μ„±ν•œ λ’€ 화면에 보이지 μ•Šκ²Œ μˆ¨κ²Όλ‹€κ°€ focusλ‚˜ activeκ°€ 되면 λ“±μž₯ν•˜λ„λ‘ ν•œλ‹€.

<body>
  <div class="nav-skip">
    <a href="#cont-nav">μ˜ν™” 정보 λͺ©λ‘ λ°”λ‘œκ°€κΈ°</a>
    <a href="#cont-company">νšŒμ‚¬μ •λ³΄ λ°”λ‘œκ°€κΈ°</a>
  </div>
  ...
  <nav id="cont-nav"></nav>
<body/>
.nav-skip a {
    position: absolute;
    top: -200px;
    left: 0;
    width: 300px;
    line-height: 30px;
    border: 1px solid #fff;
    color: #fff;
    background: #333;
    text-align: center;
}

.nav-skip a:active,
.nav-skip a:focus {
    top: 0;
}

transform

skew

X, Y 좕을 κΈ°μ€€μœΌλ‘œ X좕은 쒌우, Y좕은 μƒν•˜λ‘œ κΈ°μšΈμ΄λŠ”(λΉ„νŠΈλŠ”) 효과λ₯Ό μ€€λ‹€.
λ‹¨μœ„λŠ” deg이며,
X μΆ•μ˜ μ–‘μˆ˜ 값은 우츑, 음수 값은 쒌츑으둜 기울이고,
Y μΆ•μ˜ μ–‘μˆ˜ 값은 μ•„λž˜μͺ½, 음수 값은 μœ„μͺ½μœΌλ‘œ κΈ°μšΈμ΄λŠ” 효과λ₯Ό μ€€λ‹€.

transform-origin

transform λ˜λŠ” 물체의 기쀀점은 기본적으둜 쀑심인데 κ·Έ 기쀀점을 λ°”κΎΈλŠ” 속성이닀.
top, bottom, left, right, centerλ‚˜ transform-origin: 0, 0; ν˜•μ‹μ„ μ΄μš©ν•΄ 숫자둜 μ„€μ •ν•  수 있으며 μ•žμ˜ μˆ«μžλŠ” xμΆ• κ°’, λ’€μ˜ μˆ«μžλŠ” yμΆ• 값을 μ˜λ―Έν•œλ‹€.
transform-origin: left top;을 μ μš©ν•œ λ’€ rotate


transition

CSS 속성값이 λ³€ν•  λ•Œ, κ°’μ˜ λ³€ν™”κ°€ 일정 μ‹œκ°„μ— 걸쳐 μΌμ–΄λ‚˜λ„λ‘ ν•˜λŠ” 속성이닀.
μΆ•μ•½ν˜•μœΌλ‘œ μ•„λž˜μ™€ 같이 μ“΄λ‹€.


transition-property : transition 효과λ₯Ό μ μš©μ‹œν‚¬ 속성
transition-duration : λ³€ν™”λ₯Ό κ²ͺλŠ” μ‹œκ°„μœΌλ‘œ λ‹¨μœ„λŠ” sλ‚˜ ms
transition-delay : transition이 λͺ‡ 초 후에 μ‹œμž‘ν• μ§€ μ •ν•΄μ£ΌλŠ” 속성

timing-function

λ³€ν™” 속도에 닀양성을 μ£ΌλŠ” μ†μ„±μœΌλ‘œ
ease, linear, ease-in, ease-out, ease-in-out, step-start, step-end, steps(int, start|end), initial, inherit 등이 μžˆμ§€λ§Œ, μœ„ 속성듀 μ „λΆ€ cubic-bezier(n, n, n, n)둜 λ§Œλ“  κ°’λ“€μ˜ ν”„λ¦¬μ…‹μ΄λ―€λ‘œ λ”μš± μƒμ„Ένžˆ μ»€μŠ€ν…€ ν•  수 μžˆλŠ” 여지가 μžˆλ‹€. 개발자 λ„κ΅¬μ—μ„œ 확인 κ°€λŠ₯.

cubic bezier

cubic bezier 수치λ₯Ό 쑰정해보고 λ°”λ‘œ μ˜ˆμ‹œλ₯Ό 확인할 수 μžˆλŠ” μ‚¬μ΄νŠΈ


animation

animation은 transitionκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ μš”μ†Œμ— μ›€μ§μ΄λŠ” 효과λ₯Ό μ€€λ‹€λŠ” 곡톡점이 μžˆμ§€λ§Œ μš”μ†Œ μƒνƒœμ— λŒ€ν•œ 의쑴 μ—¬λΆ€μ—μ„œ 차별점을 κ°–λŠ”λ‹€. transition은 μš”μ†Œμ˜ μƒνƒœκ°€ λ³€κ²½λ˜μ–΄μ•Ό μ• λ‹ˆλ©”μ΄μ…˜μ„ μ‹€ν–‰ν•  수 μžˆμ§€λ§Œ, animation 속성은 μš”μ†Œμ˜ μƒνƒœ λ³€ν™” 없이 μ‹€ν–‰μ‹œν‚¬ 수 μžˆλ‹€.
animation은 @keyframesλ₯Ό μ΄μš©ν•˜μ—¬ μž‘μ„±ν•œ λ’€ μš”μ†Œμ— μ μš©ν•˜λŠ”λ°, μ•„λž˜μ™€ 같이 μΆ•μ•½ν˜•μ„ μ‚¬μš©ν•  수 μžˆλ‹€.

@keyframes name {
	from {
    		...
    	}
	to {
    		...
    	}
}

tag {
	animation: name duration timing-function delay iteration-count direction fill-mode;
}
  • iteration-count : μ• λ‹ˆλ©”μ΄μ…˜μ„ μ–Όλ§ˆλ‚˜ λ°˜λ³΅ν• μ§€ μ •ν•œλ‹€.
/* [ μ• λ‹ˆλ©”μ΄μ…˜μ΄ μž¬μƒλ˜μ§€ μ•ŠλŠ” 경우 ] */
animation-iteration-count: 0;         /* μž¬μƒνšŸμˆ˜κ°€ 0인 경우 */
animation-iteration-count: -3;        /* μž¬μƒνšŸμˆ˜κ°€ 음수인 경우 */

/* [ μ• λ‹ˆλ©”μ΄μ…˜μ΄ μž¬μƒλ˜λŠ” 경우 ] */
animation-iteration-count: 3;         /* μž¬μƒνšŸμˆ˜κ°€ μ–‘μˆ˜μΈ 경우 */
animation-iteration-count: 1.5;       /* μž¬μƒνšŸμˆ˜κ°€ μ‹€μˆ˜μΈ 경우 */
animation-iteration-count: infinite;  /* μ• λ‹ˆλ©”μ΄μ…˜μ„ λ¬΄ν•œ λ°˜λ³΅ν•  경우 */
  • direction : μ• λ‹ˆλ©”μ΄μ…˜μ˜ 진행방ν–₯(μˆœν–‰, μ—­ν–‰)을 μ •ν•œλ‹€.
animation-direction: normal;            /* 순방ν–₯ μž¬μƒ */
animation-direction: reverse;           /* μ—­λ°©ν–₯ μž¬μƒ */
animation-direction: alternate;         /* 순방ν–₯ μ‹œμž‘, 순방ν–₯-μ—­λ°©ν–₯ λ²ˆκ°ˆμ•„ μž¬μƒ */
animation-direction: alternate-reverse; /* μ—­λ°©ν–₯ μ‹œμž‘, μ—­λ°©ν–₯-순방ν–₯ λ²ˆκ°ˆμ•„ μž¬μƒ */

alternate와 alternate-reverseλŠ” μ„œλ‘œ λ°˜λŒ€μ˜ κ²°κ³Όλ₯Ό 보여쀀닀. alternate은 순방ν–₯으둜 μ• λ‹ˆλ©”μ΄μ…˜μ„ μ‹œμž‘ν•΄ μ‹€ν–‰ νšŸμˆ˜κ°€ ν™€μˆ˜μΌ λ•Œμ—λŠ” 순방ν–₯으둜, 짝수일 λ•Œμ—λŠ” μ—­λ°©ν–₯으둜 μž¬μƒν•œλ‹€. 반면, alternate-reverseλŠ” μ—­λ°©ν–₯으둜 μ• λ‹ˆλ©”μ΄μ…˜μ„ μ‹œμž‘ν•΄ μ‹€ν–‰ νšŸμˆ˜κ°€ ν™€μˆ˜μΌ λ•Œμ—λŠ” μ—­λ°©ν–₯으둜, 짝수 일 λ•Œμ—λŠ” 순방ν–₯으둜 μž¬μƒν•œλ‹€.

  • fill-mode : μ• λ‹ˆλ©”μ΄μ…˜μ΄ λλ‚œ ν›„μ˜ μƒνƒœλ₯Ό κ²°μ •ν•œλ‹€.
animation-fill-mode: none;      /* μ• λ‹ˆλ©”μ΄μ…˜μ΄ λλ‚œ ν›„ μƒνƒœλ₯Ό μ„€μ •ν•˜μ§€ μ•ŠμŒ */
animation-fill-mode: forwards;  /* μ• λ‹ˆλ©”μ΄μ…˜μ΄ λλ‚œ ν›„ κ·Έ 지점에 κ·ΈλŒ€λ‘œ 있음 */
animation-fill-mode: backwards; /* μ• λ‹ˆλ©”μ΄μ…˜μ΄ λλ‚œ ν›„ μ‹œμž‘μ μœΌλ‘œ λŒμ•„μ˜΄ */
animation-fill-mode: both;      /* μ• λ‹ˆλ©”μ΄μ…˜μ΄μ˜ μ•ž λ’€ κ²°κ³Όλ₯Ό μ‘°ν•©ν•˜μ—¬ μ„€μ • */
animation-fill-mode: inherit;   /* μ• λ‹ˆλ©”μ΄μ…˜μ˜ μƒνƒœλ₯Ό μƒμœ„ μš”μ†Œν•œν…Œ 상속 */
  • animation-play-state
    μž¬μƒμ—¬λΆ€λ₯Ό μ„€μ •ν•  경우 play-state 속성을 μ‚¬μš©ν•œλ‹€. 값이 running일 경우 μ• λ‹ˆλ©”μ΄μ…˜μ„ μž¬μƒν•˜κ³ , paused일 경우 μ• λ‹ˆλ©”μ΄μ…˜μ„ μ •μ§€ν•œλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ΄μš©ν•΄ μ• λ‹ˆλ©”μ΄μ…˜μ„ μ œμ–΄ν•  λ•Œ ν™œμš© κ°€λŠ₯ν•  것 κ°™λ‹€.

perspective

μš”μ†Œμ— 원근감을 λΆ€μ—¬ν•˜λŠ” 속성이닀.
μœ„μ™€ 같은 μš”μ†Œμ— transform: rotate(45deg);λ₯Ό 뢀여해보겠닀.
λ¬Όμ²΄λŠ” λΆ„λͺ… νšŒμ „λ˜μ—ˆμ§€λ§Œ 원근감이 μ—†μ–΄ 높이가 쀄어든 ν‰λ©΄μœΌλ‘œ 보인닀
perspective: 200px;을 λΆ€μ—¬ν•˜λ‹ˆ 원근감이 생겨 νšŒμ „ν–ˆμŒμ„ ν™•μ‹€νžˆ μ•Œ 수 μžˆλ‹€.
perspective: 100px;둜 μ€„μ΄λ‹ˆ λ³€ν™”λŸ‰μ΄ 더 크게 λŠκ»΄μ§„λ‹€. μ΄λŠ” perspective의 값이 μ€„μ–΄λ“€μˆ˜λ‘ 물체가 우리의 λˆˆμ— κ°€κΉŒμ›Œμ‘ŒκΈ° λ•Œλ¬Έμ΄λΌκ³  μƒκ°ν•˜λ©΄ λœλ‹€.

perspective-origin

μ•„λž˜λŠ” ν•˜λ‚˜μ˜ λΆ€λͺ¨ μš”μ†Œμ— 6개의 μžμ‹μš”μ†Œλ₯Ό λ„£κ³  λͺ¨λ‘ transform: rotateY(45deg)λ₯Ό λΆ€μ—¬ν•œ 결과이닀.
λͺ¨λ“  μžμ‹ μš”μ†Œμ— 같은 각도λ₯Ό λΆ€μ—¬ν–ˆλŠ”λ° λ˜‘κ°™μ€ λͺ¨μ–‘μœΌλ‘œ λ‚˜μ˜€μ§€ μ•Šμ€ κ±Έ λ³Ό 수 μžˆλ‹€. 이것은 μ†Œμ‹€μ (vanishingΒ point)이 λ‹€λ₯΄κΈ° λ•Œλ¬Έμ΄λ‹€. λΆ€λͺ¨κ°€ μ—¬λŸ¬ μžμ‹μ„ 가진 μƒνƒœμ—μ„œ μžμ‹μ—κ²Œ YμΆ• κΈ°μ€€μœΌλ‘œ νšŒμ „μ„ μ‹œμΌ°μ„ λ•Œ λ°”λΌλ³΄λŠ” 화면은 정면이 μ•„λ‹ˆλΌ 우츑 쀑앙 기쀀이닀.
이 값을 μ‘°μ •ν•˜κ³  μ‹Άλ‹€λ©΄ perspective-origin을 μ‚¬μš©ν•œλ‹€. 처음 값은 perspective-origin: 50% 50%;이닀.
css-tricks의 μ„€λͺ…

backface-visibility

글씨가 쓰여진 μš”μ†Œλ₯Ό νšŒμ „μ‹œν‚¬ λ•Œ μƒμ‹μ μœΌλ‘œ 뒀에선 글씨가 μ•ˆ 보여야할 것 κ°™μ§€λ§Œ, μ‹€μ œλ‘  보인닀. backface-visibility: hidden;으둜 μ•ˆ 보이게 μ„€μ •ν•  수 μžˆλ‹€.

profile
ν”„λŸ°νŠΈμ—”λ“œ 개발자

2개의 λŒ“κΈ€

comment-user-thumbnail
2021λ…„ 11μ›” 10일

πŸ‘πŸ‘πŸ‘

λ‹΅κΈ€ 달기
comment-user-thumbnail
2021λ…„ 11μ›” 10일

κΉ”λ”ν•˜λ„€μš” πŸ‘

λ‹΅κΈ€ 달기