코딩자율학습단 19기 | 8일차 학습일지 – position/float 배치 + animation/transform 효과 + 웹/아이콘 폰트

오늘 학습 정보

  • 날짜/Day: 2026/01/21 (Day8)
  • 교재 범위: ~6.9 웹 폰트와 아이콘 폰트 사용하기 (p.223~276)
카톡 학습 범위 안내 11
  • 출처: 코딩 자율학습단 카카오톡 채널 메시지 캡처

오늘의 핵심 키워드 3개

  • 핵심 키워드 1: position / float / clear (요소 배치)
  • 핵심 키워드 2: transition / animation / transform (효과)
  • 핵심 키워드 3: Google Fonts / Font Awesome (웹 폰트, 아이콘 폰트)

개념 정리

2-1) 위치(배치) 속성: position / top·right·bottom·left

역할: 문서의 기본 흐름에서 요소를 원하는 위치에 배치

핵심 포인트:

  • position 값에 따라 기준점과 동작이 달라지고, 위치 이동은 top/right/bottom/left로 제어

기본 형식:

  • position: <>; + top | right | bottom | left: <길이>;

짧은 예시(코드):

  • .box{ position: relative; top: 20px; left: 10px; }
position 값 정리

역할: 배치 방식 선택

핵심 포인트:

  • static : 기본 흐름(기본값)
  • relative : 원래 위치 기준 이동(원래 자리 유지)
  • absolute : 기준 요소(부모 등) 기준 배치(기본 흐름에서 제외)
  • fixed : 브라우저 화면(뷰포트) 기준 고정
  • sticky : 스크롤 조건에 따라 달라지는 “달라붙는” 배치

기본 형식:

  • position: static | relative | absolute | fixed | sticky;

짧은 예시(코드):

  • .popup{ position: fixed; right: 20px; bottom: 20px; }

2-2) float / clear: 흐름 제어 배치

역할: 요소를 좌/우로 띄워 배치하고 다음 요소의 흐름을 제어

핵심 포인트:

  • float 적용 시 뒤 요소가 감싸며 배치될 수 있어, 필요하면 clear로 정리

기본 형식:

  • float: none | left | right;
  • clear: left | right | both;

짧은 예시(코드):

  • .img{ float: left; margin-right: 10px; }
  • .footer{ clear: both; }

2-3) 전환(transition) 효과 속성

역할: 속성 값 변경 시 “부드러운 변화” 적용

핵심 포인트:

  • 대상 속성/진행 시간/지연 시간/속도 곡선을 개별 또는 단축으로 지정

기본 형식:

  • transition-property / transition-duration / transition-delay / transition-timing-function: <속성 값>
  • transition: <property>, <duration>, <timing-function>, <delay>

짧은 예시(코드):

  • .box{ transition: width, 0.5s, ease, 0.2s; }

2-4) 애니메이션(animation) 속성: 키프레임 기반 변화

역할: @keyframes로 정의한 스타일 변화를 시간 흐름에 따라 실행

핵심 포인트:

  • 지속/지연/반복/방향/종료 후 상태/재생 상태 등을 속성으로 제어

기본 형식:

  • @keyframes
  • animation-name, animation-duration, animation-delay, animation-iteration-count, animation-direction, animation-fill-mode, animation-play-state, animation-timing-function: < 속성값>
  • animation (단축)
2-4-1) animation-delay (지연)

역할: 애니메이션 시작을 늦춤

핵심 포인트:

  • s, ms 단위 사용

기본 형식:

  • animation-delay: <시간>;

짧은 예시(코드):

  • .box{ animation-delay: 3s; }
2-4-2) animation-fill-mode (실행 전/후 상태 유지)

역할: 애니메이션 전/후에 어떤 상태를 유지할지 결정

핵심 포인트:

  • none / forwards / backwards / both

기본 형식:

  • animation-fill-mode: <>;

짧은 예시(코드):

  • div{ animation-name: bgchange; animation-duration: 5s; animation-fill-mode: forwards; }
2-4-3) animation-iteration-count (반복 횟수)

역할: 반복 횟수 지정

핵심 포인트:

  • 숫자 또는 infinite

기본 형식:

  • animation-iteration-count: <횟수 | infinite>;

짧은 예시(코드):

  • .box{ animation-iteration-count: 3; }
  • .banner{ animation-iteration-count: infinite; }
2-4-4) animation-play-state (재생/일시정지)

역할: 애니메이션 진행 상태 제어

핵심 포인트:

  • paused로 멈춘 상태에서 시작하고, 필요 시 running으로 전환(예시에선 JS로 제어)

기본 형식:

  • animation-play-state: paused | running;

짧은 예시(코드):

