repeat(반복되는 갯수, 단위)
repeat(2, 100px 200px)
... (100px|200px) cell 을 두번 반복 (100 | 200 | 100 | 200)minmax(최소 너비, 최대 너비)
... window 크기가 커지거나 줄어들 때 반응fit-content(최대 너비)
... 너비를 설정하지 않는다면, 칸의 너비는 내부 content 를 따라감 (내부 content 로 너비를 최대한 맞추되, 최대너비 이상으로 더 커지지 않음)fr
... 공간 너비(사용 가능한 너비) 비율 (빈 공간을 너비 비율에 맞게 차지하도록 함)min-content
... 내부의 가장 긴 content(단어 등) / 최소한의 content 너비에 맞게 사이즈를 조정함max-content
... 각각의 content의 최대 너비를 활용해서 칸을 만듦word-break
... 텍스트가 자신의 콘텐츠 박스 밖으로 오버플로우 할 때 줄바꿈 여부를 지정auto-fit
... repeat 함수와 같이 사용할 수 있으며, 자동으로 열 / 행 의 갯수를 최적화하여 결정 (지정할 수 있는 최대 너비를 우선으로 결정)auto-fill
... 지정할 수 있는 최소 너비를 우선으로 결정transform:
rotate(deg)
... deg 만큼 회전perspective(단위)
... 요소의 원근감을 제어 (단위: 원근 거리) / 3차원 변환 함수에서만 효과가 나타남 (기본 변환함수 rotate 는 2차원 rotateX, rotateY 등을 통해 사용 가능하다.)transform-origin: x축 값 y축 값
... 회전하는 기준 축 지정columns
: column 속성을 지정할 수 있는 단축속성 (columns: width count;
)column-count
: 단의 갯수를 지정cloumn-width
: 단의 높이 (자동으로 최적의 높이를 먼저 지정함)column-rule
: 단과 단 사이의 border 속성으로 볼 수 있음 / 단축속성 (column-rule: 4px solid red;
... 색상의 기본값으로는 글자의 색상을 상속받음)column-gap
: 단과 단 사이의 거리를 지정 (gap
으로 동일하게 사용 가능)blur(px 단위)
... 요소의 내용을 블러(흐림) 처리grayscale(% 단위)
... 무채색의 정도 / default: 100% (완전 무채색)invert(% 단위)
... 색상을 반전시키는 정도 / default: 100% (완전한 반전효과)drop-shadow(x축거리 px, y축거리 px, 그림자의 blur 정도 %, 색상)
... 그림자를 생성 / 그림자의 색상의 기본값은 글자 색상을 상속받음brightness(number)
... 이미지의 명도를 지정 / default: 1 (값이 커질수록 더 밝아짐)conterast(% 단위)
... 색상의 대비를 조정 / default: 100% (값이 커질수록 대비가 더 커짐)opacity(% 단위)
... 투명함의 여부를 조정 / default: 100% (값이 작아질수록 투명해짐)saturate(% 단위)
... 채도를 결정 / default: 100% (값이 작아질수록 무채색에 가까워짐)sepia(% 단위)
... sepia (바랜 정도) 를 조정 / default: 100% (값이 작아질수록 원래 이미지에 가까워짐)hue-rotate(deg 단위)
... 원형의 색상도에 해당하는 색조로 조정backdrop-filter
... 자기 자신에 필터를 적용하는게 아닌, 요소의 배경에 보여지는 영역에 필터를 적용함 / 기본적으로 filter 에서 사용되는 함수를 모두 사용 가능--변수명
와 같이 앞에 하이픈(-
) 을 두 번 붙여줌var(변수명, 초기값)
의 형식으로 선언함과 동시에 바로 사용할 수 있다.// :root ... 전역 등록 개념의 최상위 요소를 선택하는 가상 클래스 선택자
:root {
--color-primary: royalblue;
--color-danger: red;
--color-success: yellowgreen;
}
// 변수의 사용
// 아래의 예시는 실행되지 않음 ...
background-color: --color-primary;
// var() 라는 함수 필요
background-color: var(--color-primary);
@supports (display: grid) { style ... }
: 브라우저가 display: grid
를 지원하는 경우의 스타일 지정@supports not (display: grid) { style ... }
: 브라우저가 display: grid
를 지원하지 않는 경우의 스타일 지정@supports (기능) and (기능) and ...
와 같이 여러 기능들을 명시할 수 있음.@supports (selector(태그 / 클래스))
... 선택자가 특정 브라우저에서 동작하는지를 확인@media 타입 and (기능) { style ... }
@media (기능) { style ... }
)@media screen and (max-width: 780px) and (min-width: 480px) {
// style ...
}
// screen 의 width 가 780px 이하이고, 480px 이상일 때의 스타일 지정
<link ... href="main-md.css" media="all and (max-width: 700px)">
주석
/* */
) 에서 추가로 //
주석을 사용할 수 있음/* */
: CSS 로 변환 시, 주석처리 유지하여 컴파일됨 ... Sass 에서는 들여쓰기 주의해서 사용해야함//
: CSS 로 변환 시, 컴파일 결과로 출력되지 않고 없어짐중첩
// SCSS
.container {
// ...
.item {
// ...
> span {
// ...
}
}
}
// 기존 CSS
.container {
// ...
}
.container .item {
// ...
}
.container .item > span {
// ...
}
&
... 상위 선택자 참조// SCSS
.fs {
&-sm { ... }
&-md { ... }
&-lg { ... }
}
// CSS
.fs-sm { ... }
.fs-md { ... }
.fs-lg { ... }
$변수명 = 값;
으로 사용 가능 ... 유효한 범위를 가지고 있으므로 사용에 유의@at-root 선택자 { style ... }
: 범위를 벗어나게 함 - 루트경로로 이동 (범위 외부에서 변수를 사용하고 싶을 때 사용될 수 있음)$변수: 값
... 숫자, url 문자열, 색상 등 다양한 값 지정 가능 / 값의 재활용$변수: 값 !global;
... !global 키워드를 통해 지역변수를 전역변수화 시킬 수 있음$변수: 값 !default
... 지역변수에 값을 넣어 사용하고 싶은데 동일한 이름의 변수가 존재하며 값이 들어 있다면, 현재 선언한 값은 사용하지 않고 이미 존재했던 변수의 값을 사용함.보간
#{$변수}
... 자바스크립트의 보간(${변수}
) 와 비슷하게 사용됨Number
: 숫자 데이터String
: 문자 데이터Color
: 색상 데이터Boolean
: true / false (조건문 존재)Null
: 특정 속성의 값으로 사용되면 CSS 로 컴파일되지 않음!List
: 배열 데이터 ... 반복 / 특정 값 인덱싱 처리에 사용됨 (숫자, 문자 데이터 등 ...)Map
: { key: value } 데이터산술 연산자
+
, -
, *
, /
, %
/
... 단축속성에서 값의 범위를 구분해주는 역할로 사용top: (20px / 2); OR top: $a / 2; OR top: 20px / 2 + 10px;
calc(산술)
: 서로 다른 단위를 연산하기 위해 사용함 (기본적으로 다른 단위끼리 연산을 할 수 없음 ex. 100% - 50px)비교 연산자
==
, !=
, <
, >
, <=
, >=
@if ($a >= 100px) {
width: $a;
} @else {
width: 80px;
}
논리 연산자
and
, or
, not
기본 CSS 의 심화 내용과 SCSS 에 대한 공부를 하였다.
SCSS 도 이전에 가볍게 배우긴 했지만, 사용하지 않은지 조금 되어서 잊고 있었던 부분들이 꽤 있었던 것 같다.
그래도 한번 배워둔 개념이라 상당 부분이 다시 기억나게 되어 다행인 것 같다.
아직까지는 다행히 큰 어려운 부분은 없지만, 잘 사용할 수 있게끔 연습하는 시간을 가져야겠다.