HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
👻
개발 기록
/
📑
강의 정리
/
📑
Transform 3D ~ @media
📑

Transform 3D ~ @media

Created
Sep 18, 2021 01:56 PM
Type
CSS
Mento
레온
Created By

Transform 3D

  • 정중앙을 기준으로 변형하되, transform-origin을 사용하여 x, y축을 인자로 넣으면 해당 값대로 기준점을 형성함.
  • transition-duration : 변형이 일어나는 시간을 지속함 → 부드럽게 이동 가능함.
  • perspective: 원근법을 적용하여 요소가 입체적으로 보일 수 있도록 함. 인자로 원근의 거리를 넣어줌. 클수록 멀리서 보는 효과. 변화가 일어나는 부모 요소에 적용함.
  • perspective-origin : 요소를 바라보는 위치를 결정함. 원근이 적용될 기준점을 x, y축으로 지정함. 기본 값은 x, y축 각각 50%임.
  • transform-style : 3차원 효과가 적용된 item의 자식 요소는 추가적인 3차원 효과를 적용할 수 없음. 하지만 속성값으로 preserve-3d를 적용하면 3차원 변환효과를 줄 수 있음. 하지만 자식 요소만 줄 수 있기 때문에 후손 요소는 유지되지 않기 때문에 유지를 원한다면 계속 작성해주어야함.
    • notion image
  • backface-visibility : 요소에 뒷면이 있음. 이를 hidden으로 지정하면 회전이 일어났을 때 요소의 뒷면이 보이지 않음 → 형제 요소로 뒷면을 rotateY(-180deg)로 미리 뒤집어 놓아 형제 요소를 앞뒷면으로 만들 수 있음.
    • .container .item.front { background-color: orange; position: absolute; } .container .item.back { background-color: royalblue; transform: rotateY(-180deg); } .container:hover .item.front { transform: rotateY(180deg); } .container:hover .item.back { transform: rotateY(0); }

Columns

  • column-count : 입력한 숫자만큼 multi columns가 형성됨. 기본 값은 auto(1)임.
    • 값으로 2를 입력했을 때.
      값으로 2를 입력했을 때.
  • column-width : 지정된 px을 기준으로 최적의 너비를 자동으로 판단함. 기본 값은 auto임. 최적을 위해 자동으로 count의 개수가 조정되거나 정확한 px값을 보여주지 않을 수 있음.
  • columns : 상단의 count와 width를 아우르는 단축 속성.
  • column-rule : 단과 단 사이에 선을 만들 수 있음. 단 사이에 넣는 border 속성이라고 생각하면 됨. ex) column-rule: 4px solid (optional)color
  • column-gap : 단 사이의 거리를 결정함. 기본 값은 normal. 구분선은 단 사이의 거리랑 무관함. column 키워드는 삭제 가능. 단, 호환브라우저 체크하기.

Filter

  • filter의 속성. 띄어쓰기로 여러 개를 적용할 수 있음.
    • blur() : px단위로 요소의 흐림 정도를 나타냄.
    • grayscale() : 인자의 %가 낮아질수록 무채색으로 변함.
    • invert() : 색상을 반전시킴. 인자의 %가 낮아질수록 변환 정도가 커짐.
    • drop-shaodw(x y 흐림정도 color) : 그림자를 만듦. box-shadow와 달리 그림자의 크기를 지정할 수 없음. 단, 요소의 배경색상이나 이미지가 없어야 개별 요소에 적용 가능함.
    • brightness() : 이미지의 명도를 지정함. 1보다 크면 밝아지고, 작으면 어두워짐.
    • contrast() : 이미지의 대비를 지정함. 100%보다 낮으면 대비가 낮아지고, 크면 대비가 커짐.
    • opacity() : 투명도를 지정함. 0 ~ 100% 단위로 조절함.
    • saturate() : 채도를 지정함. 100%크면 채도가 올라가고 낮으면 채도가 낮아짐.
    • sepia() : 색이 바랜 정도를 지정함. 100%에 가까울수록 정도가 커짐.
    • hue-rotate() : 인자로 각도(deg)가 들어가며, 각도에 맞게 지정된 색깔이 입혀짐.
  • backdrop-filter : 자기 자신에 필터를 적용하는 것이 아닌 요소 배경에 보여지는 요소에 적용할 수 있음. filter의 속성 모두 사용 가능함. 하위 호완성 주의하기!
    • notion image

변수

  • :root{} 로 사용자 지정 속성을 할당할 수 있음. html과 동일하나 root가 명시도가 좀 더 높음.
  • 조상 요소에서 할당 받은 걸 자신의 유효범위 내부에서 재할당하면 재할당된 속성으로 할당됨.
  • 이처럼 변수는 유효범위에 영향을 받음.
  • var()의 두 번째 인수를 지정하면 변수의 초기값을 할당할 수 있음. 따라서 사용자 지정 속성이 없을 때 초기값을 사용함.

@supports

  • CSS를 브라우저가 지원하는지에 따라 다른 스타일을 선언할 수 있는 방법을 제공함.
  • 크로스 브라우징을 위함.
/*브라우저가 grid 기능을 지원한다면 grid를 적용하겠다라는 의미*/ @supports (display: grid) { div { display: grid; } } /*지원하지 않을 경우 대체 속성을 지정할 수 있음*/ @supports not (display: grid) { div { float: right; } }
  • or, and 키워드로 여러 속성을 지정할 수 있음.
  • 기능을 추가하는 괄호 안에 selector()를 사용하면 가상 선택자에 대한 크로스 브라우징이 가능함.

@media

  • 반응형 레이아웃을 만들 때 사용함.
  • @media 타입 and (기능) {스타일}의 형태를 가짐.
  • 타입을 작성하지 않을 경우 기본 값 all로 지정됨.
  • and, not 키워드 사용 가능. 단 not을 사용하려면 미디어 타입을 all, screen 등 미디어 타입을 명시해주어야 함.
  • 쉼표로 여러 미디어 쿼리를 지정할 수 있음.
/*편집기에서 파일 전체에 미디어쿼리 적용하는 방법*/ <link rel="stylesheet" href="./css/main.css"> <link rel="stylesheet" href="./css/main-md.css" media="all and (max-width: 700px)">

미디어 타입

  • mdn 문서(영어버전)에서 다양한 미디어 타입을 확인할 수 있음.
  • print : 프린트할 때 사용. 하지만 보통 쓰이지 않음.
  • tv and display-mode: fullscreen : fullscreen인 상태의 tv인 경우에 적용.
  • orientation
    • portrait : 가로 < 세로일 때 적용.
    • landscape : 세로 < 가로일 때 적용.

소소한 팁

  • background-image : linear-gradient()를 사용하면 배경 그라데이션을 만들 수 있음.