.box{
   animation-name: move;
   animation-duration: 10s;
   animation-fill-mode: forwards;
   animation-play-state: paused;
}
<button id="start">start</button>
<button id="paused">paused</button>
<script>
   const box = document.querySelector(".box");
   document.getElementById("start").addEventListener("click", function() => {
      box.style.animationPlayState = "running";
   });
   document.getElementById("paused").addEventListener("click", function() => {
      box.style.animationPlayState = "paused";
   });
</script>
2-4-5) animation-direction (진행 방향)

역할: 애니메이션 진행 방향 지정

핵심 포인트:

  • normal / reverse / alternate / alternate-reverse

기본 형식:

  • animation-direction: <>;

짧은 예시(코드):

  • .box{ animation-direction: reverse; }
2-4-6) animation 단축 속성

역할: 여러 애니메이션 속성을 한 줄로 지정

핵심 포인트:

  • 필요한 값만 골라 작성 가능

기본 형식:

  • animation: <name> <duration> <timing-function> <delay> <iteration-count> <direction> <fill- mode> ;

짧은 예시(코드):

  • .box{ animation:bgchange, 5s, 3, ease-in; }

2-5) 변형(transform) 효과 + 기준점(transform-origin)

역할: 요소 자체를 이동/확대·축소/기울임/회전시키는 변형 적용

핵심 포인트:

  • transform은 함수로 효과를 지정하고, 기준점을 바꾸려면 transform-origin 사용

기본 형식:

  • transform: <함수>;
  • transform-origin: <x축 위치> <y축 위치>;

짧은 예시(코드):

  • div:hover{ transform: translate(100px, 200px); }
transform 함수

역할: 변형 효과 선택

핵심 포인트:

  • 이동: translate(x,y), translateX(n), translateY(n)
  • 확대/축소: scale(x,y), scaleX(n), scaleY(n)
  • 기울이기: skew(xdeg,ydeg), skewX(deg), skewY(deg)
  • 회전: rotate(deg)

기본 형식:

  • transform: 함수(값);

짧은 예시(코드):

  • .box:hover{ transform: rotate(30deg); }
transform-origin (변형 기준점)

역할: 변형(특히 회전)의 기준점을 변경

핵심 포인트:

  • x축(left/center/right), y축(top/center/bottom) 키워드 또는 % 단위 사용

기본 형식:

  • transform-origin: <x> <y>;

짧은 예시(코드):

  • .box:hover{ transform: rotate(30deg); transform-origin: top left; }

2-6) 웹 폰트(Google Fonts) 적용: @import 방식

역할: 시스템에 없는 글꼴도 웹에서 불러와 동일하게 표시

핵심 포인트:

  • 폰트 선택 후 @import를 CSS 최상단에 추가, font-family로 적용

기본 형식:

  • @import url(‘…’); + font-family: “폰트명”, sans-serif;

짧은 예시(코드):

@import url('https://fonts.googleapis.com/
css2?family=Poppins:wght@400;700&family=Varela+Round&display=swap');
.poppins{
   font-family: "Poppins", sans-serif;
}
.varela{
   font-family: "Varela Round", sans-serif;
}

2-7) 아이콘 폰트(Font Awesome) 적용: CDN + i 태그

역할: 아이콘을 폰트처럼 사용(크기/색상 등 CSS로 제어 가능)

핵심 포인트:

  • CDN 링크를 head에 추가하고 로 아이콘 삽입

기본 형식:

  • <link rel=“stylesheet”href=“…”> + <iclass=“…”></i>

짧은 예시(코드)

<head>
   <linkrel='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css'>
</head>

<body>
   <iclass="fa-brands fa-facebook"></i>
</body>
<style>
   i{
      font-size: 30px;color: #4267B2;
   }
</style>

2-8) list-style(리스트 스타일) 메모

  • 역할 → 목록(ul/ol)의 기본 점/숫자 스타일 제어
  • 핵심 포인트
    • 기본 목록 표시 제거는 none 사용
  • 기본 형식
    • list-style: <값>;
  • 짧은 예시(코드)
    • li{list-style: none; }

이슈 로그

  • position: absolute는 “부모 기준”이라고만 외우면 오해가 생길 수 있어서, 기준이 되는 요소 조건을 예제 흐름으로 다시 확인해야겠다고 느꼈습니다.
  • animation 단축 속성은 값 순서가 헷갈려서, 당분간은 개별 속성으로 안정화한 뒤 단축으로 정리하는 방식이 더 안전했습니다.

학습단 도서

  • 「코딩 자율학습 HTML + CSS + 자바스크립트」
「코딩 자율학습 HTML + CSS + 자바스크립트」(김기수 지음, 길벗)
「코딩 자율학습 HTML + CSS + 자바스크립트」(김기수 지음, 길벗)

“코딩자율학습단 19기 | 8일차 학습일지 – position/float 배치 + animation/transform 효과 + 웹/아이콘 폰트”에 대한 2개의 생각

댓글 남기기